ZBLOG

#include // 配置蓝牙设备名称(自定义) #define BLINKER_BLE // LED引脚定义(根据实际接线修改) const int ledPin = GPIO_NUM_2; // Blinker组件绑定 BlinkerButton Button1("btn-led"); // App上的按键ID // App按键回调函数 void button1_callback(const String &state) { if (stat...

以下是优化后的代码,增加了注释、错误处理和更规范的代码结构:

#include <Blinker.h>

// 硬件配置
#define BLINKER_BLE                   // 使用BLE蓝牙模式
const int LED_PIN = GPIO_NUM_2;       // LED控制引脚(根据实际硬件调整)
const char* DEVICE_NAME = "MyBLE";    // 蓝牙设备显示名称

// Blinker组件定义
BlinkerButton btnLed("btn-led");      // 对应APP上的按钮组件

// 回调函数:处理LED开关指令
void ledControlCallback(const String &state) 
{
    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_PIN, HIGH);
        Blinker.print("LED_ON");      // 反馈状态到APP
        Serial.println("[INFO] LED turned ON");
    } 
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_PIN, LOW);
        Blinker.print("LED_OFF");
        Serial.println("[INFO] LED turned OFF");
    }
}

void setup() 
{
    // 初始化串口通信
    Serial.begin(115200);
    while (!Serial);                  // 等待串口就绪
    
    // 初始化硬件
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, LOW);       // 默认关闭LED
    
    // 初始化Blinker
    if (!Blinker.begin(BLINKER_BLE, DEVICE_NAME)) {
        Serial.println("[ERROR] Blinker init failed!");
        while(1);                     // 初始化失败时阻塞
    }
    
    // APP界面配置(可选)
    Blinker.wInit("LED Controller", "switch");  
    
    // 注册回调函数
    btnLed.attach(ledControlCallback);
    
    Serial.println("[INFO] System initialized");
}

void loop() 
{
    Blinker.run();                    // 保持蓝牙连接和处理数据
    
    // 这里可以添加其他非阻塞任务
}

主要改进点:

  1. 命名规范:使用全大写表示常量(如LED_PIN
  2. 错误处理:增加蓝牙初始化的失败检测
  3. 调试信息:通过串口输出更多状态信息方便调试
  4. 代码结构
    • 分离硬件配置和逻辑代码
    • 更清晰的注释分段
  5. 可扩展性:在loop()中预留了添加其他任务的接口

注意:

  • DEVICE_NAME需要替换为你想要的蓝牙设备名称(不超过16个字符)
  • GPIO_NUM_2是ESP32的引脚定义,其他平台需相应调整


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?