ESP32-Azure IoT Kit ソフト編
これの続きです。
それでは、ESP32-Azure IoT Kitを動かしてみたいと思います。
Getting Started的な手順は、いろいろとリンクを漁ってみたところ、次の2箇所にありました。
前者はブログ記事で、ESP32-Azure IoT Kitを試す手順が一通り書いてあります。
一方、後者はgithubにアップされているESP8266/ESP32サンプルコードのREADMEです。
後者のほうがコードとセットになっているので良いと思い、これを見ながらやってみましたが、、、いくつかのケースがまとめて書かれていて都度判断が必要(たとえばESP8266は無視とか)なのと、手順としての完成度がいまひとつ(手順通りにできない)だったので、前者でやり直しました。
ちなみに、前者だけでは手順が成立しないです。前者と後者を両方読んで実行するスキルが必要ですw
手順をざっくりいうと、
- Windows Subsystem for Linux(WSL)で、(←開発環境OS)
- esp-setup.shを実行して、(←開発ツールのセットアップ)
- サンプルコードをgithubからクローンして、
- サンプルコードにAzure IoT SDK Cをコピーして、
- 設定情報を入力して、(←COMポート、Wi-FiのSSIDなど)
- ビルド、デバイスへ書き込み
という感じ。
それでは、順にやってみましょう。
Windows Subsystem for Linux (WSL)
いきなりWSL。なんとも感慨深い。
スタートメニューで「wsl」を実行すればOK。
ただし、素のWindows 10だと、WSL環境がインストールされていません。
Windowsの機能を有効化して、
Microsoft StoreのWSL関連ページでUbuntuのインストールが必要です。
esp-setup.sh
適当なディレクトリで、githubにあがっているesp-setup.shをダウンロードして、実行します。
$ wget https://github.com/Azure-Samples/ESP-Samples/blob/master/install-script/esp-setup.sh $ source ./esp-setup.sh
ネットから開発ツールをドカッとダウンロードしてきて、インストールします。それなりに時間がかかります待ちましょう。
あとで分かったのですが、このesp-setup.sh内で開発ツール関連の環境変数をセットアップしていますが、esp-setup.shを実行したウィンドウを閉じると、環境変数が忘れられてしまいます。
もう一度、環境変数をセットアップするためにesp-setup.shを実行すると、、、またドカッとダウンロードが。(涙
というわけなので、ウィンドウを開いたときにesp-setup.sh内の環境変数設定だけ再実行しています。誰も不満無いのかなぁ。
サンプルコードをクローン
適当なディレクトリで、githubのESP-Samplesをクローンします。
$ git clone https://github.com/Azure-Samples/ESP-Samples.git
Azure IoT SDK Cをコピー
ESP-Samplesには、サンプルコード(samples配下)とともに、2種類のAzure IoT SDK C(components)、非Plug and Play版とPlug and Play版が含まれています。
使う方のAzure IoT SDK Cを、サンプルコードのcomponentsにコピーしてください。
わたしは、非Plug and Playと思われるazure-esp-starterを試しますので、samples/azure-esp-starterで、下記コマンドを実行しました。
$ cp -r ../../components/esp-azure ./components/
設定情報を入力
専用ツールで、
を設定します。
samples/azure-esp-starterでmake menuconfig
を実行すると、専用の画面が立ち上がりますので、そこで入力すればOKです。
ビルド、デバイスへ書き込み
make flash
を実行すると、ビルドしてデバイスへ書き込み(Flash)します。
がっ!
書き込むときにタイムアウトエラーが発生しました。
リセット動作に問題がある!?みたい。
Connectingしている最中に、ESP32-Azure IoT KitのKEY_IO0ボタンを押しながらKEY_ENボタンをチョン押ししたところ、書き込みが開始されて成功しました。
指定したAzure IoT Hubに、温度、湿度、照度が送られてきました!
結果
- ESP32-Azure IoT Kit動いた。
- 現状のドキュメントだとムズい。
- 環境変数の再設定が用意されていない。辛い。
- make menuconfig便利。どういう仕組みなんだろう?
次は、サンプルコードの中身を覗いてみたいと思います。