EzData は M5Stack が提供する IoT クラウドデータストレージサービスで、異なるデバイス間で 唯一のトークン
を使用してストレージキューにデータを挿入または取得し、データ共有を実現します。
≤1000
件setData
により新しいデータをキューに挿入し、スタック方式(先入れ後出し)で処理され、常にキューの先頭に追加されます。getData
によりキューの先頭のデータを取得します。取得後は元データはキューから削除されます。addToList
により新しいデータをリストの末尾に追加します。getData
により指定したインデックスや範囲のリストデータを取得します。返されるデータはリスト形式です。UiFlow Web IDE 1.0 バージョン を開き、Blockly リストから EzData
オプションをクリックすると、現在のブラウザのトークンを確認できます。トークンの一意性を確保するため、固定のブラウザを使用し、シークレットモードは使用しないでください。
このサンプルプログラムでは CoreS3 デバイスを使用して Ezdata のデータ送信・取得テストを行います。コンパイル前に以下の依存ライブラリをインストールし、トークンと Wi-Fi 情報をコードに記入してください。
#include "M5Unified.h"
#include "M5_EzData.h"
const char* ssid = "ssid";
const char* password = "password";
const char* token = "token";
void setup()
{
M5.begin();
M5.Display.println("Wi-Fi connecting...");
if (setupWifi(ssid, password)) {
M5.Display.println("Wi-Fi connected!");
} else {
M5.Display.println("Wi-Fi connect failed");
}
}
void loop()
{
// データ 100 を testData キューの先頭に保存
if (setData(token, "testData", 100)) {
M5.Display.println("Success sending data to the testData");
} else {
M5.Display.println("Fail");
}
delay(5000);
// データ 3 件を順番に testList の先頭に保存
for (int i = 0; i < 3; i++) {
if (addToList(token, "testList", i)) {
M5.Display.printf("Success sending %d to the list\n", i);
} else {
M5.Display.println("Fail");
}
delay(100);
}
delay(5000);
// Topic から 1 件のデータを取得し、result に保存
int result = 0;
if (getData(token, "testData", result)) {
M5.Display.printf("Success get data %d\n", result);
} else {
M5.Display.print("Fail to get data\n");
}
delay(5000);
// List から複数のデータを取得し、Array に保存
int Array[3] = {0};
if (getData(token, "testList", Array, 0, 3)) {
M5.Display.print("Success get list\n");
for (int i = 0; i < 3; i++) {
M5.Display.printf("Array[%d]=%d,", i, Array[i]);
}
M5.Display.println("");
} else {
M5.Display.println("Fail to get data");
}
delay(5000);
// データ削除
if (removeData(token, "testData"))
M5.Display.printf("Success remove data\n");
else
M5.Display.println("Fail to remove data");
if (removeData(token, "testList"))
M5.Display.printf("Success remove data from the list\n");
else
M5.Display.println("Fail to remove data");
delay(5000);
M5.Display.fillScreen(BLACK);
M5.Display.setCursor(0, 0);
}
データを確認または共有する場合は、以下の URL アドレスにトークンパラメータを渡して EzData コントロールパネルページにアクセスできます。
# https://ezdata.m5stack.com/debugger/?token=dCtdfg3u5id72J8xxxxxxxxxxxxxxx
https://ezdata.m5stack.com/debugger/?token={token}
関数プロトタイプ:
int setData(const char *token, const char *topic, int val);
機能説明:
引数:
戻り値:
関数プロトタイプ:
int getData(const char *token, const char *topic, int &result);
機能説明:
引数:
戻り値:
関数プロトタイプ:
int addToList(const char *token, const char *list, int val);
機能説明:
引数:
戻り値:
関数プロトタイプ:
int *getData(const char *token, const char *list, int *Array, int offset, int count);
機能説明:
引数:
戻り値:
関数プロトタイプ:
int removeData(const char *token, const char *field);
機能説明:
引数:
戻り値: