HM-10 蓝牙 4.0 BLE 模块全技术指南:引脚、AT 指令、Arduino/安卓互通实战
HM-10 基于 TI CC2540/CC2541 SoC,主打 Bluetooth Low Energy (BLE 4.0/4.2),以超低功耗(睡眠 50~200 μA)、UART 透传、AT 指令全配置、100 m 视距通讯,成为 Arduino/STM32/ESP32 物联网节点、可穿戴、医疗监测、智能家居的首选无线模块。本文涵盖引脚定义、电气规格、双模块透传、Arduino 硬件接线、AT 指令速查、安卓 BLE Scanner 调试、真伪辨别及常见坑位。
HM-10 引脚定义(34 Pin 贴片模组,仅 4 信号脚常用)
HM-10 引脚排布图
| 引脚 | 名称 | 功能 | 备注 |
|---|---|---|---|
| 1 | UART_TX | 串口发送(模块→MCU) | 3.3 V 电平 |
| 2 | UART_RX | 串口接收(MCU→模块) | 需电平转换(5V MCU 必接分压) |
| 3 | UART_CTS | 硬件流控 CTS | 悬空或接地 |
| 4 | UART_RTS | 硬件流控 RTS | 悬空或接地 |
| 5-10 | NC | 空脚 | |
| 11 | RESET | 低电平 ≥100 ms 复位 | 上拉 10 kΩ 至 VCC |
| 12 | VCC | 供电 2.0~3.6 V(典型 3.3 V) | 峰值电流 15 mA,需低纹波 LDO |
| 13-14 | GND | 地 | |
| 15 | USB_D- | USB 设备模式 D- | 罕用 |
| 16-19 | NC | 空脚 | |
| 20 | USB_D+ | USB 设备模式 D+ | 罕用 |
| 21-22 | GND | 地 | |
| 23 | PIO0 | 系统按键(配对/恢复出厂) | 低电平触发 |
| 24 | PIO1 | 系统指示灯 | 驱动 LED 指示连接状态 |
| 25-34 | PIO2~11 | 可编程 GPIO | AT+PIO 指令控制输入/输出/PWM/ADC |
两款常见版本:HM-10C(陶瓷天线、体积更小)、HM-10S(PCB 天线、兼容性更好)。引脚定义一致。
核心电气规格与特性
- 蓝牙版本:Bluetooth 4.0 / 4.2 (BLE);
- 工作频段:2.4 GHz ISM(2402~2480 MHz,40 信道);
- 发射功率:-23 ~ +6 dBm(AT+POWE 配置);
- 接收灵敏度:-93 dBm @ 1 Mbps;
- 空旷通讯距离:≤100 m(实测 30~60 m 穿墙);
- 睡眠电流:50~200 μA(广播间隔 1.28 s 时约 3 μA 平均);
- 工作电压:2.0~3.6 V(推荐 3.3 V);
- 工作温度:-40~+85 °C;
- UART 波特率:9600/19200/38400/57600/115200/230400/460800/921600,默认 9600,AT+BAUD 修改;
- 数据透传无字节限制(单包 ≤20 字节,协议栈自动分片重组);
- 12 路 GPIO、32 kHz 睡眠定时器、128/256 KB Flash、8 KB SRAM。
迷你体积 HM-10 模组
HC-08 对比参考
典型应用场景
- 短距无线透传(<100 m):传感器采集、遥控、固件 OTA;
- 移动端交互:手机 App 配置/监控/控制(iOS/Android 原生 BLE 支持);
- 低成本物联网节点:电池供电、周期唤醒上报、年级续航;
- UART 设备无线化:仪表、PLC、打印机、条码枪;
- 医疗/运动:血氧仪、心率带、智能鞋垫、体温贴;
- 电脑外设:无线键鼠、游戏手柄、呈现器。
血氧仪集成 BLE 模块
Arduino 硬件接线与电平转换(关键!)
HM-10 基板实物
5V MCU (Uno/Mega/Nano) 必须给 HM-10 RX 分压! HM-10 非 5V 容忍,直连会烧毁 RX。推荐分压电阻:1 kΩ (MCU TX→HM-10 RX) + 2 kΩ (HM-10 RX→GND),得 3.3 V 电平。HM-10 TX 直连 MCU RX 可读(3.3 V 逻辑高被 5V MCU 识为高)。
| HM-10 | Arduino Uno | 备注 |
|---|---|---|
| TX | D2 (SoftwareSerial RX) | |
| RX | D3 (SoftwareSerial TX) → 分压 → HM-10 RX | 1k/2k 分压 |
| GND | GND | 共地 |
| VCC | 3.3V | Uno 3.3V 引脚仅 50 mA,大电流场景外接 LDO |
HM-10 典型接线图
来源:YouTube geSEbu6mj2Q
AT 指令速查表(出厂默认 9600 8N1,无换行符)
| 指令 | 功能 | 示例响应 |
|---|---|---|
| AT | 连通性测试 | OK |
| AT+NAME? | 查询广播名 | OK+NAME:HMSoft |
| AT+NAME | 设置广播名 | OK+Set:<new> |
| AT+ADDR? | 查询 MAC 地址 | OK+ADDR:20C38FF61DA1 |
| AT+ROLE<0/1> | 设置角色:0=从机(默认),1=主机 | OK+Set:0 |
| AT+CON | 主机模式连接指定 MAC | OK+CONNA |
| AT+BAUD<0-7> | 设置波特率(0=9600...7=921600) | OK+Set:0 |
| AT+POWE<0-3> | 发射功率(0=-23dBm...3=+6dBm) | OK+Set:3 |
| AT+PIO | 控制 GPIO 输出高/低 | OK+PIO:21 |
| AT+RESET | 软复位 | OK+RESET |
| AT+VERR? | 查询固件版本 | OK+VERR:HMSoft V545 |
Arduino 示例代码:手机 App 控制板载 LED
#include <SoftwareSerial.h>
SoftwareSerial HM10(2, 3); // RX=D2, TX=D3
char appData;
String inData = "";
void setup() {
Serial.begin(9600);
Serial.println(F("HM10 serial started at 9600"));
HM10.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop() {
HM10.listen();
while (HM10.available() > 0) {
appData = HM10.read();
inData = String(appData);
Serial.write(appData);
}
if (Serial.available()) {
delay(10);
HM10.write(Serial.read());
}
if (inData == "F") { // 手机发 'F' 灭灯
Serial.println(F("LED OFF"));
digitalWrite(13, LOW);
delay(500);
}
if (inData == "N") { // 手机发 'N' 亮灯
Serial.println(F("LED ON"));
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}
安卓 BLE Scanner 调试流程
- 安装 “BLE Scanner”(com.macdom.ble.blescanner 或 nRF Connect);
- 授权蓝牙+位置权限(Android 6.0+ 必须);
- 扫描设备,识别 “MLT-BT05” 或 “HMSoft”;
- 配对码默认 123456789(部分固件无需配对);
- 连接后进入 “Custom Service”,找到可写特征(属性 Write/Notify);
- 写入 “1” 点亮 LED,写入 “0” 熄灭,验证透传链路。
App 权限授予页面
Arduino 与 HM-10 实物接线
真伪辨别与固件陷阱
- 正版标志:板载 32.768 kHz 晶振(贴片金属罐),丝印清晰,固件版本 HMSoft V5xx+;
- 山寨/克隆:无 32 kHz 晶振(用内部 RC),睡眠电流大、广播不稳、AT 指令集阉割、无法与 iOS 配对;
- 救砖方案:克隆模块需通过 UART 刷入官方固件(CC2540 烧录器 + BLE Stack),或直接更换正版模组(成本更低)。
HM-10 vs HC-05/HC-06 核心差异
| 维度 | HM-10 (BLE 4.0/4.2) | HC-05/06 (BT 2.0/2.1) |
|---|---|---|
| 协议栈 | BLE (GATT/ATT) | Classic BT (SPP) |
| 功耗 | μA 级睡眠,mA 级活动 | 持续 20~40 mA,无深度睡眠 |
| 连接建立 | <10 ms | ~1 s |
| iOS 支持 | 原生支持 | 需 MFi 认证/越狱 |
| 吞吐率 | ~20 kbps 实效 | ~100 kbps (SPP) |
| 适用场景 | 低功耗、间歇传输、手机直连 | 持续流、音频、旧设备兼容 |
HC-05 模块对比
常见问题 FAQ
- Q: 为什么 AT 指令无响应?
- A: 检查波特率(默认 9600)、TX/RX 是否交叉、分压电阻是否正确、模块是否上电、RESET 是否悬空拉高。
- Q: 两个 HM-10 无法自动连接?
- A: 一方设为主机 AT+ROLE1,另一为从机 AT+ROLE0,主机执行 AT+CON[从机MAC],需预先绑定 AT+BIND[MAC]。
- Q: 传输距离远低于 100 m?
- A: 2.4 GHz 易被墙体/金属/水阻挡,实测室内 10~20 m 正常。增大发射功率 AT+POWE3、优化天线朝向、避开 Wi-Fi 信道(Ch 1/6/11 对应 BLE Ch 0/12/39)。
- Q: 睡眠电流达不到 μA 级?
- A: 确认无 32 kHz 晶振(克隆件)、GPIO 未悬空、广播间隔设大(AT+ADVI)、进入睡眠模式 AT+SLEEP。
结语
HM-10 以 BLE 低功耗、UART 透传、AT 全配置、极低成本,成为物联网原型开发、教学实验、小批量产品的首选无线模块。掌握电平转换、AT 指令集、主从绑定、安卓/iOS 调试全链路,即可快速落地无线透传应用。进阶方向:多设备组网(Mesh/Star)、OTA 固件升级、配合 ESP32/STM32WB 实现网关聚合。技术支持、固件定制、批量采购,欢迎联系我们。
工业技术