Chapter 07

M5StickCで「AWS IoT Core」をやってみたい

takeru
takeru
2021.07.10に更新

「AWS IoT Core」完全に理解した。

動画を見て「IoT Coreってすげー便利、さすがAWS最強だな。」と無事洗脳されましたので、コードを書いていきたいと思います!

Core2が届くの待てないのでM5StickC

https://twitter.com/urekat/status/1409153853711208451?conversation=none

「IoT Core」ってESP32のFreeRTOSでうごくんだよね?
ってことは、「Core2 for AWS」じゃなくても同じオレンジのお友達のM5StickCでも動くんじゃね?そもそもM5Stackでうごくなら動くでしょ、ふつうは。ってことで。

応募した計画ではCore2だけでなく、M5StickCも使うことになっているので、先にできることから手を付けておかないと間に合わないんじゃないか、ということです。

たぶん、実際に書くコードやライブラリやAWSの設定などは、Core2でもCでもだいたい同じで、

クライアント認証の方法が

  • Core2はセキュリティエレメント、めっちゃセキュア。
  • M5StickCはコードにキーを直接書き込む。物理的に盗まれたら秘密鍵漏洩です。

というだけの違いなんだとおもう。

うごくサンプルを探す旅

Pythonでやってるやつ

UIFlowだけど裏はPythonだったはず。

https://dev.classmethod.jp/articles/m5stack-aws-iot-core-mqtt/

できることはできると。

JavaScriptでやるやつ

https://dev.classmethod.jp/articles/led_blink_with_aws_iot_and_esp32_and_mongoose_os/

できるはできる。

認証自前でMQTTしてるやつ

https://netmark.jp/2021/05/2021-05-09-12-03.html

これもあり。

せっかくだから公式SDKでやろう

技術点ねらうなら公式だよね。というのと、

https://edukit.workshop.aws/jp/blinky-hello-world/conclusion.html

FreeRTOSならスーパーループアーキテクチャよりいいやつできますよ、ってのも読んだのでちょっと興味があります!

FreeRTOS

FreeRTOSってなんだ?

https://twitter.com/urekat/status/1409156493006364673?s=20

ESP32つかってたら普通はすでにFreeRTOSだったぽいです。

FreeRTOSの日本語神資料

https://twitter.com/urekat/status/1409881487747473420?s=20?conversation=none

シリーズ最後まで読みました。
ありがとうございました。

Cでうごくサンプルを探す

これはダメ

https://twitter.com/urekat/status/1409283165227667456?s=20?conversation=none

これはなんかダメだったんです。わすれましたけど。
頑張ればできるとは思いますが、よくわからなかった。わすれましたけど。

できた!

https://twitter.com/urekat/status/1409430552264908806?s=20?conversation=none

とにかく、バージョンが多少古くてもちゃんとうごくものをまずは用意したいということで、これです。これがちゃんと動きます。

これと↑で動かなかったやつのexampleを参考にして、IoT Coreが使えていることを確認しました。

  • M5StickCから更新したデータが、AWSコンソールで確認できます。
  • AWSコンソールでデータを書き換えると、デバイス側のログになにか来てることを確認できます。

いけそうです!