小度app不能连接<已解决>
本帖最后由 onwebbe 于 2022-1-25 21:03 编辑用的是点灯2.7.1,已经没有阿里broker了。所以就加了Arduino设备。
点灯app没有问题可以使用,但是在小度4.8.0里面添加了blinker,也能正确搜到设备,但是在小度里面无论如何操作,都提示无法控制。
看了模块的log啥消息都没有收到。
改成用小爱的,就完全没有问题。
有大佬碰到过么?
app截图
代码如下
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_WITHOUT_SSL
#define LED_BUILTIN 4
#define BLINKER_DUEROS_LIGHT
#include <Blinker.h>
char auth[] = "xxx";
char ssid[] = "yyy";
char pswd[] = "zzz";
// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
int counter = 0;
int isLightOn = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
isLightOn = !isLightOn;
digitalWrite(LED_BUILTIN, isLightOn);
BLINKER_LOG("Light is:", isLightOn == true ? "ON":"OFF");
if (isLightOn) {
Button1.text("已开灯");
Button1.color("Green");
Button1.print();
} else {
Button1.text("已关灯");
Button1.color("DarkRed");
Button1.print();
}
}
// 如果未绑定的组件被触发,则会执行其中内容
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);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
#endif
// 初始化有LED的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
Button1.text("已关灯");
Button1.color("DarkRed");
Button1.print();
BlinkerDuerOS.attachPowerState(duerPowerState);
BlinkerDuerOS.attachQuery(duerQuery);
}
void loop() {
Blinker.run();
}
void duerQuery(int32_t queryCode)
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("DUER Query All");
BlinkerDuerOS.powerState(isLightOn ? "on" : "off");
BlinkerDuerOS.print();
break;
case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
BLINKER_LOG("DUER Query Power State");
BlinkerDuerOS.powerState(isLightOn ? "on" : "off");
BlinkerDuerOS.print();
break;
default :
BlinkerDuerOS.powerState(isLightOn ? "on" : "off");
BlinkerDuerOS.print();
break;
}
}
void duerPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
digitalWrite(LED_BUILTIN, HIGH);
BlinkerDuerOS.powerState("on");
BlinkerDuerOS.print();
BLINKER_LOG("Light is: ON");
isLightOn = 1;
}
else if (state == BLINKER_CMD_OFF) {
digitalWrite(LED_BUILTIN, LOW);
BlinkerDuerOS.powerState("off");
BlinkerDuerOS.print();
BLINKER_LOG("Light is: OFF");
isLightOn = 0;
}
if (isLightOn) {
Button1.text("已开灯");
Button1.color("Green");
Button1.print();
} else {
Button1.text("已关灯");
Button1.color("DarkRed");
Button1.print();
}
}
已解决。
好像不管小度还是小爱。第一次添加blinker之后都需要1天buffer来做sync。第二天自动好了。
页:
[1]