ESP32でのmicropythonを使ったAWS IoTへの接続
ESP32でのmicropythonを使ったAWS IoTへの接続について解説します。
参考サイト
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
このページを参考にとりあえずesp32からAWS IoTへの接続をやってみたのですが、
この手順をそのままやってもうまくいかなかったので、うまくいく方法を、忘備のため記事にします。
IoT ポリシーを作成する
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
ステップ1: IoT ポリシーを作成するのとおりポリシーを作成します。
👇ポリシードキュメントはこんな感じです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:ap-northeast-1:0000000000000:client/BlogClient"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "arn:aws:iot:ap-northeast-1:0000000000000:topic/$aws/things/BlogThing/shadow/update"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:ap-northeast-1:0000000000000:topicfilter/$aws/things/BlogThing/shadow/update/delta"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:ap-northeast-1:0000000000000:topic/$aws/things/BlogThing/shadow/update/delta"
}
]
}
AWS IoT のモノを作成する
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
ステップ2: AWS IoT のモノを作成するのとおりモノを作成します。
でもさ、「モノを作成する」って・・・
デバイス証明書とキーファイルをダウンロード
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
ステップ2: AWS IoT のモノを作成するの最後の手順「デバイス証明書とキーファイル」をダウンロードします。
マイクロコントローラ用のファイルを準備する
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
ステップ3: マイクロコントローラ用のファイルを準備する
ここは注意が必要です
1.デバイス証明書と鍵のファイルをダウンロードしたローカルディスクに移動します。
👆これはこのままでOK
2.デバイス証明書は、-certificate.pem.crt で終わるファイルです。この証明書のファイル名を cert.pem.crt に変更します。
👆これもこのままでOK
3.秘密鍵は、-private.pem.key で終わるファイルです。このファイル名を private.pem.key に変更します。
👆これもこのままでOK
4.次に、MQTT に必要なライブラリーをダウンロードします。GitHub のリポジトリの内容をローカルディスクにダウンロードします。
👆この手順は不要(MQTTは最新のmicropythonでは標準で組み込まれてます。)
5.ファイルを整理するために、getting-started-micropython-esp32 というフォルダを作成します。証明書と秘密鍵のファイルをこのフォルダーに移動します。
👆これもこのままでOK
6.micropython-lib GitHub リポジトリの micropython/umqtt.simple/umqtt/simple.py というファイルを、ローカルディスクの getting-started-micropython-esp32 フォルダの umqtt フォルダにコピーします。
👆この手順は不要(MQTTは最新のmicropythonでは標準で組み込まれてます。)
7.getting-started-micropython-esp32 フォルダには、以下のファイルがあるはずです。
※ umqtt/simple.pyは不要です。
MicroPython を使用して AWS IoT に接続する
Amazon Web Services ブログ MicroPython を使って AWS IoT Core を始める
ステップ4: MicroPython を使用して AWS IoT に接続する
ここがひっかけポイントです!
1.getting-started-micropython-esp32 フォルダに、main.py というファイルを新規に作成します。
👆これはこのままでOK
2.GitHub の aws-iot-core-getting-started-micropython リポジトリから main.py のコードをコピーします。
👆これもこのままでOK
3.以下のコードを入力します。
a. wifi_ssid をお使いのワイヤレスネットワーク名に置き換えてください。
b. wifi_password をお使いのワイヤレスネットワークのパスワードに置き換えてください。
c. aws_endpoint を お使いの AWS アカウントの AWS IoT のエンドポイントに置き換えてください。AWS IoT Core コンソールの設定ペ ージで確認することができます。
👆これもこのままでOK
追加で以下の編集が必要です
デバイス証明書とキーファイルは、読み込んだ文字列ではなく、ファイルを指定するようにssl_paramsを編集する。
#ssl_params = {"key":key, "cert":cert, "server_side":False}
ssl_params = {"key":private_key, "cert":private_cert, "server_side":False}