ESP8266+blinker点灯(小爱+天猫+小度三合一)
时间:2023-03-13 14:00:00
文章目录
- ESP8266
-
- 一.简介
- 二.程序
-
- 1.小爱同学
- 2.天猫精灵
- 3.小度
- 三.合成
ESP8266
一.简介
今天给大家讲讲各种语言助手的控制ESP8266点灯,这是我们用的还是blinker平台上写了一篇关于小艾同学点灯的文章。今天,让我们来谈谈小都和天猫精灵的控制
二.程序
1.小爱同学
- 声明头文件
#define BLINKER_MIOT_LIGHT
- 初始化
BlinkerMIOT.attachPowerState(miotPowerState); ///小爱语音操作注册函数
- 这里我以点灯为例
///小爱电源回调 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.天猫精灵
- 声明头文件
#define BLINKER_ALIGENIE_LIGHT ///设置天猫灯类库
- 初始化
BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数
- 函数实现,这里我以点灯为例
//天猫精灵电源类回调
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.小度
- 头文件的声明
#define BLINKER_DUEROS_LIGHT //设置小度灯类库
- 初始化
BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数
- 函数实现,这里我以点灯为例
//小度电源类回调
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();
}
}
三.合成
大家可以根据自己的需求来添加程序,我将三种控制合成一个程序
#define BLINKER_PRINT Serial //用于打开串口 #define BLINKER_WIFI //用于指定设备接入方式 wifi 接入 #define BLINKER_MIOT_LIGHT //设置小爱同学控制为语音控制灯设备 #define BLINKER_DUEROS_LIGHT //设置小度灯类库 #define BLINKER_ALIGENIE_LIGHT //设置天猫灯类库 #include
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接入时,该语句也负责保持网络连接*/ }