วันจันทร์ที่ 18 ธันวาคม พ.ศ. 2560

กด toggle เปิดปิดพาย

#include <ESP8266WiFi.h>
#include <MicroGear.h>

const char* ssid = "Electronics";
const char* password = "Electronics";

#define APPID "killinter"
#define KEY "Xf6KHcTL2PPzUDg"
#define SECRET "orsDQPrSMXDteAbzseXr5scCE"

#define ALIAS "lediq"

WiFiClient client;

char state = 0;
char stateOutdated = 0;
char buff[16];

MicroGear microgear(client);

void sendState(){
if (state==0)
microgear.publish("/lediq/state","0");
else
microgear.publish("/lediq/state","1");
Serial.println("send state..");
stateOutdated = 0;
}

void updateIO(){
if (state >= 1) {
digitalWrite(D4, LOW);
}
else {
state = 0;
digitalWrite(D4, HIGH);
}
}

void onMsghandler(char topic, uint8_t msg, unsigned int msglen) {
char m = *(char *)msg;

Serial.print("Incoming message -->");
msg[msglen] = '\0';
Serial.println((char *)msg);

if (m == '0' || m == '1') {
state = m=='0'?0:1;
updateIO();
}
if (m == '0' || m == '1' || m == '?') stateOutdated = 1;
}

void onConnected(char attribute, uint8_t msg, unsigned int msglen) {
Serial.println("Connected to NETPIE...");
microgear.setAlias(ALIAS);
stateOutdated = 1;
}

void setup(){
Serial.begin(115200);
Serial.println("Starting...");

pinMode(D4, OUTPUT);

if (WiFi.begin(ssid, password)) {
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
}

microgear.on(MESSAGE,onMsghandler);
microgear.on(CONNECTED,onConnected);
microgear.init(KEY,SECRET,ALIAS);
microgear.connect(APPID);
}

void loop(){
if (microgear.connected()) {
if (stateOutdated) sendState();
microgear.loop();
}
else {
Serial.println("connection lost, reconnect...");
microgear.connect(APPID);
}
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น