ESP8266 快速对接小爱同学
- 一、环境资料
- 二、安装配置
- 三、下载Blinker手机APP,并更改符合小米小爱协议的代码
- 四、米家绑定Blinker点灯
一、环境资料
1. 硬件:ESP8266 NodeMCU 开发板
点击查阅硬件开发文档
2. 点击参考blinker官方开发文档
3. 开发工具下载链接,里面包含了本次开发所需的工具:https://pan.baidu.com/s/1Zc0BsXgfPfbXw7UCn1sD_Q 提取码:vgvr
二、安装配置
1. 在上面百度云网盘下载“串口驱动” 并安装之后,会在装置管理员看到serial port:
2. 安装Arduino IDE开发环境
将网盘中的“arduino-nightly-windows.zip”下载到电脑,解压至当前文件夹,双击直接运行。
3. 安装完之后,打开Arduino IDE,为了让Arduino IDE找到ESP8266的设定档,先到 “File” -> “Preferences”
并在Additional Boards Manager URLs 填入:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
填完之后按OK,接着准备选板子,到 “Tools” -> “Board” -> “Boards Manager”
在“Boards Manager” 里,它需要约十几秒钟整理所有硬体,所以我们等一会儿之后,将卷轴往下拉找到“esp8266”,点右边的Install,这时候Arduino IDE就根据ESP8266的设定档开始下载ESP8266所需要的硬件,我这里已经安装好了
选择对应的硬件就行了
4. 安装第三方库
将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中
打开Arduino.exe,选择File->Examples->Blinker->Blinker_Hello->Hello_wifi
示例代码:
#define BLINKER_WIFI#include <Blinker.h>char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");int counter = 0;// 按下按键即会执行该函数
void button1_callback(const String & state)
{BLINKER_LOG("get button state: ", state);digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup()
{// 初始化串口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);
}void loop() {Blinker.run();
}
三、下载Blinker手机APP,并更改符合小米小爱协议的代码
具体可以参靠Blinker小爱同学语音对接
#define BLINKER_WIFI#define BLINKER_MIOT_LIGHT#include <Blinker.h>char auth[] = "填写自己手机APP创建的key";
char ssid[] = "wifi名称";
char pswd[] = "wifi密码";// 新建组件对象
BlinkerButton Button1("ledkey");
BlinkerNumber Number1("num-abc");int counter = 0;// 按下按键即会执行该函数
void button1_callback(const String & state)
{BLINKER_LOG("get button state: ", state);digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}void miotPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(LED_BUILTIN, LOW);BlinkerMIOT.powerState("off");BlinkerMIOT.print();}else if (state == BLINKER_CMD_OFF) {digitalWrite(LED_BUILTIN, HIGH);BlinkerMIOT.powerState("on");BlinkerMIOT.print();}
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup()
{// 初始化串口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);BlinkerMIOT.attachPowerState(miotPowerState);
}void loop() {Blinker.run();
}
四、米家绑定Blinker点灯
打开米家->我的->其他平台设备->添加->Blinker点灯科技
编译上传代码,对小爱同学说一句开灯试下吧。