【通信模块】蓝牙模块
本文介绍了蓝牙模块的基本概念、分类对比及配置方法。蓝牙模块作为无线通信组件,可实现设备间的短距离数据交换。文章对比了经典蓝牙、低功耗蓝牙和双模蓝牙的特性差异,重点讲解了通过AT指令配置HC-05蓝牙模块的具体步骤,包括进入AT模式、常用指令集和使用示例。此外,还说明了两个蓝牙模块互连通信的设置方法,以及当AT指令无响应时的检查步骤。内容涵盖了蓝牙模块从基础认知到实际应用的关键知识。
目录
一、什么是蓝牙模块
蓝牙模块是一个集成了蓝牙通信功能的电子组件。它核心的功能是将设备“无线化”,让设备能够在不使用线缆的情况下,在短距离内与其他蓝牙设备进行数据交换。
可以把它想象成一个 “无线串口” 。在传统开发中,两个设备通过串口(TX/RX)引脚用导线连接传输数据;而使用了蓝牙模块后,设备通过串口与蓝牙模块连接,数据则通过蓝牙无线信号发送和接收,从而实现了“剪断电线”的效果。
如下图所示:蓝牙模块一端使用串口连接设备,通过另一端的射频电路将数据发送出去,由此实现了无线通信的功能

一个典型的蓝牙模块通常包含:
-
蓝牙芯片:核心处理单元,负责蓝牙协议的运行和信号处理。
-
射频电路:用于发送和接收无线信号。
-
晶振:提供时钟信号。
-
天线:可以是板载PCB天线、陶瓷天线或外接天线。
-
接口电路:如UART、USB、I2C等,用于与主控制器(如单片机、Arduino、树莓派)连接。
二、不同蓝牙模块的对比
经典蓝牙和低功耗蓝牙之间不兼容,不能进行通信
| 特性维度 | 经典蓝牙 | 低功耗蓝牙 | 双模蓝牙 |
|---|---|---|---|
| 核心定位 | 持续、高速数据流 | 间歇、小数据块 | 全能兼容 |
| 技术代表 | BR/EDR(基本速率/增强数据速率) | BLE(Bluetooth Low Energy) | 同时包含 BR/EDR 和 BLE 协议栈 |
| 主要协议版本 | 蓝牙 2.0/2.1/3.0 | 蓝牙 4.0/4.2/5.0/5.1/5.2/5.3+ | 蓝牙 4.0 及以后的版本通常都支持 |
| 功耗水平 | 高 | 极低(仅为经典的1%至50%) | 灵活可变 • 使用经典功能时功耗高 • 使用BLE功能时功耗低 |
| 峰值电流 | 约 30 mA | 约 15 mA(运行时) 低至 微安(μA) 级别(休眠时) |
取决于当前使用的模式 |
| 数据速率 | 高 (~2.1 Mbps) | 较低 • 蓝牙4.2: ~0.27 Mbps • 蓝牙5.0: ~2 Mbps |
支持两种速率,根据模式切换 |
| 通信范围 | 标准:约10米 (功率增加可延长) |
更远(尤其在蓝牙5.0+) • 理论可达数百米 |
支持两种范围,根据模式切换 |
| 连接速度 | 慢(通常需要数秒) | 非常快(仅需几毫秒) | 使用哪种模式,即具备哪种速度 |
| 拓扑结构 | 点对点,微微网 | 点对点、广播(一对多)、Mesh网络 | 支持所有拓扑结构 |
| 关键协议/配置文件 | • HFP(免提) • A2DP(音频流) • SPP(串口) |
• GATT(属性协议) • 自定义配置文件 |
支持经典和BLE的所有协议 |
| 典型应用场景 | • 蓝牙音箱/耳机 • 车载免提系统 • 文件传输 |
• 物联网传感器 • 智能手环/手表 • 智能家居设备 • Beacon(室内定位) |
• 智能手机/平板 • 电脑 • 智能电视 • 高级车载系统 (作为中心枢纽) |
| 互操作性 | 无法与BLE设备直接通信 | 无法与经典设备直接通信 | 可以作为桥梁,同时与经典和BLE设备通信 |
| 常见模块型号 | HC-05, HC-06 | HC-08, JDY-08, nRF51822 | 大多数手机/电脑的蓝牙芯片,如CSR861 |
三、使用AT指令对蓝牙模块进行配置
1.介绍AT指令
AT指令,也叫做注意力指令,是一种基于文本的、用于控制调制解调器或其他通信设备的命令行协议。
起源:它最初是在1980年代由贺氏公司 为其调制解调器发明的。由于贺氏早期的市场领导地位,这套指令集成为了事实上的行业标准,并被几乎所有后续的调制解调器制造商所采纳和扩展。
语法特征:每条指令通常以前缀 "AT" 或 "at" 开头,后跟具体的命令和参数。这个"AT"就是"Attention"的缩写,意思是告诉设备:“注意,后面是你要执行的命令!”
交互方式:用户通过一个串行接口(如UART)向设备发送AT指令字符串,设备执行后,会返回一个文本结果(如
OK,ERROR,或具体的数据)作为响应。
AT指令模式将复杂的系统分成了两个部分:
主控制器:例如Arduino、STM32单片机、树莓派,或者你的电脑。它负责运行主应用程序逻辑。
通信模块:例如ESP32(Wi-Fi/BT)、蓝牙HC-05、4G Cat.1模块。它专门负责处理复杂的无线通信协议栈。
通过AT指令,主控制器不需要懂得复杂的Wi-Fi或蓝牙协议细节。 它只需要通过简单的串口发送像
AT+CWJAP="ssid","password"(连接Wi-Fi)这样的明文命令,就能控制专家模块去完成高难度任务。这就好比:
你不需要成为发动机专家才能开车。你只需要操作方向盘、油门和刹车(类似于发送AT指令)就能控制整个复杂的汽车系统(通信模块)。
2.AT指令示例
基本格式示例:
AT+<Command>[=<Parameter>]\r\n
AT: 前缀,唤起设备的注意。
+<Command>: 具体的命令,例如+VERSION用于查询版本。
=<Parameter>: 可选的参数,用于设置命令。
\r\n: 回车换行,代表指令的结束。实际操作例子:修改蓝牙模块的名字为MyBluetooth
发送指令:通过串口向蓝牙模块发送:
AT+NAME=MyBluetooth\r\n模块响应:蓝牙模块收到后,将其名称设置为"MyBluetooth",然后返回:
OK\r\n查询指令:再发送:
AT+NAME?\r\n模块响应:蓝牙模块返回:
+NAME:MySpeaker\r\n
3.HC-05蓝牙模块常用指令集


