前提・実現したいこと
初めて質問させて頂きます。
ESP-WROOM-02(ESP8266)のアナログ入力値の値をMilkcocoaのDataStoreに送りたい。
Arduinoは使わずESP-WROOM-02単体での運用です。
Milkcocoaの下記公式ページから ESP8266 SDK(ESP8266に直接プログラムを書き込む場合のSDK)
のスケッチ例を試していますが、コンパイル、ESP-WROOM-02に書込みはできたのですが、
Milkcocoaのデータストアにデータの送信?がされません。
https://mlkcca.com/document/start-arduino.html
発生している問題・エラーメッセージ
エラーはないのですが、 milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
が動いて無いように感じます。
該当のソースコード
#include <ESP8266WiFi.h> #include <Milkcocoa.h> /************************* WiFi Access Point *********************************/ #define WLAN_SSID "********" #define WLAN_PASS "****************" /************************* Your Milkcocoa Setup *********************************/******** #define MILKCOCOA_APP_ID "****************" #define MILKCOCOA_DATASTORE "esp8266/tout" /************* Milkcocoa Setup (you don't need to change this!) ******************/ #define MILKCOCOA_SERVERPORT 1883 /************ Global State (you don't need to change this!) ******************/ // Create an ESP8266 WiFiClient class to connect to the MQTT server. WiFiClient client; const char MQTT_SERVER[] PROGMEM = MILKCOCOA_APP_ID ".mlkcca.com"; const char MQTT_CLIENTID[] PROGMEM = __TIME__ MILKCOCOA_APP_ID; Milkcocoa milkcocoa = Milkcocoa(&client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); void onpush(DataElement *elem) { Serial.println("onpush"); }; void onsend(DataElement *elem1) { //自分で追加 Serial.println("onsend"); }; void setupWiFi() { Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void setup() { Serial.begin(115200); delay(10); Serial.println(F("Milkcocoa SDK demo")); setupWiFi(); milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush) ; milkcocoa.on(MILKCOCOA_DATASTORE, "send", onsend) ; //自分で追加 }; void loop() { milkcocoa.loop(); int val = analogRead(A0); Serial.println(String(val)); DataElement elem = DataElement(); DataElement elem1 = DataElement(); //自分で追加 elem.setValue("v", val); elem1.setValue("age",40); //自分で追加 milkcocoa.push(MILKCOCOA_DATASTORE, &elem); delay(7000) milkcocoa.send(MILKCOCOA_DATASTORE, &elem1); //自分で追加 Serial.println("loop"); delay(7000); };
試したこと
スケッチ例にないsendメソッドを追加して試したところ、
sendメソッドのonメソッドは動いているのですが、pushメソッドのonメソッドが動いていません。
MilkcocoaのAPP_IDを誤ったものにしたらエラーがモニタできたので、
Milkcocoa迄は繋がっていると考えています。
シリアルモニタ結果が以下になります。
.......
WiFi connected
IP address:
192.168.10.4
Connecting to MQTT... MQTT Connected!
282
loop
283
loop
onsend
282
loop
onsend
303
またスケッチ上で
milkcocoa.push(MILKCOCOA_DATASTORE, &elem);のpushは黒字のままなのですが
milkcocoa.send(MILKCOCOA_DATASTORE, &elem1);のsend部は橙色になってます。
どうかよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Arduino IDE 1.8.6
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー