M5Stack を Google Cloud IoT Core (MQTT) に接続してみたくて調べてみたメモです。
M5Stack
M5Stack
液晶付きマイコン で Wi-Fi や BLE や バッテリーが付いていて、Arduino環境で気軽に開発する事ができます。
千石電商 や スイッチサイエンス で購入できます。
Google Cloud IoT Core (MQTT)
フルマネージド IoT サービス
- ドキュメント
- Google Cloud Platform で API を有効 にすると利用できるようになります。
Visual Studio Code + PlatformIO IDE
Arduiono 開発環境はこの構成がおすすめです。自動補完や書き込み、シリアルコンソールの統合された環境で効率的に開発できます。
参考 M5Stackの開発環境を整える - PlatformIO IDE編
Google Cloud IoT Core (MQTT) 環境を整える
- Google Cloud Platform で プロジェクトを作って IoT Core を有効にする
- Cloud SDK を参考にインストールする。
-
gcloud init
を実行して 1 で作ったプロジェクトを指定する。 - gcloud ツールで Pub/Sub を行う を参考に topics と subscriptions を登録してみる。
- Cloud コンソール で 登録されているか確認する。
-
トピック (topic_1) の削除
/サブスクリプション (subscription_1) の削除
をしてみる。
ここまでの操作で gcloud ツール と Cloud コンソール で 一通りの MQTT動作確認ができた筈。
Google Cloud IoT Core 設定
Google Cloud IoT JWT を参考
- レジストリの作成
- デバイス登録
M5Stack を Google Cloud IoT Core に接続する
- M5Stackの開発環境を整える - PlatformIO IDE編 を参考に環境を整える
- PlatformIO HOME 画面から 新規プロジェクトを作り
lib
フォルダに Google Cloud IoT JWT を配置する。 -
examples/Esp32-lwmqtt
を参考にしてコードを書いてみる
Esp32-lwmqtt.ino
#include "esp32-mqtt.h"
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
setupCloudIoT();
}
void loop() {
...
}
ciotc_config.h
const char *ssid = "SSID";
const char *password = "PASSWORD";
// Cloud iot details.
const char *project_id = "project-id";
const char *location = "us-central1";
const char *registry_id = "my-registry";
const char *device_id = "my-esp32-device";
...
const char *private_key_str =
...
const char *root_cert =
...
ciotc_config.h
に トピック や サブスクリプションの設定、 証明書の設定を行えば、接続できる筈です。