Azure RTOSのGetting Startedを実行してみました

この無線設備は、電波法に定める技術基準への適合が確認されておらず、法に定める特別な条件の下でのみ使用が認められています。この条件に違反して無線設備を使用することは、法に定める罰則その他の措置の対象となります。 

はじめてのAzure RTOS

Azure RTOSGitHubに上がっていたのでGetting Startedを実行してみました。

github.com

github.com

基板の選定

サポートされている基板は次の通りです。

  • Microchip ATSAME54-XPRO
  • NXP MIMXRT1060-EVK
  • Renesas Synergy Platform
  • STMicroelectronics BL-475E-IOT01

ルネサスSynergy Platformというのは良く分からなかったので他の3つから選びました。

Wi-Fiで値段が一番安いということでSTMicroelectronicsのB-L475E-IOT01Aにしました。
B-L475E-IOT01A1とB-L475E-IOT01A2の2種類がありますが、違いはSub-GHzのモジュールだけです。前者が米国向けで後者が欧州向けです。

私はDigi-Keyから購入しました。6,000円以上なので送料無料でした。
FedExで4日で届きました。

f:id:ytakeuch:20200525182753j:plain
B-L475E-IOT01A

技適未取得機器を用いた実験等の特例制度の届け出

B-L475E-IOT01に搭載されているWi-FiモジュールはInventek Systemsの43362-M3G-L44というもので技適マークは付いていません。
そのため技適未取得機器を用いた実験等の特例制度の届け出が必要です。

2020年5月27日からWeb届け出ができるようになっています。

exp-sp.denpa.soumu.go.jp

本人確認の方法は電子署名を用いたオンラインでの本人確認(個人の場合はマイナンバーカードの署名用電子証明書を用いた電子署名)または、各総合通信局での対面での本人確認です。

メーカー・型番・シリアル番号・FCC ID等を記載して届け出ます。
Webで届け出ると【開設届出を受け付けました】というメールが届きます。

Getting Started

基板毎にGetting Startedが違うのでB-L475E-IOT01Aのreadme.mdの手順通りに進めていきます。

github.com

必要なもの

  • Windows(10を推奨)がインストールされているPC
  • Azure subscription
  • Git
  • ハードウエア
    • B-L475E-IOT01A / B-L4S5I-IOT01A
    • 2.4GHzのWi-Fi AP
    • USB AからMicro USB Bへのケーブル

開発環境の準備

チュートリアルのレポジトリのクローン

> git clone https://github.com/azure-rtos/getting-started

ツールのインストール

  • GCC
  • Cmake
  • Ninja
  • Termie

「管理者権限の」コマンドプロンプトで下記のバッチファイルを実行する。

> getting-started\tools\get-toolchain.bat

Azureのリソースの準備をする

Azure CLIを使用するための準備を行います。

ローカルでAzure CLIを使用する場合は下記のURLからインストールします。

docs.microsoft.com


ブラウザ上でAzure CLIを使用する場合はAzure Cloud shellから実行します。

shell.azure.com

IoT hubを作成します。

パラメータは一部を除いてreadme.mdのままで実行しました。

> az extension add --name azure-iot
> az group create --name MyResourceGroup --location eastus
> az iot hub create --resource-group MyResourceGroup --name {IoTHubの名前}

{IoTHubの名前}はAzure全体でユニークである必要があるので、ユニークなものに置き換えます。

IoT hubを作成するとコンソールにJSONが出力されるので、hostNameの値を書き留めておきます。

バイスの登録

> az iot hub device-identity create --device-id MySTMDevice --hub-name {IoTHubの名前}

{IoTHubの名前}はaz iot hub create --resource-grouupで決めた名前に置き換えます。

バイスを登録するとコンソールにJSONが出力されるので、deviceIdとprimaryKeyの値を書き留めておきます。

バイスの準備

テキストエディタでgetting-started\STMicroelectronics\STM32L4\app\azure_config.hを編集します。

APのSSIDは必ず2.4GHz側にしてください。

// ----------------------------------------------------------------------------
// WiFi connection information
// ----------------------------------------------------------------------------
#define WIFI_SSID           "APのSSID"
#define WIFI_PASSWORD       "APのパスワード"
#define WIFI_MODE           Wi-Fiの暗号化モード

// ----------------------------------------------------------------------------
// Azure IoT Device information
// ----------------------------------------------------------------------------
#define IOT_HUB_HOSTNAME    "hostNameの値"
#define IOT_DEVICE_ID       "deviceIdの値"
#define IOT_PRIMARY_KEY     "primaryKeyの値"

イメージのビルド

> getting-started\STMicroelectronics\STM32L4\tools\rebuild.bat

実行すると、getting-started\STMicroelectronics\STM32L4\build\app\stm32l475_azure_iot.binというイメージが出来上がります。

イメージの書き込み

右上のUSB STLinkと書かれたMicro USBコネクタをPCに接続します。

f:id:ytakeuch:20200604113933p:plain

基板がUSBのMass Strage DeviceとしてDIS_L4IOT(F:)のように見えるので、ビルドしたイメージ(stm32l475_azure_iot.bin)をDrag & Dropします。
イメージの書き込み中はMicro USBコネクタの横のLEDが赤と緑に変化します。緑色固定になったら完了です。
自動的にAzure RTOSが実行され、次のような画面になります。

f:id:ytakeuch:20200604144634p:plain

テレメトリーを見る

コンソールからaz iot hub monitor-eventsコマンドを実行することでテレメトリーを観測できます。

> az iot hub monitor-events --device-id MySTMDevice --hub-name {IoTHubの名前}

f:id:ytakeuch:20200604145611p:plain