blinker物联网教程——19、接入小度智能音箱-Arduino爱好者 - Powered by Discuz!

Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7965|回复: 1

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、智能宠物喂食器


发表于 2022-7-19 20:04 | 显示全部楼层
你好,我按照官方文档关联了小爱同学,但是每次通过小爱查询温湿度的时候都说与设备沟通失败,是什么原因呢?

  1. #define BLINKER_WIFI
  2. #define BLINKER_MIOT_SENSOR

  3. #include <Blinker.h>
  4. #include <DHT.h>

  5. char auth[] = "***";
  6. char ssid[] = "***";
  7. char pswd[] = "******";

  8. // 设置温度控件
  9. BlinkerNumber SHIDU("shidu");
  10. BlinkerNumber WENDU("wendu");

  11. // 设置温湿度传感器引脚
  12. #define DHTPIN D8
  13. // 设置温度传感器型号
  14. #define DHTTYPE DHT11

  15. DHT dht(DHTPIN, DHTTYPE);

  16. float shidu_read = 0, wendu_read = 0;

  17. void heartbeat()
  18. {
  19.     WENDU.print(wendu_read);
  20.     SHIDU.print(shidu_read);
  21. }

  22. //接入小爱同学
  23. void miotQuery(int32_t queryCode)
  24. {
  25.     BLINKER_LOG("MIOT Query codes: ", queryCode);
  26.     int shidu_ai = shidu_read;
  27.     switch (queryCode)
  28.     {
  29.         case BLINKER_CMD_QUERY_HUMI_NUMBER :
  30.             BLINKER_LOG("MIOT Query HUMI");
  31.             BlinkerMIOT.humi(shidu_ai);
  32.             BlinkerMIOT.print();
  33.             break;
  34.         case BLINKER_CMD_QUERY_TEMP_NUMBER :
  35.             BLINKER_LOG("MIOT Query TEMP");
  36.             BlinkerMIOT.temp(wendu_read);
  37.             BlinkerMIOT.print();
  38.             break;
  39.     }
  40. }

  41. void setup()
  42. {
  43.    Serial.begin(115200);
  44.    BLINKER_DEBUG.stream(Serial);
  45.    BLINKER_DEBUG.debugAll();

  46.    Blinker.begin(auth, ssid, pswd);
  47.    Blinker.attachHeartbeat(heartbeat);
  48.    dht.begin();
  49.    BlinkerMIOT.attachQuery(miotQuery);
  50. }

  51. void loop()
  52. {
  53.   Blinker.run();

  54.   float sd = dht.readHumidity();
  55.   float wd = dht.readTemperature();

  56.   if(isnan(sd) || isnan(wd))
  57.   {
  58.     BLINKER_LOG("读取温湿度失败");
  59.   }
  60.   else
  61.   {
  62.     BLINKER_LOG("温度:", wd, "℃");
  63.     BLINKER_LOG("湿度", sd, "%");
  64.     shidu_read = sd;
  65.     wendu_read = wd;
  66.   }
  67.   Blinker.delay(2000);
  68. }
复制代码

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

本版积分规则

小黑屋|Archiver|手机版|好玩手机游戏盒子|196体育|Arduino爱好者

GMT+8, 2023-9-30 11:54 , Processed in 0.082599 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表