###前提・実現したいこと
Arduino MEGA2560 と ESP8266(ESP WROOM-02) で Milkcocoa のデータストアと接続し、データーやりとりをしたいのですが・・・
###発生している問題・エラーメッセージ
Wifiには接続できているようですが、Milkcocoa と接続できないようです。以下はシリアルモニタの表示です。
Connecting to *******
FW Version:AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
compile time:Aug 11 2015 17:02:18
to station ok
Join AP success
IP: +CIFSR:STAIP,""
+CIFSR:STAMAC,""
single ok
milkcocoa on sucesss
Connecting to MQTT... Milkcocoa SDK demo
これを繰り返します。
###該当のソースコード
試したのは、ArduinoIDEのメニューからファイル>スケッチの例>MilkcocoaArduino SDK > milkcocoa_esp8266 のスケッチで、MEGAに合わせて、wifi.begin()を、Serial5からSerial1に変更しました(https://github.com/exshonda/ESP8266_Arduino_AT を参考にしました)。
#include "ESP8266.h" #include "Milkcocoa.h" #include "Client_ESP8266.h" /************************* WiFi Access Point *********************************/ #define WLAN_SSID "*******" #define WLAN_PASS "*******" /************************* Your Milkcocoa Setup *********************************/ #define MILKCOCOA_APP_ID "*******" #define MILKCOCOA_DATASTORE "*******" /************* Milkcocoa Setup (you don't need to change this!) ******************/ #define MILKCOCOA_SERVERPORT 1883 /************ Global State (you don't need to change this!) ******************/ // Create an ESP8266Client class to connect to the MQTT server. ESP8266Client wifi; const char MQTT_SERVER[] PROGMEM = MILKCOCOA_APP_ID ".mlkcca.com"; const char MQTT_CLIENTID[] PROGMEM = __TIME__ MILKCOCOA_APP_ID; Milkcocoa milkcocoa = Milkcocoa(&wifi, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); int cnt; void setup() { Serial.begin(115200); delay(10); Serial.println(F("Milkcocoa SDK demo")); // Connect to WiFi access point. Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WLAN_SSID); wifi.begin(Serial1, 115200); // MEGA対応に変更した部分はここのみSerial5→Serial1 Serial.print("FW Version:"); Serial.println(wifi.getVersion().c_str()); if (wifi.setOprToStation()) { Serial.print("to station ok\r\n"); } else { Serial.print("to station err\r\n"); } if (wifi.joinAP(WLAN_SSID, WLAN_PASS)) { Serial.print("Join AP success\r\n"); Serial.print("IP: "); Serial.println(wifi.getLocalIP().c_str()); } else { Serial.print("Join AP failure\r\n"); } if (wifi.disableMUX()) { Serial.print("single ok\r\n"); } else { Serial.print("single err\r\n"); } if(milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush)){ Serial.println("milkcocoa on sucesss"); } else { Serial.println("milkcocoa on failure"); } cnt = 0; }; void loop() { milkcocoa.loop(); DataElement elem = DataElement(); elem.setValue("v", cnt++); milkcocoa.push(MILKCOCOA_DATASTORE, &elem); delay(7000); }; void onpush(DataElement *pelem) { Serial.println("onpush"); Serial.println(pelem->getInt("v")); };
###試したこと
Arduino IDE を変えて行いましたが、結果は変わりませんでした。
試したのは1.6.12と1.7.9と1.7.11です。
###補足情報(言語/FW/ツール等のバージョンなど)
MEGA2560の接続は、https://github.com/exshonda/ESP8266_Arduino_AT を参考にしました。
Milkcocoa のドキュメントに従って、ライブラリーは競合を避けるため、Milkcocoa ESP8266 SDKは入れずにMilkcocoa_Arduino_SDKを入れています。他に、ESP8266.hを使うために必要だと思いますが、ESP8266_Arduino_ATがインストールされています。
以上です。
ご回答お願いいたします。