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...

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

  1. #include <Blinker.h>
  2. // 硬件配置
  3. #define BLINKER_BLE // 使用BLE蓝牙模式
  4. const int LED_PIN = GPIO_NUM_2; // LED控制引脚(根据实际硬件调整)
  5. const char* DEVICE_NAME = "MyBLE"; // 蓝牙设备显示名称
  6. // Blinker组件定义
  7. BlinkerButton btnLed("btn-led"); // 对应APP上的按钮组件
  8. // 回调函数:处理LED开关指令
  9. void ledControlCallback(const String &state)
  10. {
  11. if (state == BLINKER_CMD_ON) {
  12. digitalWrite(LED_PIN, HIGH);
  13. Blinker.print("LED_ON"); // 反馈状态到APP
  14. Serial.println("[INFO] LED turned ON");
  15. }
  16. else if (state == BLINKER_CMD_OFF) {
  17. digitalWrite(LED_PIN, LOW);
  18. Blinker.print("LED_OFF");
  19. Serial.println("[INFO] LED turned OFF");
  20. }
  21. }
  22. void setup()
  23. {
  24. // 初始化串口通信
  25. Serial.begin(115200);
  26. while (!Serial); // 等待串口就绪
  27. // 初始化硬件
  28. pinMode(LED_PIN, OUTPUT);
  29. digitalWrite(LED_PIN, LOW); // 默认关闭LED
  30. // 初始化Blinker
  31. if (!Blinker.begin(BLINKER_BLE, DEVICE_NAME)) {
  32. Serial.println("[ERROR] Blinker init failed!");
  33. while(1); // 初始化失败时阻塞
  34. }
  35. // APP界面配置(可选)
  36. Blinker.wInit("LED Controller", "switch");
  37. // 注册回调函数
  38. btnLed.attach(ledControlCallback);
  39. Serial.println("[INFO] System initialized");
  40. }
  41. void loop()
  42. {
  43. Blinker.run(); // 保持蓝牙连接和处理数据
  44. // 这里可以添加其他非阻塞任务
  45. }

主要改进点:

  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

注册

已经有帐号?