M5Stackというのは最近注目されているIoTデバイスです。ESP32をベースとして、SDカードスロットやボタン、USB、Groveコネクタがあらかじめ追加されています。ディスプレイもあるので、データを表示するのも簡単にできます。今回はM5StackとNCMBを連携させるライブラリの使い方を紹介します。
開発環境をセットアップする
今回はArduino IDEを使って開発します。情報は多数あると思いますので要点だけ紹介します。
- CP210x USB to UART Bridge VCP Drivers - Silicon LabsよりUSBドライバのインストール
- 環境設定の追加のボードマネージャのURLとして https://dl.espressif.com/dl/package_esp32_index.json を設定
- ボードマネージャでESP32をインストール
- シリアルポートは /dev/cu.SLAB_USBtoUART
- ボードはM5Stack-Core-ESP32
ここまででM5Stackを動かす環境は整うはずです。
NCMBライブラリを追加する
NIFCLOUD-mbaas/ncmb_m5stackのページからZipファイルをダウンロードします。伸張は不要です。Arduino IDEのスケッチ > ライブラリをインクルード > .ZIP形式のライブラリをインストールから、先ほどダウンロードしたZipファイルを読み込みます。
スケッチ例を試す
サンプルコードはファイル > スケッチ例 > ncmb_m5stack > NCMBQuickStart を選択します。ここでは修正ポイントを紹介します。
まずWiFi情報を設定します。
WiFi.begin( "WIFI_SSID", "WIFI_PASS");
次にNCMBのアプリケーションキー、クライアントキーを設定します。
ncmb.init( "YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY");
これで準備完了です。
データを保存する
まずmBaaSへのデータ保存方法です。 ncmb.registerObject
を利用します。
String itemValue1 = "takano-kun"; String content1 = "{\"item1\":\"" + itemValue1 + "\"}"; String timestamp1 = "1986-02-04T12:34:56.123Z"; NCMBResponse response1 = ncmb.registerObject("TestClass", content1, timestamp1); M5.Lcd.println(response1.isSuccess? "true" : "false"); M5.Lcd.println(response1.content);
データの検索
データ検索は ncmb.searchObject
を利用します。
String itemValue2 = "takano-kun"; String query2 = "limit=1&where=%7B%22item1%22%3A%22" + itemValue2 + "%22%7D"; String timestamp2 = "1986-02-04T12:34:56.123Z"; NCMBResponse response2 = ncmb.searchObject("TestClass", query2, timestamp2); M5.Lcd.println(response2.isSuccess? "true" : "false"); M5.Lcd.println(response2.content);
まとめ
JSONの整形や日付周りの処理がデフォルトだとない分、通常のSDKと比べるとコード量が増えてしまいます。しかし、これだけのコードでクラウドへのデータ保存や、逆に取り出しができます。ぜひ皆さんのIoTプロジェクトの中で利用してみてください。