1. 硬件准备与连接指南想要玩转NodeMcu-ESP8266和HC-06蓝牙模块的无线控制首先得把硬件准备齐全。我刚开始接触这个项目时最头疼的就是不知道该买哪些配件后来发现其实核心部件就三样NodeMcu开发板、HC-06蓝牙模块和几根杜邦线。不过为了调试方便建议再准备个面包板这样接线会轻松很多。关键硬件清单NodeMcu-ESP8266开发板这是整个系统的大脑价格便宜但功能强大自带WiFi模块不过我们这次主要用它的串口功能HC-06蓝牙从机模块市面上常见的蓝牙模块有HC-05和HC-06HC-06更便宜而且作为从机使用更简单特别适合新手面包板和杜邦线建议准备公对公和公对母两种接线会更灵活连接方法其实特别简单但有几个坑我踩过要提醒你。HC-06模块有四个引脚VCC、GND、TX和RX。连接时要注意VCC接NodeMcu的3.3V输出虽然HC-06标称电压是3.6-6V但实测3.3V也能稳定工作GND对GNDTX接NodeMcu的RXRX接NodeMcu的TX这个最容易接反记住TX永远对接RX这里有个重要提示烧录程序时一定要先断开HC-06模块因为NodeMcu的串口同时用于程序烧录和通信如果连接着蓝牙模块会导致上传失败。我刚开始不知道这个折腾了半天才发现问题。2. 开发环境搭建与代码解析环境搭建是项目成功的关键一步。我推荐使用Arduino IDE来开发因为它对ESP8266的支持已经很完善而且社区资源丰富。安装时需要先添加ESP8266开发板支持具体操作是在首选项的附加开发板管理器网址中添加http://arduino.esp8266.com/stable/package_esp8266com_index.json然后在开发板管理器中搜索安装。代码部分虽然不长但每个细节都很重要。下面这个示例是我在实际项目中优化过的版本比网上常见的更稳定#define LED_PIN D0 // 使用宏定义方便后期修改 void setup() { Serial.begin(9600); // 注意这里波特率要和HC-06匹配 pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); // 初始状态熄灭LED } void loop() { if(Serial.available()) { char command Serial.read(); switch(command) { case 1: digitalWrite(LED_PIN, LOW); Serial.println(LED ON); break; case 0: digitalWrite(LED_PIN, HIGH); Serial.println(LED OFF); break; default: Serial.print(Unknown command: ); Serial.println(command); } } }这段代码有几个优化点使用了宏定义LED引脚方便后期修改增加了默认情况处理避免收到错误指令时程序异常初始化时明确设置LED状态添加了串口反馈方便调试波特率设置是个容易出问题的地方。HC-06默认波特率通常是9600但有些版本可能是115200。如果连接不上可以尝试用AT命令修改波特率。修改方法是通过串口发送ATBAUD49600或ATBAUD8115200注意要换行结束。3. 手机APP配置与连接技巧硬件和代码都准备好后就该让手机登场了。市面上有很多蓝牙串口APP我测试过七八款发现Arduino Bluetooth Controller最稳定好用。安装后第一次使用需要配对设备HC-06的默认配对密码一般是1234。连接过程分三步打开手机蓝牙设置搜索并配对HC-06名称通常是HC-06或蓝牙模块的MAC地址打开蓝牙串口APP选择已配对的HC-06设备建立连接后就可以发送指令了在实际使用中我发现几个提升体验的小技巧指令设计除了简单的1和0可以设计更多指令模式。比如用A表示呼吸灯效果B表示闪烁三次反馈机制让NodeMcu收到指令后通过串口返回状态信息在APP中显示出来防丢包处理重要指令可以设计成多次发送或者在APP端加入确认机制如果遇到连接不稳定的情况可以尝试以下解决方案检查供电是否充足蓝牙模块对电压波动很敏感确保手机和模块距离在10米以内实际环境可能有衰减避开2.4G频段的其他设备干扰比如WiFi路由器、无线鼠标等4. 项目扩展与实用场景基础功能实现后这个项目其实可以玩出很多花样。去年我给朋友做的智能花盆就是用这个方案实现的手机远程监控。下面分享几个实用的扩展方向家居自动化应用智能灯光控制通过手机APP调节多个LED的亮度和颜色窗帘控制器配合步进电机实现远程开关窗帘环境监测接入温湿度传感器数据通过蓝牙传送到手机工业场景应用设备状态监控实时显示机器运行参数无线调试接口替代传统有线串口调试安全报警系统异常情况推送报警信息想进阶的话可以尝试这些改进协议优化用JSON格式传输结构化数据比如{cmd:light,value:75}OTA升级通过蓝牙实现固件无线更新低功耗模式让设备在闲置时进入睡眠状态多设备组网一个手机同时控制多个NodeMcu设备我最近做的一个项目是把HC-06换成了BLE模块功耗更低但开发难度稍大。对于刚入门的开发者HC-06仍然是性价比最高的选择。在实际部署时记得做好外壳防护特别是如果用在潮湿或多尘的环境中。