マイクロソフトから、Azure RTOSのチュートリアルがいくつか公開されています。
手元にあるボードは、STマイクロのB-L475E-IOT01とMXChipのAZ3166なので、、、AZ3166で動かしてみました。
AZ3166の手順は、azure-rtos/getting-startedリポジトリの、MXChip/AZ3166/readme.mdに詳しく書いてあります。
開発環境を用意
azure-rtos/getting-startedリポジトリに.devcontainerがあるので、VS Code Remote - Containersを使えばパッと環境が用意できるのでは?と思い試しましたが、プロンプトが遅い現象に見舞われ、またこれを回避してもコンパイルが激遅でした。現時点は、devcontainerによるコンパイルはおすすめしません。
でも、手元PCの環境を変更したくなかったので、Azure上にVMを立てて、ここでコンパイルすることにしました。
サイズは大きなものを使う必要はないでしょう。Standard D2s v3にしました。
VS Code - SSHの利用は必須ですね。作業効率爆上げ。
手順に沿ってコマンドを実行します。
サンプルコードをcloneして、
git clone --recursive https://github.com/azure-rtos/getting-started.git
コンパイルに必要なツールをインストールします。
cd getting-started ./tools/get-toolchain.sh
環境変数が変更になっている(らしい)ので、ターミナルを再起動します。ターミナル右上のごみ箱マークをクリックして、メニューのターミナル > 新しいターミナルを実行します。
そして、ここで、~/getting-started ディレクトリをVS Codeで開いておきましょう。
接続情報を設定
MXChip/AZ3166/app/azure_config.h に、Wi-FiやAzure IoT Hubの接続情報を設定します。
define名 | 設定する内容 |
---|---|
WIFI_SSID | Wi-Fi SSID |
WIFI_PASSWORD | Wi-Fi パスワード |
IOT_HUB_HOSTNAME | Azure IoT Hub ホスト名 |
IOT_HUB_DEVICE_ID | Azure IoT Hub デバイスID |
IOT_DEVICE_SAS_KEY | Azure IoT Hub デバイスのSASキー |
コンパイル
ターミナルで、rebuild.shを実行します。
./MXChip/AZ3166/tools/rebuild.sh
2分程度でビルド完了しました。
バイナリをAZ3166へ書き込む
生成したmxchip_azure_iot.binを(TeraTermなどを使って)手元PCへコピーして、AZ3166のMSDへコピーすればOKです。
動作確認
正常に動作すると、USBのVCOMにAzure IoT Hubへメッセージを送信しているっぽいテキストが表示されます。
Azure IoT ExplorerでAzure IoT Hub側にメッセージが到達していることが確認できます。