设置蓝牙主从机上电自动配对的方法

有时候,我们希望蓝牙的主机在上电之后自动完成与从机的连接,而无需在每次上电后都发送一些AT指令来完成主从机的配对,该怎么做呢?
1、首先完成从机的设置:
AT+ROLE=0 //设置为从机
AT+PSWD=xxxx //xxxx是配对密码,根据需要设定
AT+UART=115200,0,0, //波特率115200,根据自己需要改变,一位停止位,无校验
AT+CMODE=1 //任意蓝牙地址配对模式
2、设置蓝牙主机:
AT+INIT //初始化SPP规范库(作用在下面会讲述)
AT+ROLE=1 //设置为主机
AT+PSWD=xxxx //与从机配对密码一致
AT+UART=115200,0,0, //与从机的设置必须一致
AT+CMODE=1 //同样设置为任意蓝牙地址配对模式
注:这里的配对过程与我们通常所认为的配对过程不同,平常我们在使用手机蓝牙时,如果要与其他蓝牙设备配对时,需要输入从机的密码,正确输入才能完成配对,于是我们很自然地认为这个过程是主机向从机发送一条连接指令,指令中的参数包含了从机的配对密码。而实际上,并没有任何一条AT指令具有这个功能,要实现主从机的配对,需要通信双方约定好一个共同的配对密码,并通过AT+PSWD来设置,这也解释了为什么连接从机时主机也要设置配对密码。
3、主机与从机进行配对:
①获取从机的模块地址,参考https://blog.youkuaiyun.com/weixin_44509533/article/details/109034456
②从机完成步骤1的配置后,重新给从机上电,使其进入等待配对的工作模式(而非AT指令工作模式)
③实际上,两个未经配对的蓝牙模块,即便有相同的配对密码,在上电后也不能自动完成配对。要让两个蓝牙模块进行配对,需要向主机发送如下配对指令
在这里插入图片描述
举例说明:
与从机:12:34:56: ab: cd:ef 配对,最大配对超时20秒
AT+PAIR =1234,56,abcdef,20\r\n
返回
OK
注意:如果返回ERROR(16)表示你没有执行AT+INIT指令,请返回第2步重新执行。
我们获得的蓝牙从机的物理地址一般是以NAP:UAP:LAP(十六进制)形式返回的。在使用AT指令时,要求以4位,2位,6位形式给出蓝牙地址,如果通过查询蓝牙地址的方式获得的蓝牙地址不满足上述格式,则应该用0补齐。例如,查询得蓝牙从机地址2019:5:83686,则使用该地址时应表示为2019,05,083687。

执行上面的指令后等待数秒一般就能完成配对了。此时蓝牙模块指示灯连续闪两下,熄灭,再连续闪两下,表示配对成功。
可以通过向主机发送AT+STATE?来验证是否配对成功
在这里插入图片描述
4、如果成功连接,那么两个蓝牙模块工作在正常模式(而非AT指令模式)下,上电后将自动完成配对。
5、如果希望建立唯一的配对,即蓝牙主机上电后只搜索特定的从机并与之连接时,则可以通过以下方法实现:
(1)AT+BIND=Param Param:从机蓝牙地址
举例说明:
在指定蓝牙地址连接模式下,绑定蓝牙设备地址:12:34:56: ab: cd:ef 命令及响应如下:
AT+BIND=1234,56,abcdef\r\n
返回OK
(2)AT+CMODE=0 //上电后自动搜索绑定的蓝牙从机

### HC-05蓝牙模块主从配对方法 #### 设置环境准备 为了实现HC-05蓝牙模块之间的主从通信,需准备好必要的硬件设备。具体来说,需要两个USB转TTL的串口调试器来连接蓝牙模块脑,以便通过串口工具发送AT指令进行配置[^3]。 #### 进入AT命令模式 当给HC-05供时,保持按下模块上的按键直到指示灯变为每秒闪烁一次,则表明已成功进入AT命令响应状态,在此状态下默认波特率为38400bps,并且仅有一个停止位而无奇偶校验。对于某些版本的HC-05而言,即使处于该模式也可能无法立即回应AT指令;遇到这种情况时,可以在每次发出指令的同时持续按压按键直至得到回复,或者将EN引脚拉至高平(通常为3.3V),从而简化操作流程[^4]。 #### 发送初始化命令 一旦确认能够正常接收来自HC-05的回答之后,就可以开始执行一系列初始化设定: 1. **恢复出厂设置**:向目标模块发送`AT+ORGL`以清除任何先前存在的自定义参数并返回初始状态; 2. **指定角色分配**:利用`AT+ROLE=0`(设为主机)/ `AT+ROLE=1`(设为从机) 来指明当前单元的角色身份; 3. **调整传输速率**:可通过`AT+UART=<baudrate>,<stopbits>,<parity>`改变工作中的串行接口速度及其他属性(注意这一步骤应在完成其他所有配置项后再实施); 4. **保存更改**:最后使用`AT&W`确保上述修改被永久存储下来。 以上过程适用于每一个参与组网的HC-05实例,即分别针对“主机”和“从机”的个体重复上述步骤。 #### 测试连通性 完成上述准备工作后,断开源重新启动双方装置。理想情况下,大约十秒钟过后,如果一切顺利的话,“主机”的LED应该转变为每隔五秒两次短促亮起的形式——这意味着它已经找到了匹配伙伴并且建立了稳定的数据链路。此时可以通过任意一端发起简单的字符流交换实验验证实际效果。 ```python import serial ser = serial.Serial('COM3', baudrate=9600, timeout=1) def send_command(command): ser.write((command + '\r\n').encode()) response = '' while True: char = ser.read().decode() if not char or char == '\n': break response += char return response.strip() print(send_command("AT")) # 应返回OK表示正常工作 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星水天河

如果内容帮助到你请给我打个赏吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值