##目的
m5stack fireのmpu6886から加速度センサとジャイロセンサのデータをデータベースに保存する
##手順
###1.まずはAWS IoTを立ち上げる。
以下のサイトを参考にAWS IoTを立ち上げました。
https://thinkit.co.jp/article/17360
証明書はダウンロードしておく。
ポリシードキュメントは以下のように権限を変更すると上手く行った。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect",
"iot:Publish",
"iot:Receive",
"iot:Subscribe"
],
"Resource": "*"
}
]
}
###2.Arduino IDEでm5stackに書き込み。
今回はm5stack fireのmpu6886で加速度センサとジャイロセンサのデータを取得したいので、以下のコードを使用。
https://github.com/MypaceEngine/m5stick_mpu6886_awsiot
ArduinoのPubSubClientをインストールも必要です。
srcフォルダのMQTT_MAX_PACKET_SIZEを128を2048にした方が良いそうです。
#define MQTT_MAX_PACKET_SIZE 2048 //128
ソースの変更点としては、
・wifiのssid
・wifiのpass
・awsEndpoint(AWS IoTの設定より確認可能)
・pubTopic(任意の名前)
・subTopic(任意の名前)
・rootCA証明書(1でダウンロードしたものをテキストエディタで開く)
・AWS IoT証明書(1でダウンロードしたものをテキストエディタで開く)
・AWS IoT秘密鍵(1でダウンロードしたものをテキストエディタで開く)
・AWS モノの名前(任意の名前)
出来たら、m5stackに書き込んでください。
###3.テスト
以下のサイトを参考にAWS IoTとm5stackが接続されているかをテスト出来ます。
http://kyokucho1989.chillout.jp/2019/08/19/m5stack%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9Faws-iot%E3%81%AE%E7%B0%A1%E5%8D%98%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9/
私はこの時点で証明書のコピペの間違いと、ポリシードキュメントの権限(subscribeの権限)が足りておらず、悩みました。
上手くいかない方はこちらを参照されるといいかもしれません。
https://blog.maripo.org/2017/07/esp32-aws-iot-troubleshooting/
###4.DynamoDBと接続
以下のサイトを参考に接続
https://thinkit.co.jp/article/17384
今回このサイトと違いlambdaは使用していないので、少し手順は違いますが、そこまで難しくないはずです。
DynamoDBに加速度、ジャイロのデータが入っていれば成功です!
##最後に
このシステムを作りながら、AWSってすごいな〜と感心しました。
実際、ESP32の機能やデータベースの知識ほぼなくてもできちゃうので。(勉強します)
ここからArduino IDEのスケッチで計測データの加工や、サンプリング周波数を調整したり、データベースの構造を変えたり、頑張ります〜