要在代码中添加连接状态检测,并在连接成功后将输出引脚设置为高电平,你可以使用 Blinker 提供的 onConnected
回调函数。以下是如何实现这一点的示例:
#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 onConnected() {
BLINKER_LOG("Connected to Blinker!");
digitalWrite(LED_BUILTIN, HIGH); // 连接成功时将引脚设为高电平
}
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);
// 设置连接成功回调函数
Blinker.attachOnConnected(onConnected);
}
void loop() {
Blinker.run();
}
修改说明:
- 添加
onConnected()
函数:这个函数会在设备成功连接到 Blinker 后被调用,内部将 LED 引脚设置为高电平。 - 注册连接回调:在
setup()
函数中,通过Blinker.attachOnConnected(onConnected);
将onConnected()
函数与连接事件关联。
这样,当你的设备与 Blinkers 服务建立了成功的连接时,LED 引脚就会被设置为高电平,可以用来指示当前的连接状态。
内容由零声教学AI助手提供,问题来源于学员提问