用两块HC-05模块DIY无线串口:低成本替代有线通信的完整方案

张开发
2026/4/6 5:28:45 15 分钟阅读

分享文章

用两块HC-05模块DIY无线串口:低成本替代有线通信的完整方案
用两块HC-05模块构建无线串口系统从配置到实战的全流程指南在物联网和嵌入式开发领域无线通信技术的应用越来越广泛。HC-05作为一款经典的主从一体蓝牙模块以其稳定的性能和亲民的价格成为许多开发者构建无线串口系统的首选。本文将带你从零开始通过两块HC-05模块搭建完整的无线通信系统涵盖硬件连接、AT指令配置、数据传输测试等全流程并提供实际项目中的优化技巧。1. HC-05模块基础与硬件准备HC-05是一款基于蓝牙2.0EDR协议的串口通信模块支持主从一体配置最大通信距离约10米视环境而定。模块采用3.3V-6V供电默认波特率9600可调整至1382400bps内置LED状态指示灯可通过AT指令灵活配置参数。核心硬件清单HC-05模块 ×2USB-TTL转换器 ×2如CH340、CP2102等Arduino开发板可选用于实际项目集成杜邦线若干引脚定义与连接方式HC-05引脚功能说明连接目标VCC电源正极USB-TTL的5V或3.3VGND电源负极USB-TTL的GNDTXD数据发送USB-TTL的RXDRXD数据接收USB-TTL的TXDKEYAT模式使能悬空或接高电平注意TXD与RXD需要交叉连接即HC-05的TXD接USB-TTL的RXDHC-05的RXD接USB-TTL的TXD。两个模块需独立供电不可共用USB-TTL。2. AT指令配置主从模式设置详解2.1 进入AT指令模式HC-05有两种进入AT模式的方法常规模式模块未配对时直接发送AT指令波特率为模块当前波特率默认9600强制模式按住模块按键上电LED慢闪约2秒一次此时波特率固定为38400推荐使用强制模式操作步骤如下按住HC-05模块上的按键不放连接USB-TTL给模块上电保持按键按住约2秒后松开观察LED变为慢闪状态即表示进入AT模式2.2 从机模块配置使用串口调试工具如XCOM、Putty等发送以下AT指令序列ATORGL # 恢复出厂设置 ATROLE0 # 设置为从机模式 ATCMODE1 # 任意地址连接模式 ATPSWD1234 # 设置配对密码为1234 ATUART38400,0,0 # 设置波特率38400无校验位 ATADDR? # 查询模块地址记录备用典型响应示例OK OK OK OK ADDR:2021:1:1139652.3 主机模块配置在另一个HC-05模块上执行注意替换从机地址ATORGL ATROLE1 # 设置为主机模式 ATCMODE0 # 指定地址连接模式 ATPSWD1234 # 密码需与从机一致 ATBIND2021,1,113965 # 绑定从机地址冒号改为逗号 ATUART38400,0,0关键点说明ATBIND参数需将从机地址中的冒号:替换为逗号,主从机波特率必须设置为相同值配对密码需完全一致区分大小写3. 无线串口通信实战测试3.1 基础通信测试将两个模块重新上电不按按键等待LED指示灯变为双闪模式连接成功打开两个串口调试工具分别连接两个USB-TTL互相发送数据验证通信常见问题排查连接超时检查主从机地址绑定是否正确数据乱码确认双方波特率设置一致无法通信检查TXD/RXD接线是否交叉3.2 Arduino集成示例将配置好的模块与Arduino连接实现无线传感器数据传输// Arduino端代码从机模式 #include SoftwareSerial.h SoftwareSerial BT(10, 11); // RX, TX void setup() { Serial.begin(9600); BT.begin(38400); // 需与HC-05波特率一致 } void loop() { if (BT.available()) { Serial.write(BT.read()); } if (Serial.available()) { BT.write(Serial.read()); } }接线方式Arduino 5V → HC-05 VCCArduino GND → HC-05 GNDArduino D10 → HC-05 TXDArduino D11 → HC-05 RXD4. 进阶技巧与性能优化4.1 电源噪声处理HC-05对电源噪声敏感建议添加100μF电解电容并联0.1μF陶瓷电容使用LDO稳压器如AMS1117-3.3V避免与电机等大电流设备共用电源4.2 数据包格式设计为提高通信可靠性建议采用帧结构帧头数据长度数据内容校验和帧尾0xAA1字节N字节1字节0x55示例校验和计算Arduinobyte checksum(byte *data, int len) { byte sum 0; for(int i0; ilen; i) { sum ^ data[i]; // 异或校验 } return sum; }4.3 与JDY-31模块对比特性HC-05JDY-31协议版本Bluetooth 2.0Bluetooth 4.2功耗约30mA约8mA最大速率1Mbps2Mbps主从支持主从一体从机模式典型距离10米20米价格中等较低选择建议需要主机功能或兼容旧设备 → HC-05低功耗或长距离需求 → JDY-315. 实际项目应用案例5.1 无线传感器网络将多个HC-05从机连接传感器如DHT11温湿度主机轮询采集数据# Python主机端示例 import serial from time import sleep devices { sensor1: 2021:1:113965, sensor2: 2022:2:204781 } ser serial.Serial(COM5, 38400, timeout1) def read_sensor(addr): ser.write(fATLINK{addr}\r\n.encode()) sleep(0.5) ser.write(bGETDATA\r\n) return ser.readline().decode().strip() while True: for name, addr in devices.items(): data read_sensor(addr) print(f{name}: {data}) sleep(10)5.2 无线调试接口替代USB线进行Arduino调试在IDE中设置蓝牙串口端口修改上传方式为Programmer通过无线监控串口输出性能实测数据38400bps平均延迟12ms连续传输稳定性8小时最大有效载荷256字节/包通过本文的详细指导你应该已经掌握了HC-05模块的核心配置技巧。在实际项目中建议先用USB-TTL测试稳定后再集成到最终系统同时注意天线摆放位置对信号强度的影响。遇到连接问题时首先检查AT参数配置和电源质量多数故障都能通过复位模块解决。

更多文章