工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

ESP-WROOM-32でAWS IoT

概要

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は、証明書をアタッチしたモノの名前。

f:id:dekuo-03:20190725215654p:plain

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したりしてみた結果、正しく送受信できた。

f:id:dekuo-03:20190725215544p:plain f:id:dekuo-03:20190725215547p:plain

まとめと今後の課題

新しくセットアップしたESP-IDFでも、無事AWS IoTに接続することができた。