- A+
所属分类:软件分享
如果使用 ESP8266 接入 Blinker* 请确保安装了 2.7.4 或更新的 ESP8266/Arduino 支持包。
* https://github.com/esp8266/Arduino/releases |
库文件下载
https://github.com/blinker-iot/blinker-library/archive/master.zip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#define BLINKER_WIFI #define BLINKER_MIOT_OUTLET //小爱同学配置电源类设备的包 #include <Blinker.h> char auth[] = "f9********d3";//点灯科技的秘钥 char ssid[] = "CMCC";//你家的Wifi名字 char pswd[] = "*************";//你家的wifi密码 BlinkerButton BtnPow("btn-pow"); //定义点灯科技自定义按钮键名 int GPIO = 0; //继电器数字端口,8266只有数字端口0 //主程序 void setup(){ //初始化串口 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); //定义输出模式 pinMode(GPIO, OUTPUT); digitalWrite(GPIO, HIGH); //初始化blinker Blinker.begin(auth, ssid, pswd); //blinker数据接收 Blinker.attachData(dataRead); //按键回调 BtnPow.attach(btnPowCallback); //小爱同学反馈信息,调用设备查询函数,查询设备开关机状态 BlinkerMIOT.attachQuery(miotQuery); //小爱同学反馈信息,小爱控制开关机操作 BlinkerMIOT.attachPowerState(miotPowerState); } //主循环,循环运行blinker void loop(){ Blinker.run(); } //自定义小爱同学电源类操作的回调函数 void miotPowerState(const String & state){ BLINKER_LOG("XiaoAi Set Power State: ", state); //开启 if (state == BLINKER_CMD_ON){ digitalWrite(GPIO, LOW); //更新状态 BlinkerMIOT.powerState("on"); BlinkerMIOT.print(); // 关闭 }else if (state == BLINKER_CMD_OFF){ digitalWrite(GPIO, HIGH); //更新状态 BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); } } //自定义小爱同学状态查询的回调函数 void miotQuery(int32_t queryCode){ BLINKER_LOG("XiaoAi Query codes: ", queryCode); switch (queryCode){ //小爱查询全部内容 case BLINKER_CMD_QUERY_ALL_NUMBER : BLINKER_LOG("MIOT Query All"); BlinkerMIOT.powerState(digitalRead(GPIO) ? "off" : "on"); BlinkerMIOT.print(); break; //小爱同学查询插座状态 case BLINKER_CMD_QUERY_POWERSTATE_NUMBER : BLINKER_LOG("MIOT Query Power State"); BlinkerMIOT.powerState(digitalRead(GPIO) ? "off" : "on"); BlinkerMIOT.print(); break; default : BlinkerMIOT.powerState(digitalRead(GPIO) ? "off" : "on"); BlinkerMIOT.print(); break; } } //如果未绑定的组件被触发,则会执行其中内容 void dataRead(const String & data){ //读取字符串,打印 BLINKER_LOG("Blinker ReadString: ", data); //起刷新作用 Blinker.vibrate(); //获取到系统运行的时间 uint32_t BlinkerTime = millis(); //打印出来 Blinker.print("millis", BlinkerTime); } //点灯App内控制按键触发 void btnPowCallback(const String & state){ BLINKER_LOG("App Set Power State: ", state); digitalWrite(GPIO, !digitalRead(GPIO)); } |