本帖最后由 shenbo 于 2024-1-10 20:38 编辑
我理解这段代码是不是在一直广播开机指令,是否可以开机后如果能ping通,就给turned一个新的赋值,然后不再广播,否则delay(5000)回阻塞mqtt的回调函数吧;另外发布关机指令后,如果ping失败,重新赋值turned,这样可以发布MQTT确认成功关闭
void loop() {
int i = 1;
if (!client.connected()) {
reconnect();
}
else
{
if (Turned)
{
bleadv.begin();//初始化蓝牙名
uint8_t data[] = {0x46, 0x00, 0x46, 0x17, 0x03, 0xef, 0xb2, 0x24, 0x40, 0xff, 0xff, 0xff, 0x30, 0x43, 0x52, 0x4b, 0x54, 0x4d}; //蓝牙广播内容
bleadv.advertise(data, 18);
delay(5000);
}
else
{
bleadv.end();
}
}
client.loop();
}
|