M5Stackで重量を計測しAWSにデータを送るシステム
このページはM5Stackで重量を計測しAWSにデータを送るシステムに関する備忘録です
1.使用する機材
2.AWSの設定
IoT Coreからモノとして登録する
IoT Core「すべてのデバイス」>「モノ」を選択し、「モノを作成」ボタンを押下
「1つのモノを作成」を選択して「次に」ボタンを押下
「モノの名前」に適当な名前を付ける。追加設定は無し。デバイスシャドウは「シャドウがありません」を選択し「次に」ボタンを押下
「新しい証明書を自動生成(推奨)」を選択し、「次に」ボタンを押下
下の注)に記載した方法で作成したポリシーを選択し「モノを作成」ボタンを押下
「証明書とキーをダウンロード」のページが現れるので、そこから以下の4つのファイルをダウンロードする
(ただし、次のステップで必要なのは、1)、3)、4)の3つだけ)
1)デバイス証明書
2)パブリックキーファイル
3)プライベートキーファイル
4)ルートCA証明書のうち RSA 2048 ビットキー: Amazon ルート CA 1 (ただし、これは他とも共通)
ダウンロードを確認し、安全な場所に格納したら「完了」ボタンを押下
(参考資料)
注)「リソースとアクションに制限をかけないポリシー」の作り方
IoT Coreの「セキュリティー」>「ポリシー」メニューから「ポリシーを作成」ボタンを押下
ビルダーではなく、JSONを使って以下を設定する
ポリシー効果 Allow;ポリシーアクション iot:*;ポリシーソース * で作成
具体的には以下のようになっていればOK
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}
3.M5Stack用のプログラムの準備
以下では、プログラム scale_Core2_AWS を用いる
必要な情報を調べてプログラムの内容を変更する
1)WIFI情報
WIFIのSSID、パスワードの情報を調べてプログラムを書き換える
1)MQTTでデータを送る先となるエンドポイントを調べる
「設定」メニューを押下すると、デバイスデータエンドポイントの下にエンドポイントの情報が記載されているので、これをコピーしてプログラムに書き込む
2)MQTTのトピック名を設定する
プログラムの中でMQTTのトピック名を必要に応じて書き換える
3)デバイスID
デバイスごとにユニークなデバイスIDを名付ける
3)デバイス証明書など
モノの登録のところでダウンロードした「デバイス証明書」「プライベートキーファイル」「ルートCA証明書」の情報をプログラムにコピペする
4)AWSへのデータ送信間隔
デフォルトでは5秒になっているが、必要に応じて間隔を変更する
4.テスト
プログラムを書き込み実行する
「MQTTテストクライアント」メニューから「トピックをサブスクライブする」の下にある「トピックのフィルター」の欄に先ほど設定したMQTTトピック名を書いて「サブスクライブ」ボタンを押下し、データが正常に送られてきているかどうか確認する
参考