ESP8266 快速对接小爱同学 语音控制

一、环境资料

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的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,并更改符合小米小爱协议的代码

具体可以参靠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的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点灯科技
在这里插入图片描述
在这里插入图片描述
编译上传代码,对小爱同学说一句开灯试下吧。

发布了1 篇原创文章 · 获赞 1 · 访问量 35

猜你喜欢

转载自blog.csdn.net/qq_32299035/article/details/104897710
今日推荐