900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ESP8266+blinker点灯(小爱+天猫+小度三合一)

ESP8266+blinker点灯(小爱+天猫+小度三合一)

时间:2021-03-17 05:30:31

相关推荐

ESP8266+blinker点灯(小爱+天猫+小度三合一)

文章目录

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 <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的IOpinMode(LED_BUILTIN, OUTPUT); //LED_BUILTIN 宏就是开发板指示灯的io口digitalWrite(LED_BUILTIN, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Button1.attach(button1_callback); //绑定按键执行回调函数BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数}void loop() {Blinker.run(); /*每次运行都会将设备收到的数据进行一次解析。在使用WiFi接入时,该语句也负责保持网络连接*/}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。