ESP RainMaker Agent の実行

アプリケーションをコンパイルしてデバイスにフラッシュし、ESP RainMaker スマートフォンアプリを介して Wi-Fi をプロビジョニングし、デバイスを割り当てるユーザーを登録して、AWS IoT を介してバーチャルスマートホームデバイスを制御する準備が整いました。

PlatformIO でプロジェクトを開く

cloneしたプロジェクトやダウンロードして抽出したプロジェクトのルートには、いくつかのフォルダがあります。このチュートリアルでは、PlatformIO で Getting-Started プロジェクトを開きます。まず Visual Studio Code を開き、PlatformIO 拡張機能がロードされるまで数秒待った後、左バーの PlatformIO ロゴ をクリックします。 [Open Project (プロジェクトを開く)] を選択し、Core2-for-AWS-IoT-EduKit/Getting-Started フォルダに移動し、Open をクリックします。

PlatformIO home screen

RainMaker Agent ファームウェアのビルドとアップロード

これで、RainMaker Agent ファームウェアをビルド(コンパイル)してアップロードする準備ができました。コンパイルは GCC コンパイラ によって行われ、人間が読めるコードを オブジェクトコード ( elf ) とバイナリファイル (ファームウェア) に変換します。これらのファイルは、デバイスのオンボードフラッシュにアップロードされ、仮想シリアルポートを介して実行されます。シリアルポート(UART 経由) は双方向通信が可能なため、デバイスからホストマシンにデータを受信できます。ファームウェアをビルドしてアップロードし、PlatformIO を使用してシリアルポートを介してデバイスからの出力を監視するには以下の手順を実行します。

  1. VS Codeのアクティビティーバー(左のメニュー)で PlatformIOのロゴ をクリックします
  2. Quick Access メニューの、Miscellaneous にある New Terminal をクリックしてターミナルを開きます
  3. 開かれたターミナルの中で、以下のコマンドを実行してファームウエアのビルドをおこないます。(コマンドの実行は数分かかります)
    pio run --environment core2foraws
    
  4. USB経由で接続した機器にコンパイルしたファームウェアをアップロードし、シリアル接続するコマンドを実行して出力されるメッセージを監視します。
    pio run --environment core2foraws --target monitor
    
シリアル出力のアップロードまたは監視中に、誤ったポートまたはタイムアウトに関するエラーが表示された場合は、platformio.ini ファイルを開き、そのファイルの指示に従ってアップロードポートを手動で設定してください。

デバイスの登録とプロビジョニング

アップロードが正常に完了すると、コンパイルおよびアップロードされたばかりのファームウェアでデバイスが起動します。また、ターミナル上にデバイスからのシリアル出力の表示が開始されます。デバイスは、セキュリティキーを生成し、 Assisted Claiming (ESP32) を実行するプロセスを実行します。キーの生成には数秒から数分かかりますが、クレームが完了すると QR コードがターミナルビューポートに表示されます。(QRコードが表示されない場合はケーブルを繋いだまま、Core2 for AWS IoT Kitを再起動してください)

スマートフォンで ESP RainMaker スマートフォンアプリを開き、必要なモバイルアプリの許可を付与し、 デバイスの追加 を押してから、パソコンのシリアルモニターに表示される QR コードをスキャンします。その後、2.4GHz ワイヤレスネットワークの Wi-Fi 認証情報を使用した Wi-Fi プロビジョニングなどのプロビジョニングプロセスが実行されます。Wi-Fi 接続が成功すると、デバイスが自身の認証を行い、閲覧または制御可能な複数の仮想デバイスがスマートフォンアプリに表示されます。1~2 分経ってもスマートフォンアプリで仮想デバイスがオフラインと表示されている場合は、下にスクロールしてリフレッシュしてみてください。

Scan the QR code in serial output

仮想デバイスが一覧表示され、モバイルアプリでオンラインになったら、オンボードモーターや LED のオン/オフ、モーターの速度調整、LED バーの色や明るさの設定、デバイス内部の温度の確認などを行うことができます。

間違った Wi-Fi 認証情報を入力した場合は、まず ファームウェアを削除 し、Espressif RainMaker Agent ファームウェアをデバイスに再アップロードし、スマートフォンにデバイスを追加し直す必要があります。その他のトラブルシューティングやFAQについては、公式の Espressif RainMaker FAQs を参照してください。

PlatformIO でファームウェアの削除

このアプリケーションの作業が完了し、他のチュートリアルに移動する準備ができたら、デバイスのファームウェアを消去する必要があります。 ただし、ポートへの他の通信をブロックしているため、最初にアクティブなシリアルモニターを停止する必要があります。シリアルモニターを停止するには、Visual Studio Codeのシリアルモニタが表示されているペインを選択し、CTRL + C で停止します。ファームウエアを削除するには以下のコマンドを実行します。

pio run --environment core2foraws --target erase
ファームウエアを削除すると、デバイスの画面は何も表示されず、スピーカーから音が出ます。これはファームウエアが何もない状態の正常な動きです。

まとめ

これで、AWS IoT Kit プログラムを利用してコネクテッドホームアプリケーションを構築することができました。 それだけでなく、デバイスに埋め込まれたコードを作成、編集、コンパイル、フラッシュするために必要なツールも手に入りました。 次のチュートリアルはより実践的な内容になり、独自のエンドツーエンド IoT ソリューションの構築を開始するためのスキルを学びます。

次の章 Lチカ にお進みください。


Questions? Please use M5Stack Forum

AWS IoT Kit now features direct access to M5Stack Forum , which is a community-driven, questions-and-answers service. Search re:Post using the Core2 for AWS tag to see if your question has been asked and answered. If not, ask a new question using the Core2 for AWS tag.