查看: 1694|回复: 0

blinker物联网教程——19、接入小度智能音箱

[复制链接]

该用户从未签到

发表于 2021-10-11 18:08 | 显示全部楼层 |阅读模式
本帖最后由 海神 于 2022-5-17 16:16 编辑

简介


很多同学可能已经接触过智能音箱比如:小度音箱、小爱音箱、天猫精力等等。与传统的音箱相比,此类智能音箱不仅能播放音乐,还能联网播放运营商服务器存放中的音乐、相声、书籍、百科知识等等,简直是身边的百科全书、人工智能。除此之外,智能音箱还提供语音唤醒,语音控制等功能,也就是咱们可以直接对音箱说出指令,它就会执行相应的命令。
那智能音箱和我们的物联网主板又有什么关系?
因为这两者都可以接入云端服务器,如果将两端服务器打通,那么我们可以使用智能音箱控制我们的wifiduino,将家用电器接入在wifiduino板中,于是我们就控制灯光、窗帘、插座等等家用电器。 所以将人工智能与物联网结合,这也可以被称作“AIOT“
那问题是怎样将我们的智能音箱与物联网主板wifiduino的服务器打通?
好在blinker提供了这样的方案(下面我们以小度智能音箱为例讲述本节内容)。使用blinker方案将wifiduino配网后连接至服务器,随后在小度语音助手APP中绑定blinker账号。那么blinker账号下的wifiduino设备将可以由小度直接控制。
硬件器材


继电器模块 *1
LED模块*1



接入小度智能音箱


手机下载“小度音箱”app。使用百度账号登陆app
app中点击“添加设备”,选择“小度智能音箱”,点击“继续”,
pic1.png pic2.png
长按小度音箱的三角键,开始进入配置网络
pic3.png
提示将蓝牙打开,以帮助连接小度,随后会自动搜索附近的小度智能音箱,扫描成功后,选择对应的音箱型号,点击“继续”。
pic4.png
设置小度音箱连接的wifi账号和密码,点击“开始配置”。小度音箱将会配置网络。完成后,点击“开始体验”。
pic5.png 硬件接线

picxx.png

示例程序

  1. #define BLINKER_PRINT Serial
  2. #define BLINKER_WIFI
  3. #define BLINKER_DUEROS_OUTLET
  4. #define OUTLET_PIN D8
  5. char auth[] = "28xxxxxx252a";
  6. char ssid[] = "mxxxxxn";
  7. char pswd[] = "x8x08xxxx";

  8. bool oState = false;

  9. void duerPowerState(const String & state)
  10. {
  11.     BLINKER_LOG("need set power state: ", state);

  12.     if (state == BLINKER_CMD_ON) {
  13.         digitalWrite(OUTLET_PIN, HIGH);

  14.         BlinkerDuerOS.powerState("on");
  15.         BlinkerDuerOS.print();

  16.         oState = true;
  17.     }
  18.     else if (state == BLINKER_CMD_OFF) {
  19.         digitalWrite(OUTLET_PIN, LOW);

  20.         BlinkerDuerOS.powerState("off");
  21.         BlinkerDuerOS.print();

  22.         oState = false;
  23.     }
  24. }

  25. void duerQuery(int32_t queryCode)
  26. {
  27.     BLINKER_LOG("DuerOS Query codes: ", queryCode);

  28.     switch (queryCode)
  29.     {
  30.         case BLINKER_CMD_QUERY_TIME_NUMBER :
  31.             BLINKER_LOG("DuerOS Query time");
  32.             BlinkerDuerOS.time(millis());
  33.             BlinkerDuerOS.print();
  34.             break;
  35.         default :
  36.             BlinkerDuerOS.time(millis());
  37.             BlinkerDuerOS.print();
  38.             break;
  39.     }
  40. }

  41. void dataRead(const String & data)
  42. {
  43.     BLINKER_LOG("Blinker readString: ", data);

  44.     Blinker.vibrate();

  45.     uint32_t BlinkerTime = millis();
  46.     Blinker.print(BlinkerTime);
  47.     Blinker.print("millis", BlinkerTime);
  48. }

  49. void setup()
  50. {
  51.     Serial.begin(115200);

  52.     #if defined(BLINKER_PRINT)
  53.         BLINKER_DEBUG.stream(BLINKER_PRINT);
  54.     #endif

  55.     pinMode(OUTLET_PIN, OUTPUT);
  56.     digitalWrite(OUTLET_PIN, LOW);

  57.     Blinker.begin(auth, ssid, pswd);
  58.     Blinker.attachData(dataRead);

  59.     BlinkerDuerOS.attachPowerState(duerPowerState);
  60.     BlinkerDuerOS.attachQuery(duerQuery);
  61. }

  62. void loop()
  63. {
  64.     Blinker.run();
  65. }
