当前位置:   article > 正文

esp8266+小爱同学实现语音交互控制arduino_小爱同学控制arduino开发板

小爱同学控制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。编辑完成后保存。

五、代码烧录

  1. #include <Servo.h>
  2. #define BLINKER_WIFI
  3. #define BLINKER_MIOT_OUTLET
  4. #include <Blinker.h>
  5. char auth[] = "68e109cc2361"; //刚刚复制的点灯app的key
  6. char ssid[] = ""; //引号内输入wifi名称
  7. char pswd[] = ""; //引号内输入wifi密码,没有就空着
  8. // 新建组件对象
  9. BlinkerButton Button1(""); //引号内填第一个开关组件键名
  10. BlinkerButton Button2(""); //引号内填第二个开关组件键名
  11. Servo myservo;
  12. BlinkerSlider Slider3(""); //引号内填滑块组件键名
  13. int servo_max,servo_min,ser_num,time_num;
  14. void button1_callback(const String & state) { //最大值按钮功能
  15. BLINKER_LOG("get button state: ", servo_max);
  16. myservo.write(servo_max);
  17. Blinker.vibrate();
  18. }
  19. void button2_callback(const String & state) { //最小值按钮功能
  20. BLINKER_LOG("get button state: ", servo_min);
  21. myservo.write(servo_min);
  22. Blinker.vibrate();
  23. }
  24. void slider3_callback(int32_t value) //滑块功能
  25. {
  26. ser_num = value;
  27. myservo.write(ser_num);
  28. Blinker.delay(100);
  29. BLINKER_LOG("get slider value: ", value);
  30. }
  31. //小爱功能
  32. void miotPowerState(const String & state)
  33. {
  34. BLINKER_LOG("need set power state: ", state);
  35. if (state == BLINKER_CMD_ON) {
  36. BLINKER_LOG("get button state: ", servo_max);
  37. myservo.write(servo_max);
  38. Blinker.vibrate();
  39. }
  40. else if (state == BLINKER_CMD_OFF) {
  41. BLINKER_LOG("get button state: ", servo_min);
  42. myservo.write(servo_min);
  43. Blinker.vibrate();
  44. }
  45. }
  46. void setup() {
  47. Serial.begin(115200);
  48. BLINKER_DEBUG.stream(Serial);
  49. Blinker.begin(auth, ssid, pswd);
  50. Button1.attach(button1_callback);
  51. Button2.attach(button2_callback);
  52. Slider3.attach(slider3_callback);
  53. BlinkerMIOT.attachPowerState(miotPowerState);
  54. myservo.attach(2);
  55. myservo.write(10);
  56. servo_max=180;//旋转的度数
  57. servo_min=0;
  58. time_num=500;
  59. }
  60. void loop() {
  61. Blinker.run();
  62. }

六、关联米家APP和Blinker设备

打开 米家APP,点击我的,点击其他平台设备,点击添加,在列表中找到点灯科技,点击绑定账号,登录你的Blinker账号,最后点击同步设备即可。设备同步成功之后就可以看到你在Blinker APP上创建的所有设备。

七、语音控制测试

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

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

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/107506
推荐阅读
相关标签
  

闽ICP备14008679号