手机app和语音控制反馈异常-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 541|回复: 2

[已解答] 手机app和语音控制反馈异常

[复制链接]
发表于 2022-4-13 11:13 | 显示全部楼层 |阅读模式
本帖最后由 frankxu3698 于 2022-4-13 14:11 编辑

求助大神!
我在做语音控制led实验中,app,天猫精灵都能控制led亮灭,但是在app和语音混合控制时会出现,语音控制后app按键没有显示反馈状态的现象。
- 产生故障的操作:app打开-按键反馈正常,同时语音控制打-串口输出正常,app关闭--按键反馈正常同时语音控制关闭或者打开-led被正确开关但是会出现app按键状态不正常现象
1.png 2.png
异常串口打印:
  1. 100413] autoFormatData key: B1, json: "B1":{"swi":"on"}
  2. [100418] new.
  3. [100522] print: {"B1":{"swi":"on"}}
  4. [100522] Proto print...
  5. [100522] Freeheap: 35168
  6. [100522] isJson: {"data":{"B1":{"swi":"on"}},"fromDevice":"D105E068RT2LHX02GVPW73MN","toDevice":"7a8f785d0b1611eca9315254","deviceType":"OwnApp"}
  7. [100531] MQTT Publish...
  8. [100533] Freeheap: 35168
  9. [100535] ERROR: MQTT NOT ALIVE OR MSG LIMIT
复制代码


代码如下:
  1. //------------------------------------------
  2. #define BLINKER_ALIGENIE_LIGHT //天猫精灵
  3. #define BLINKER_WIFI
  4. #define BLINKER_APCONFIG
  5. #include <Blinker.h>
  6. // Download OneButton library here:
  7. // https://github.com/mathertel/OneButton
  8. #include "OneButton.h"

  9. #if defined(ESP32)
  10.     #define BLINKER_BUTTON_PIN 4
  11. #else
  12.     #define BLINKER_BUTTON_PIN 0
  13. #endif
  14. // button trigged when pin input level is LOW
  15. OneButton button(BLINKER_BUTTON_PIN, true);

  16. char auth[] = "d7a7c41cf639";

  17. void deviceReset()
  18. {
  19.     // Reset device ,erase WiFi config.
  20.     Blinker.reset();
  21. }

  22. void dataRead(const String & data)
  23. {
  24.     BLINKER_LOG("Blinker readString: ", data);

  25.     Blinker.vibrate();
  26.    
  27.     uint32_t BlinkerTime = millis();
  28.    
  29.     Blinker.print("millis", BlinkerTime);
  30. }


  31. //--------天猫精灵----------------------------------
  32. // #define BLINKER_ALIGENIE_LIGHT //天猫精灵
  33. #define Relay_Pin 16
  34. #define LED_BUILTIN  14
  35. // 新建组件对象
  36. BlinkerButton Button1("B1");
  37. BlinkerNumber Number1("num-abc");
  38. bool oState = false; //记录状态
  39. // 按下按键即会执行该函数
  40. void button1_callback(const String & state) {
  41.     BLINKER_LOG("get button state: ", state);
  42.     if (state=="on") {
  43.         digitalWrite(LED_BUILTIN, HIGH);
  44.         digitalWrite(Relay_Pin,HIGH);
  45.         // 反馈开关状态
  46.         Button1.print("on");//返回app设备状态
  47.         //Button1.text("打开");
  48.         oState=1;
  49.     } else if(state=="off"){
  50.         digitalWrite(LED_BUILTIN, LOW);
  51.         digitalWrite(Relay_Pin, LOW);
  52.         // 反馈开关状态
  53.         Button1.print("off");
  54.         //Button1.text("关闭");
  55.         oState=0;
  56.     }
  57. }
  58. void heartbeat()  //心跳包
  59. {
  60.     if (oState== true) {
  61.       Button1.print("on");
  62.     }
  63.     else Button1.print("off");
  64. //    Button1.icon("fas fa-lightbulb");
  65. //    Button1.color("#fddb00");
  66. //    Button1.text("关闭","打开");
  67.     //Number1.print(WiFi.RSSI());  //信号强度

  68. }

  69. //天猫精灵
  70. void aligeniePowerState(const String & state)
  71. {
  72.     BLINKER_LOG("need set power state: ", state);

  73.     if (state == BLINKER_CMD_ON) {
  74.         digitalWrite(LED_BUILTIN, HIGH);
  75.         digitalWrite(Relay_Pin, HIGH);
  76.         BlinkerAliGenie.powerState("on");
复制代码



发表于 2022-4-13 13:45 | 显示全部楼层
把    Button1.print("off"); 放在 BlinkerAliGenie.print(); 之前
 楼主| 发表于 2022-4-13 13:49 | 显示全部楼层
本帖最后由 frankxu3698 于 2022-4-14 09:22 编辑
点灯官方 发表于 2022-4-13 13:45
把    Button1.print("off"); 放在 BlinkerAliGenie.print(); 之前

感谢大神指点,不过我之前的程序就是放在前面的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:35 , Processed in 0.270771 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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