复制代码

小度绑定blinker账户


在手机界面中找到“智能家居”,选择“添加智能家居设备”。找到blinker点击授权。 pic6.png
这样就将blinker软件中的绑定的设备,授权给“小度音箱”使用。
点击“账号授权”,填写blinker的账号和密码,完成登录绑定。
这时候,在智能家居一栏中就会出现刚添加的智能设备(插座wifiduino)
注意:这里显示的智能设备会根据wifiduino中程序的定义自动判别添加的是插座、灯或者传感器
以修改添加设备的属性,将其取名为XX位置的XX设备。(例如 设备名称:插座  设备分组:厨房  插座上的设备类型:电饭煲)
pic7.png

语音控制


对着小度音箱说“小度 小度 打开厨房的插座”就会执行接通继电器的指令, “小度 小度 关掉厨房的插座”就会执行关闭继电器的指令。并观察继电器模块的通断状态。

系列教程


blinker物联网教程——1、物联网及blinker介绍
blinker物联网教程——2、搭建编程环境
blinker物联网教程——3、主控硬件wifiduino
blinker物联网教程——4、控制开关灯
blinker物联网教程——5、认识传感器
blinker物联网教程——6、wifi智能插座
blinker物联网教程——7、室内温湿度计
blinker物联网教程——8、定时任务-定时震动器
blinker物联网教程——9、blinker语音识别-芝麻开门
blinker物联网教程——10、日照时间分析
blinker物联网教程——11、自动灌溉
blinker物联网教程——12、调色盘
blinker物联网教程——13、公园噪音监测
blinker物联网教程——14、智能停车场
blinker物联网教程——15、智能家居
blinker物联网教程——16、遥控机械臂
blinker物联网教程——17、防疫隔离门磁
blinker物联网教程——18、手机控制空调
blinker物联网教程——19、接入小度智能音箱
blinker物联网教程——20、语音氛围灯
blinker物联网教程——23、wifi智能小车
blinker物联网教程——24、智能宠物喂食器


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Arduino IDE  ESP32 下不能使用中文关键字使我非常郁闷。
Arduino IDE ESP32 下不
Arduino IDE ESP8266 下可以使用中文关键字 Arduino IDE ESP32 下不能使用中文关键
AVR32开发板
AVR32开发板
at32UC3B1128开发板支持很多硬件资源,感兴趣可以在评论区交流
合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (上)
合宙ESP32C3使用TFT_eSPI
TFT_eSPI库升级到2.4.61版本可以完美的支持的合宙ESP32C3操作ST7735s屏幕。合宙ESP32C
blinker物联网教程——4、控制开关灯
blinker物联网教程——4、
简介[hr]在基础教程中,我们用wifiduino做了一系列的控制实验,并了解了传感器和主板
合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (中)
合宙ESP32C3使用TFT_eSPI
TFT_eSPI库里面含有自备字库的制作工具,数字、英文大小写和中文字体采用Unicode编码
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表