#概要
M5STICKCには6軸IMU MPU6886が搭載されており、筐体自身の加速度とジャイロの変化をセンサシングできます。M5STICKC搭載のWIFIを経由し、AWS IoTのMQTTにセンサー値をプッシュし、ElasticSearchのKibanaでリアルタイムにグラフ表示してみます。
#参考資料
ESP32でAWS IoTに繋いでThing Shadowを弄る
M5Stackを利用したAWS IoTの簡単な使い方
ESP32 DeveloperでAWS IoTを動かそうとしてハマったメモ
M5Stack(ESP32マイコン)とAWS IoTで始めるIoT入門
「AWS IoTのデータをKibanaに表示する」をやってみた。2017/3版
AWS IoTのデータをKibanaに表示する
#AWS IoTの設定
M5Stackを利用したAWS IoTの簡単な使い方から「3-1. ポリシーの作成」から「3-3. 証明書の作成」までの手順を実行してください
私が考える注意点を列挙します。
- 名前を付ける際には小文字と数値でつけてください。大文字が混ざるとElasticSearchとの連携がうまくいきませんでした。
- エンドポイントのURLはAWS IoTのコンソールの[設定]で見れます。
#M5StickCのArduinoでの開発
##ソース
https://github.com/MypaceEngine/m5stick_mpu6886_awsiot
##ソースの利用方法
下記の変更が必要です。
行 | 変更ソース | 変更内容 |
---|---|---|
17 | const char* ssid = ""; | あなたのWIFIのSSIDを指定してください |
18 | const char* password = ""; | あなたのWIFIのパスワードを指定してください |
21 | const char* awsEndpoint = ""; | あなたのAWS IotのURLを入力してください。 xxxxxxxxxxxxxx.iot.ap-northeast-1.amazonaws.com |
25 | const char* pubTopic = ""; | あなたのAWS IotのTopicを入力してください |
26 | const char* rootCA = "-----BEGIN CERTIFICATE-----\n" \ | AWS IoTでダウンロードしたCA証明書を入れてください。 ESP32でAWS IoTに繋いでThing Shadowを弄るを参照 複数のCA証明書がありますので、全パターン試してみれば接続できるものがあります。 |
27 | const char* certificate = "-----BEGIN CERTIFICATE-----\n" \ | AWS IoTでダウンロードした証明書を入れてください。 ESP32でAWS IoTに繋いでThing Shadowを弄るを参照 |
28 | const char* privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" \ | AWS IoTでダウンロードした秘密鍵を入れてください。 ESP32でAWS IoTに繋いでThing Shadowを弄るを参照 |
76 | String clientId = ""; | AWS IoTのモノで設定した名前を入れてください。 |
#AWS IoTでMQTTの受信の確認
M5Stackを利用したAWS IoTの簡単な使い方から「3-6.AWS IoTのテスト画面で確認」の手順を実行してください。
下記が注意点。
- Arduinoのソースの「AWS IotのTopic」で指定した名前を入力してください。
#Elasticの立ち上げ
ElasticSearchの作成には時間がかかります。
- AWS IoTのトップ画面から「Elasticsearch Service」を押下する
- 下記のように設定する。
項目 | 設定値 |
---|---|
デプロイタイプ | 開発およびテスト Elasticsearch エンドポイントが 1 つのみ必要な場合、1 つのアベイラビリティーゾーン |
Domain name | 好きな名前 |
Instance type | t2.ssmall.elasticsearch |
Instance count | 1 |
Strage type | EBS |
ネットワーク構成 | パブリックアクセス |
ドメインアクセスポリシーの設定 | ドメインへのオープンアクセスを許可 |
出来上がるまで気長に待ってください。
#アクションの設定
AWT IoTからElasticSearchにデータを流す設定を行います。
- AWS IoTのコンソールでACTを選択し、右上の[作成]を押下する。
- 名前と説明を適当につける。ルールクエリステートメントに「SELECT * FROM 'm5stickc_sensor'」を設定する。m5stickc_sensorの部分はArdiunoソースのAWS IotのTopicで設定した文字列を指定してください。
- [1つ以上のアクションを設定する]の[アクションの追加]を押下し、「Amazon Elasticsearch Service にメッセージを送信する AMAZON ELASTICSEARCH」を選択し、一番下の[アクションの設定]を押下する。
- ドメイン名は先ほど作成したElasticSearchを選択する。IDに${newuuid()}、Indexにtimestamp、Typeにtimestampと指定し、IAMロールも追加する。アクションの追加を押下する。
- 一番下のルールの追加を押下する。
#kibanaの設定
Chromeではだめで、Firefoxでないと動きませんでした。
X軸の設定は下記のように行いました。
項目 | 設定 |
---|---|
Aggregation | terms |
Field | timestamp |
Order By | Alpabetical |
Order | Descending |
size | 20 |
Y軸は下記のように設定しました。
項目 | 設定 |
---|---|
Aggregation | TopHit |
Field | accX |
Aggregate With | Max |
Size | 1 |
Sort On | timeStamp |
Order | Descending |
6種類あるので全部設定すると下記のように表示されます。
お疲れさまでした。