環境モニタを作ろう with ESP32 DEV Module 〜 No5. ESP32からAWS-IoTへデータをPublish #aws-iot

ここまででできたこと

  1. 環境モニタを作ろう with ESP32 DEV Module 〜 No1. まずは動かして見よう
  2. 環境モニタを作ろう with ESP32 DEV Module 〜 No2. 温度湿度センサーをつけよう
  3. 環境モニタを作ろう with ESP32 DEV Module 〜 No3. wifiに接続して、https通信を試してみよう
  4. 環境モニタを作ろう with ESP32 DEV Module 〜 No4. 温度と湿度データをクラウドに入れたい!AWS-IoTを使ってみよう #aws-iot

前回は、MacからMQTTでAWS-IoTにPublishしたのですが、今回はESP32からPublishしてみましょう。

AWS-IoT設定(CLI編)

前回のおさらいも兼ねて、今回はAWS-IoTを使う準備を、AWS-CLIでやってみます。

モノの登録

証明書の作成

プライベートキー、パブリックキー、クライアント証明書の3ファイルが出力されます。
ルート証明書は前回取得したものを使います。

ポリシーの作成

証明書にモノとポリシーを割り当てる

証明書にポリシーをアタッチ

証明書を作成した時に出力された「certificateArn」と、作成したポリシーの名前を使います

証明書にモノをアタッチ

AWS IoTエンドポイントの確認

準備完了です。

ESP32からPublish

ということで、ちょっと調べてみると、すでに試されて記事にされている方がいたので、そのまま写経させていただきました。

ESP32でAWS IoTに繋いでThing Shadowを弄る – コーヒーサーバは香炉である 

なので、詳細はそちらを見ていただいた方が早いかもですが、メモとして残しておきます。

ESP32から使うライブラリ

Wifi接続やHTTPS接続については第3回のところで試しているので、おさらいしておいてください。

ESP32から使うMQTTクライアントとして、PubSubClientを利用します。

PubSubClientはArduinoIDEのLibraryManagerでインストールして、デフォルトのメッセージの長さの定義を変更しておきます。(デフォルトは128バイト)

実装

実装コードについては、以下のサイトで詳しく解説付きなので、こちらを読んでいたければです。

ESP32でAWS IoTに繋いでThing Shadowを弄る – コーヒーサーバは香炉である 

コードの中の以下の箇所を書き換えれば動きます。

  • WiFi接続情報
  • 証明書と秘密鍵
  • デバイス名
  • AWS IoTエンドポイント

シリアルモニタでも確認できますが、AWSのコンソールのシャドウステータスも見てみると、ステータスの値が更新されていくので、確認することができます。

さて、これで、値をPublishできたので、次回はこれをAWSの他のリソースに格納するようにしてみましょう!