ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

M5StackからNCMBを呼び出す

f:id:mbaasdevrel:20201209145902j:plain

M5Stackというのは最近注目されているIoTデバイスです。ESP32をベースとして、SDカードスロットやボタン、USB、Groveコネクタがあらかじめ追加されています。ディスプレイもあるので、データを表示するのも簡単にできます。今回はM5StackとNCMBを連携させるライブラリの使い方を紹介します。

開発環境をセットアップする

今回はArduino IDEを使って開発します。情報は多数あると思いますので要点だけ紹介します。

ここまででM5Stackを動かす環境は整うはずです。

NCMBライブラリを追加する

NIFCLOUD-mbaas/ncmb_m5stackのページからZipファイルをダウンロードします。伸張は不要です。Arduino IDEのスケッチ > ライブラリをインクルード > .ZIP形式のライブラリをインストールから、先ほどダウンロードしたZipファイルを読み込みます。

f:id:mbaasdevrel:20201209145846p:plain

スケッチ例を試す

サンプルコードはファイル > スケッチ例 > 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);

f:id:mbaasdevrel:20201209145902j:plain

まとめ

JSONの整形や日付周りの処理がデフォルトだとない分、通常のSDKと比べるとコード量が増えてしまいます。しかし、これだけのコードでクラウドへのデータ保存や、逆に取り出しができます。ぜひ皆さんのIoTプロジェクトの中で利用してみてください。

NIFCLOUD-mbaas/ncmb_m5stack

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。