1)核心前提:进入AT模式
在对HC-05进行任何AT指令配置之前,必须确保模块正确进入了AT命令响应模式。方法如下:
-
接线方式:
-
将模块的 VCC 接 3.3V/5V,GND 接 GND。
-
将模块的 TXD 接USB转TTL模块的 RXD。
-
将模块的 RXD 接USB转TTL模块的 TXD。
-
-
上电前准备:
-
先不要给模块通电。按住模块上的小按钮(如果有的话)不松开,然后再给模块通电。此时,模块上的LED指示灯会变为慢闪(大约每2秒闪烁一次),这表示已成功进入AT模式。
-
或者:将模块的 KEY 引脚 (有时叫EN引脚)连接到 高电平(通常是3.3V)。
-
-
通信设置:
-
打开电脑的串口调试助手
-
选择正确的串口号。
-
设置波特率为 38400或9600
-
数据位8,停止位1,无校验位。
-
完成以上步骤后就可以在串口调试助手中发送指令了。
2)常用指令集
| 指令 | 功能描述 | 语法示例与响应 |
|---|---|---|
| 测试连接 | 检查模块是否处于AT模式并通信正常。 | 发送: AT响应: OK |
| 复位模块 | 让模块软复位,会退出AT模式。 | 发送: AT+RESET响应: OK |
| 恢复出厂设置 | 清除所有自定义设置,恢复为默认值。 | 发送: AT+ORGL响应: OK |
| 查询版本 | 获取模块的软件版本信息。 | 发送: AT+VERSION?响应: +VERSION:<version> OK |
| 查询地址 | 获取模块自身的蓝牙MAC地址。 |
发送: |
| 查询/设置名称 | 查询或设置设备的蓝牙名称。 | 查询: AT+NAME?响应: +NAME:<name>OK设置: AT+NAME=name响应: OK |
| 查询/设置波特率 | 查询或设置设备的串口通信波特率。 | 查询: AT+UART?响应: +UART:<baud>,<stop>,<parity>设置: AT+UART=115200,0,0(115200波特率,1停止位,无校验) 响应: OK |
| 查询/设置配对码 | 查询或设置设备的配对密码(默认1234)。 | 查询: AT+PSWD?响应: +PSWD:<password>OK设置: AT+PSWD=6789响应: OK |
| 查询/设置角色 | 非常关键! 设置模块为主机或从机。 |
查询:
响应: |
| 查询/设置连接模式 | 查询或设置设备的连接模式(默认0)。 |
查询:
响应: |
| 查询/设置-绑定蓝牙地址 |
查询或设置设备绑定的蓝牙地址 (默认绑定的蓝牙地址:00:00:00:00:00:00) |
查询: AT+BIND?响应: +BIND:<address>OK设置: AT+BIND=1234,12,123456响应: OK |
四、使用两个蓝牙模块互相通信
AT指令配置过程:
- 使用设置角色指令(
AT+ROLE=1/0)将一个蓝牙模块设为主设备,另一个蓝牙模块设为从设备 - 使用设置连接模式指令(
AT+CMODE=0)将两个蓝牙模块都设置为指定地址连接 - 使用查询地址指令(
AT+ADDR?)获取两个蓝牙设备的地址 - 使用设置绑定蓝牙地址指令(
AT+BIND=xxxx,xx,xxxxxx)将两个蓝牙模块的地址相互绑定 - 使用设置波特率指令(
AT+UART=9600,0,0)将两个蓝牙设备的波特率设为同样的值
五、补充:发送AT指令后蓝牙模块未回复的检查方法
- 检查串口线是否连接正确,RXD<——>TXD,串口模块和蓝牙模块是否共地
- 检查供电,换用5V给蓝牙模块供电
- 检查串口号,尝试更换波特率(部分蓝牙模块(如HC-05/HC-06)在进入AT指令模式时,可能会使用固定的特殊波特率(如38400))
- 发送AT指令时按住蓝牙模块的按钮
更多推荐



所有评论(0)