- A+
所属分类:软件分享
一.简介
今天给大家说一下各个语言助手来控制ESP8266来点灯,这是我们用的还是blinker平台,前面有写过关于小爱同学点灯的文章,今天说一下小度和天猫精灵的控制
二.程序
1.小爱同学
- 头文件的声明
1 |
#define BLINKER_MIOT_LIGHT |
- 初始化
1 |
BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数 |
- 函数实现,这里我以点灯为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//小爱电源类回调 void miotPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerMIOT.powerState("on"); BlinkerMIOT.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); } } |
2.天猫精灵
- 头文件的声明
1 |
#define BLINKER_ALIGENIE_LIGHT //设置天猫灯类库 |
- 初始化
1 |
BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数 |
- 函数实现,这里我以点灯为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//天猫精灵电源类回调 void aligeniePowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerAliGenie.powerState("on"); BlinkerAliGenie.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerAliGenie.powerState("off"); BlinkerAliGenie.print(); } } |
3.小度
- 头文件的声明
1 |
#define BLINKER_DUEROS_LIGHT //设置小度灯类库 |
- 初始化
1 |
BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数 |
- 函数实现,这里我以点灯为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/小度电源类回调 void duerPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerDuerOS.powerState("on"); BlinkerDuerOS.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerDuerOS.powerState("off"); BlinkerDuerOS.print(); } } |
三.合成
大家可以根据自己的需求来添加程序,我将三种控制合成一个程序
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
#define BLINKER_PRINT Serial //用于打开串口 #define BLINKER_WIFI //用于指定设备接入方式 wifi 接入 #define BLINKER_MIOT_LIGHT //设置小爱同学控制为语音控制灯设备 #define BLINKER_DUEROS_LIGHT //设置小度灯类库 #define BLINKER_ALIGENIE_LIGHT //设置天猫灯类库 #include <Blinker.h> char auth[] = "a3c11b64eb38"; //上一步中在app中获取到的Secret Key(新建设备的秘钥) char ssid[] = "ZHAI"; //你的WiFi热点名称 char pswd[] = "123456789"; //你的WiFi密码 BlinkerButton Button1("btn-abc"); //btn-abc 名称要和app新建组件一致 // app 端按下按键即会执行该函数 回调函数 void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state); if (state=="on") { digitalWrite(LED_BUILTIN, LOW); // 反馈开关状态 Button1.print("on"); } else if(state=="off"){ digitalWrite(LED_BUILTIN, HIGH); // 反馈开关状态 Button1.print("off"); } } //小爱电源类回调 void miotPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerMIOT.powerState("on"); BlinkerMIOT.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); } } //小度电源类回调 void duerPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerDuerOS.powerState("on"); BlinkerDuerOS.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerDuerOS.powerState("off"); BlinkerDuerOS.print(); } } //天猫精灵电源类回调 void aligeniePowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW); BlinkerAliGenie.powerState("on"); BlinkerAliGenie.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH); BlinkerAliGenie.powerState("off"); BlinkerAliGenie.print(); } } void setup() { // 初始化串口,并开启调试信息 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); //串口打印调试信息 // 初始化有LED的IO pinMode(LED_BUILTIN, OUTPUT); //LED_BUILTIN 宏就是开发板指示灯的io口 digitalWrite(LED_BUILTIN, HIGH); // 初始化blinker Blinker.begin(auth, ssid, pswd); Button1.attach(button1_callback); //绑定按键执行回调函数 BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数 BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数 BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数 } void loop() { Blinker.run(); /*每次运行都会将设备收到的数据进行一次解析。 在使用WiFi接入时,该语句也负责保持网络连接*/ } |