小爱同学语音控制时说 先帮你操作了,看看设备状态吧-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3965|回复: 3

[过期] 小爱同学语音控制时说 先帮你操作了,看看设备状态吧

[复制链接]
发表于 2021-1-12 09:18 | 显示全部楼层 |阅读模式
小爱同学语音控制时说 先帮你操作了,看看设备状态吧esp01s控制继电器开关灯,用的官方的代码,app按钮可以正常控制开关灯,米家也同步设备了,但是小爱同学语音控制就是没反应,小爱控制时串口也不打印数据
  1. //esp01通过blinker联网
  2. #define BLINKER_WIFI//定义Blinker,初始化函数
  3. #define BLINKER_MIOT_LIGHT//配置小爱同学开关灯接口

  4. #include <Blinker.h>//导入Blinker包

  5. char auth[] = "a263110020cf";//blinker app获取的产品密钥,通信服务商选择 阿里云
  6. char ssid[] = "TP-LINK_35BF";//WiFi名称
  7. char pswd[] = "qingdao12.";//WiFi密码

  8. BlinkerButton Switch1("btn-01");//注册开关按钮组件

  9. //按下开关按键执行此函数,state为app按钮状态
  10. void switch1_onoff(const String & state){
  11.   BLINKER_LOG("开关状态:",state);
  12.   
  13.   if(state=="on"){
  14.     Switch1.text("开");//设置开关显示文本
  15.     digitalWrite(0,HIGH);
  16.     Switch1.print("on");//反馈回app按钮状态,并将以上设置一并发送给app
  17.    
  18.   }else if(state=="off"){
  19.     Switch1.text("关");
  20.     digitalWrite(0,LOW);
  21.     Switch1.print("off");
  22.    
  23.   }
  24.   Blinker.vibrate();//手机震动500ms
  25. }

  26. void heartbeat(){
  27.   //心跳包 检测GPIO0引脚状态,高电平修改开关状态为on,低电平改为off
  28.   if(digitalRead(0) == HIGH){
  29.     Serial.print("心跳包检测到GPIO0引脚值为:");
  30.     Serial.println(digitalRead(0));
  31.     Switch1.text("开");//设置app开关按钮文本
  32.     Switch1.print("on");//设置app开关按钮状态
  33.   }else if(digitalRead(0) == LOW){
  34.     Serial.print("心跳包检测到GPIO0引脚值为:");
  35.     Serial.println(digitalRead(0));
  36.     Switch1.text("关");
  37.     Switch1.print("off");
  38.   }
  39. }

  40. bool miotState = false;//定义一个布尔型变量,方便给小爱同学查询开关数据

  41. //小爱同学开关灯函数
  42. void miotPowerState(const String & state){
  43.     BLINKER_LOG("小爱同学开关状态: ", state);

  44.     //小爱同学控制开关灯状态,说开就开,说关就关
  45.     if (state == BLINKER_CMD_ON) {
  46.         digitalWrite(0, HIGH);
  47.         Switch1.text("开");//设置开关显示文本
  48.         Switch1.print("on");//反馈回app按钮状态,并将以上设置一并发送给app
  49.         BlinkerMIOT.powerState("on");
  50.         BlinkerMIOT.print();
  51.         miotState = true;
  52.     }
  53.     else if (state == BLINKER_CMD_OFF) {
  54.         digitalWrite(0,LOW);
  55.         Switch1.text("关");
  56.         Switch1.print("off");
  57.         BlinkerMIOT.powerState("off");
  58.         BlinkerMIOT.print();
  59.         miotState = false;
  60.     }
  61. }

  62. //小爱同学查询函数
  63. void miotQuery(int32_t queryCode)
  64. {
  65.     BLINKER_LOG("MIOT Query codes: ", queryCode);

  66.     switch (queryCode)
  67.     {
  68.         case BLINKER_CMD_QUERY_ALL_NUMBER :
  69.             BLINKER_LOG("MIOT Query All");
  70.             BlinkerMIOT.powerState(miotState ? "on" : "off");
  71.             BlinkerMIOT.print();
  72.             break;
  73.         case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
  74.             BLINKER_LOG("MIOT Query Power State");
  75.             BlinkerMIOT.powerState(miotState ? "on" : "off");
  76.             BlinkerMIOT.print();
  77.             break;
  78.         default :
  79.             BlinkerMIOT.powerState(miotState ? "on" : "off");
  80.             BlinkerMIOT.print();
  81.             break;
  82.     }
  83. }

  84. void setup() {
  85.   // put your setup code here, to run once:
  86.   Serial.begin(115200);//初始化串口,设置波特率为115200
  87.   BLINKER_DEBUG.stream(Serial);//调试信息输出到串口,可删除
  88.   //BLINKER_DEBUG.debugAll();//更详细的串口调试信息

  89.   pinMode(LED_BUILTIN,OUTPUT);//初始化板载led
  90.   digitalWrite(LED_BUILTIN,LOW);
  91.   pinMode(0,OUTPUT);//初始化GPIO0引脚为输出工作模式
  92.   digitalWrite(0,HIGH);

  93.   Blinker.begin(auth,ssid,pswd);//初始化blinker
  94.   Switch1.attach(switch1_onoff);//开关按键按下执行switch1_onoff回调函数

  95.   BlinkerMIOT.attachPowerState(miotPowerState);//小爱同学开关灯回调函数
  96.   BlinkerMIOT.attachQuery(miotQuery);//小爱同学查询回调函数
  97.   
  98.   Blinker.attachHeartbeat(heartbeat);//注册一个心跳包

  99. }

  100. void loop() {
  101.   // put your main code here, to run repeatedly:
  102.   Blinker.run();
  103. }
复制代码



 楼主| 发表于 2021-1-12 11:04 | 显示全部楼层
找到原因了,blinker库好久没更新了,刚替换了最新的库文件可以控制了
发表于 2021-1-29 23:39 | 显示全部楼层
亲  怎么更新的   
发表于 2021-4-16 15:27 | 显示全部楼层
兄嘚,,blinker库在哪更新啊。我天猫精灵这几天也老说设备链接失败,,,,也怀疑要更新库了。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 07:55 , Processed in 0.076660 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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