はじめに
AWSの勉強と、遊びでセンサデータを集めることをしてみかったったので、
M5Stack Core2 for AWS を触ってみた。
チュートリアルを参考に、AWSへの接続を試みたが、
一筋縄ではいかないチュートリアルであったので、
つまづいたポイントを、メモすることにした。
本ページの目的
M5Stack Core2 for AWS のチュートリアルで、
説明が足らなかったり、上手くいかなかったところをメモする。
私のように「IoT遊びをしてみたい!」という人が、
チュートリアル見ながらAWSに接続できるように。
なお、現在進行形でチュートリアルを進めながら書いているので、
内容は都度アップデートしていく予定。
QRコードが出ない
環境セットアップの「デバイスの登録とプロビジョニング」の部分。
チュートリアルだと、以下のコマンドを実行して、しばらくするとQRコードが出るように書かれていた。
pio run --environment core2foraws --target monitor
しかし、このコマンドはファームのアップロードを行わないので、これだけでは、QRコードは出ない。
VSCode の下の方にある「→」ボタンを押すと、ファームがアップロードされる。
このボタンをクリックしてから、上記モニタのコマンドを投げると、QRコードが表示される。
参考文献
AWS CLI 動作確認ができない
チュートリアル「Lチカ」のAWS CLI 動作確認の部分。
aws iot describe-endpoint --endpoint-type iot\:Data-ATS
このコマンドを投げたところ、2回エラーが出た。
IAM ポリシーエラー
An error occurred (AccessDeniedException) when calling the DescribeEndpoint operation:
AWS CLI で使用しているIAMアカウントのポリシーが不足しているとのこと。
この場合は、IoT関連のポリシーを、ユーザーに許可すればよい。
上記例では「AWSIoTFullAccess」をアタッチしたが、
過剰だと思うので、実際は使用するもののみアタッチすればよい。
よくわからない場合は、上記のようにFullAccessをアタッチする。
リクエストエラー?
An error occurred (InvalidRequestException) when calling the DescribeEndpoint operation:
よくわからないが、コマンドが間違っていたみたい。
チュートリアルのコマンドの iot の後ろの\を取り除いたら、コマンド実行できた。
aws iot describe-endpoint --endpoint-type iot:Data-ATS
AWS CLI コマンドリファレンスだと\がないので、チュートリアルが間違いっぽい。
Package.json が見つからないエラー
デバイス証明書の取得とAWS IoTへthingの登録でコマンドエラー。
pio run -e core2foraws-device_reg -t register_thing
これを実行すると、以下のエラーが出た。
“MissingPackageManifestError: Could not find one of ‘package.json’ manifest files in the package”
どうやら前のファー?のpackageデータ?が残っていたみたいなので、
ユーザーフォルダ/ユーザー名/.platformio/packagesの中身を全部削除したら、エラーが消えた。
参考文献