概要
ESP-WROOM-32をAWS IoTに接続してみる。
背景と目的
前回セットアップしたESP-IDF環境を使って、ESP-WROOM-32をAWS IoTに接続してみる。
詳細
0.方法の確認
以前、ESP-IDFを使ってESP-WROOM-32をAWS IoTに接続するというのをやったことがあるのだが、今回セットアップしたESP-IDFの環境には、その名前のサンプルが見当たらないのでなくなってしまったのかと心配したが、どうやらこちらがそれにあたるらしい。なので、
cd %IDF_PATH%\components git clone --recursive https://github.com/espressif/esp-aws-iot
とする。以下は、手順の参考。
https://github.com/espressif/esp-aws-iot/blob/master/examples/README.md
1.サンプルのコピー
サンプルは、
%IDF_PATH%\components\esp-aws-iot\examples\subscribe_publish
を使えばよさそうなので、
xcopy /e /i %IDF_PATH%\components\esp-aws-iot\examples\subscribe_publish subscribe_publish
2.AWS IoTの証明書の準備
AWS IoTのコンソールで、証明書を作成し、xxx-private.pem.crtファイルとxxx-private.pem.keyファイルをそれぞれダウンロードする。また、デバイスにアタッチする。ポリシーのアタッチも忘れずに。
ダウンロードした2ファイルを、
subscribe_publish\main\certs
ディレクトリに入れ、それぞれ
private.pem.crt private.pem.key
とリネームする。
3.menuconfig
cd subscribe_publish idf.py menuconfig
3.1 Wi-Fiの設定、Client IDの設定
Example Connection Configurationを選択し、SSIDとパスワード、AWS IoT Client IDを設定。Client IDは、証明書をアタッチしたモノの名前。
3.2 AWS IoTの設定
Component Config>Amazon Web Service IoT Platform>AWS IoT Endpoint Hostnameに、
xxxxxxxxxx-ats.iot.{regionname}.amazonaws.con
を入力。上記は、AWS IoTコンソールのモノ>操作で表示されるHTTPSエンドポイント。
4.ビルドして動作確認
idf.py build idf.py -p COM4 flash monitor
AWS IoTコンソールで、試しにPublishしたりSubscribeしたりしてみた結果、正しく送受信できた。
まとめと今後の課題
新しくセットアップしたESP-IDFでも、無事AWS IoTに接続することができた。