0


esp8266+小爱同学实现语音交互控制arduino

一、esp8266介绍

可独立应用 也可搭载其他的MCU运行

二、开发环境搭建(arduino)

  1. 在 Arduino IDE 中,打开“文件”>“首选项”选项卡。
  2. 搭建NODE MCU环境:点击菜单栏文件,首选项,在“附加开发板管理器网址”框中,输入以下网址并单击“确定”按钮:(用于加载esp8266库)http://arduino.esp8266.com/stable/package_esp8266com_index.json

三、硬件连接

将sg90的红色线与开发板左侧的VV引脚连接,黑色线与左侧G引脚连接,黄色信号线与开发板右侧D4引脚连接。

用USB线与电脑连接

安装串口转换驱动

选择开发板和端口,一定要选择NodeMCU 1.0,端口选择你所连接的端口(就是刚才在设备管理器中看到的端口)

安装点灯科技Blink库。首先下载好blinker-library的压缩包,然后在arduino ide中点击项目导入库→添加.zip库→选择你刚下载的压缩包→打开就OK了。

四、手机端配置

下载米家和点灯科技

点灯科技小米小爱技术文档:点灯科技-点灯物联网解决方案

打开点灯app,点击添加设备→独立设备→网络接入→复制key→返回我的设备

​​​​​​​然后点击右上角的编辑按钮,然后添加两个按键一个滑块,再次点击添加的组件可以进入组件属性界面,然后记住三个组件键名,并且将滑块的最大值和最小值改为1和180。编辑完成后保存。

五、代码烧录

#include <Servo.h>
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>
 
char auth[] = "68e109cc2361";   //刚刚复制的点灯app的key
char ssid[] = "";             //引号内输入wifi名称
char pswd[] = "";      //引号内输入wifi密码,没有就空着
 
// 新建组件对象
BlinkerButton Button1("");   //引号内填第一个开关组件键名
BlinkerButton Button2("");   //引号内填第二个开关组件键名
Servo myservo;
BlinkerSlider Slider3("");   //引号内填滑块组件键名
 
int servo_max,servo_min,ser_num,time_num;
 
void button1_callback(const String & state) {    //最大值按钮功能
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
}
 
void button2_callback(const String & state) {   //最小值按钮功能
    BLINKER_LOG("get button state: ", servo_min);
    myservo.write(servo_min);
    Blinker.vibrate();
}
void slider3_callback(int32_t value) //滑块功能
{
    ser_num = value;
    myservo.write(ser_num);
    Blinker.delay(100);
    BLINKER_LOG("get slider value: ", value);
}
//小爱功能
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);
 
    if (state == BLINKER_CMD_ON) {
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
    }
    else if (state == BLINKER_CMD_OFF) {
    BLINKER_LOG("get button state: ", servo_min);
    myservo.write(servo_min);
    Blinker.vibrate();
    }
}
 
 
 
void setup() {
 
 
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Slider3.attach(slider3_callback);
    BlinkerMIOT.attachPowerState(miotPowerState);
    myservo.attach(2); 
    myservo.write(10); 
    servo_max=180;//旋转的度数
    servo_min=0;
    time_num=500;
 
}
 
void loop() {
 
  Blinker.run();
 
}

六、关联米家APP和Blinker设备

打开

米家APP

,点击

我的

,点击

其他平台设备

,点击

添加

,在列表中找到

点灯科技

,点击

绑定账号

,登录你的Blinker账号,最后点击

同步设备

即可。设备同步成功之后就可以看到你在Blinker APP上创建的所有设备。

七、语音控制测试

把烧录好代码的设备通上电,通过串口打印的一些信息,我们可以看到设备正常连上网络之后会连接到Blinker的服务器,连接成功之后可以在Blinker的APP上看到设备的状态由 ‘离线’ 变成 ‘在线’。

小爱同学支持的开关类控制语音如下:

打开/关闭{门口}的{灯}

{}里面的内容是通配多种关键词的,你可以在Blinker APP修改设备的名称,然后语音对应的命令也要跟着改变,保持一致才能正确的控制设备。

对着小米手机呼叫小爱同学,收到回应之后再说打开灯,就能看到设备的LED灯被打开了。同理,关闭灯的指令也是一样的操作。
通过串口打印的信息也可以看到开灯和关灯相关的指令。

以上是使用小爱同学通过esp8266控制硬件设备的整个流程

在这个基础上可以增加其他的功能,比如控制灯的开关、亮度、色温(RGB灯)、设备工作模式等等


本文转载自: https://blog.csdn.net/weixin_45679408/article/details/134558695
版权归原作者 Malo. 所有, 如有侵权,请联系我们删除。

“esp8266+小爱同学实现语音交互控制arduino”的评论:

还没有评论