跪求大佬 指点迷津 小爱不能控制blinker上面的设备-Arduino中文社区 - Powered by Discuz! Archiver

hanweiyang 发表于 2020-6-9 18:46

跪求大佬 指点迷津 小爱不能控制blinker上面的设备


为什么我的小爱 现在无法控制Blinker上面的设备了

以前小爱可以控制点灯科技上面的设备最近这段时间不行 用点灯科技的软件可以控制 但是就是不能用小爱控制了 ,小爱就只会说什么 已经操作了 看看设备状态吧 然后设备就是没有反应
blinker的设备库我也更新了 米家上也同步了 也显示有这些设备论坛也翻了很多遍 就是没有解决问题用的是es8266模块 代码也换了很多次 用别人的代码 自己抄的都一样怀疑是blinker库的问题 但更新了 还是老样子跪求哪位大佬指点迷津 感恩不尽

奈何col 发表于 2020-6-9 19:00

我这边使用最新的库测试是正常的。
调试方法:
https://www.arduino.cn/thread-84332-1-1.html

hanweiyang 发表于 2020-6-9 23:08

奈何col 发表于 2020-6-9 19:00
我这边使用最新的库测试是正常的。
调试方法:
https://www.arduino.cn/thread-84332-1-1.html


这是代码
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#define BLINKER_PRINT Serial
#define BLINKER_MIOT_OUTLET

#include <Blinker.h>

char auth[] = "cc7540970444";
char ssid[] = "你妈妈的WIFI";
char pswd[] = "qyh515515";

// 新建组件对象
BlinkerButton Button1("btn");
BlinkerNumber Number1("num-abc");

int counter = 1;
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
      digitalWrite(LED_BUILTIN, LOW);

      BlinkerMIOT.powerState("on");
      BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_OFF) {
      digitalWrite(LED_BUILTIN, HIGH);

      BlinkerMIOT.powerState("off");
      BlinkerMIOT.print();
    }
}

// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup() {
    // 初始化串口
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
      BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);   //默认端口状态
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
BlinkerMIOT.attachPowerState(miotPowerState);
}

void loop() {
    Blinker.run();
}

hanweiyang 发表于 2020-6-9 23:14

这是串口监视器 让小爱操作了好多次 上面没有任何增加的内容 小爱也一直回答 帮操作了 看看设备的状态,
23:09:16.310 -> MQTT Ping!
23:09:46.898 -> MQTT Ping!
23:10:17.466 -> MQTT Ping!
23:10:48.009 -> MQTT Ping!
23:11:18.577 -> MQTT Ping!
23:11:34.494 -> Connecting to MQTT...
23:11:35.654 -> MQTT Connected!
23:11:35.654 -> Freeheap: 10200
23:12:05.681 -> MQTT Ping!
23:12:36.246 -> MQTT Ping!
23:13:06.832 -> MQTT Ping!
23:13:37.424 -> MQTT Ping!
23:14:07.949 -> MQTT Ping!
23:14:38.561 -> MQTT Ping!

奈何col 发表于 2020-6-10 07:10

#define BLINKER_MIOT_LIGHT
#define BLINKER_MIOT_OUTLET

你定义了两种设备,只能是一种

hanweiyang 发表于 2020-6-10 09:46

奈何col 发表于 2020-6-10 07:10
#define BLINKER_MIOT_LIGHT
#define BLINKER_MIOT_OUTLET



后面那个定义 就是我一直试前面的定义 没反应 才加上的现在还有一个情况 就是用blinker的软件上面的语音 也控制不了设备 语音回答没有找到要控制的设备

奈何col 发表于 2020-6-10 10:14

hanweiyang 发表于 2020-6-10 09:46
后面那个定义 就是我一直试前面的定义 没反应 才加上的现在还有一个情况 就是用blinker的软件上面的语 ...

要先在对应按键组件中,设定对应的语音指令

hanweiyang 发表于 2020-6-10 13:51

奈何col 发表于 2020-6-10 10:14
要先在对应按键组件中,设定对应的语音指令

按键组件所对应的语音指令有啊回调函数也有
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
      digitalWrite(LED_BUILTIN, LOW);

      BlinkerMIOT.powerState("on");
      BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_OFF) {
      digitalWrite(LED_BUILTIN, HIGH);

      BlinkerMIOT.powerState("off");
      BlinkerMIOT.print();
    }
}

hanweiyang 发表于 2020-6-10 14:16

hanweiyang 发表于 2020-6-10 13:51
按键组件所对应的语音指令有啊回调函数也有
void miotPowerState(const String & state)
{


还找到一个问题
找到无效库在 C:\Users\Administrator\Documents\Arduino\libraries\packages: no headers files (.h) found in C:\Users\Administrator\Documents\Arduino\libraries\packages
找到无效库在 C:\Users\Administrator\Documents\Arduino\libraries\packages: no headers fil
每次烧录完程序可以上传成功 但都在最后显示这个

liuyb 发表于 2020-6-11 21:37

楼主解决了么?
页: [1] 2
查看完整版本: 跪求大佬 指点迷津 小爱不能控制blinker上面的设备