ESP8266 快速对接小爱同学
- 一、环境资料
- 二、安装配置
- 三、下载Blinker手机APP,并更改符合小米小爱协议的代码
- 四、米家绑定Blinker点灯
一、环境资料
1. 硬件:ESP8266 NodeMCU 开发板
2.
二、安装配置
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的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
}
void loop() {
Blinker.run();
}
三、下载Blinker手机APP,并更改符合小米小爱协议的代码
#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的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
BlinkerMIOT.attachPowerState(miotPowerState);
}
void loop() {
Blinker.run();
}
四、米家绑定Blinker点灯
打开米家->我的->其他平台设备->添加->Blinker点灯科技
编译上传代码,对小爱同学说一句开灯试下吧。