ZBLOG

C:\Users\DELL\AppData\Local\Temp\.arduinoIDE-unsaved2025316-5240-qbfo7e.8h63\sketch_apr16a\sketch_apr16a.ino: In function 'void setup()': C:\Users\DELL\AppData\Local\Temp\.arduinoIDE-unsaved2025316-5240-qbfo7e.8h63\sketch_apr16a\sketch_apr16a.ino:...

根据您提供的错误信息,BlinkerESP32BLE 类似乎没有 attachOnConnected 方法。这可能是因为所使用的 Blinker 库版本不支持该方法。我们可以采取其他方法来检测连接状态。

以下是一个修改后的示例,不依赖于 attachOnConnected 方法,而是在 loop() 函数中检查设备是否连接:

#define BLINKER_PRINT Serial
#define BLINKER_BLE

#include <Blinker.h>

#define LED_BUILTIN 3

BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");

int counter = 0;

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

    pinMode(LED_BUILTIN, OUTPUT);
    
    // 初始化输出引脚为低电平
    digitalWrite(LED_BUILTIN, LOW);

    // 初始化 Blinker
    Blinker.begin();

    // 设置数据回调函数
    Blinker.attachData(dataRead);

    // 设置按钮回调函数
    Button1.attach(button1_callback);
}

void loop() {
   Blinker.run();

   // 检查连接状态,如果已连接则将 LED 引脚设置为高电平
   if (Blinker.connected()) {
       digitalWrite(LED_BUILTIN, HIGH); // 连接成功时将引脚设为高电平
   } else {
       digitalWrite(LED_BUILTIN, LOW);  // 未连接时保持引脚为低电平
   }
}

修改说明:

  1. loop() 中检查连接状态:使用 Blinker.connected() 来判断设备是否与服务器建立了连接。如果已连接,将 LED 引脚设置为高电平;否则,保持低电平。

这种方式可以确保你可以根据当前的连接状态来控制输出,而无需依赖未实现的方法。请确保你的库是最新版本,并查看文档以获取更多可用功能的信息。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22888

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?