はじめまして。
お世話になります。
Milkcocoaからのデータを取得し
Arduino可したESP-WROOM-02(以下WROOM)のLEDON/OFFを考えています。
WROOMへプログラムを書込み
Milkcocoa Testerから「SEND TEST」で
state ON
または
state OFF
を送信すれば、LEDが希望通りに動きます。
しかし、しばらく(正確な時間は分かりません5分位)
放置し、再度Milkcocoa TesterでSENDしても
WROOMのLEDが反応しなくなります。
どなたか、原因が分かる方、ご教授お願いいたします。
ArduinoIDEのバージョンは 1.6.10
以下、WROOMへ書込みしたソースコードです。
よろしくお願いいたします。
#include <ESP8266WiFi.h> #include <Milkcocoa.h> /************************* WiFi Access Point *********************************/ // Wi-Fi SSID #define WLAN_SSID "-----" // Wi-Fi PASSWORD #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 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); // LEDを接続するピン const int ledPin = 5; #define LED_ON LOW #define LED_OFF HIGH // Wifi setup 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")); // LED Pin 出力 初期化 digitalWrite(ledPin,LED_OFF); pinMode(ledPin, OUTPUT); // 出力に設定 setupWiFi(); // Milkcocoaへデータがsendされたか監視 milkcocoa.on(MILKCOCOA_DATASTORE, "send", onSend); }; //--------------------------------------------------- void loop() { milkcocoa.loop(); }; //--------------------------------------------------- void onSend(DataElement *pelem) { // データの取得 String data = pelem->getString("state"); // 取得した文字列が"ON"ならば if (data == "ON") { Serial.println("ON"); digitalWrite(ledPin,LED_ON); } // 取得した値がON以外ならば else { Serial.println("OFF"); digitalWrite(ledPin,LED_OFF); } };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/02 14:04 編集
2016/08/02 23:24
2016/08/03 01:22