蓝牙的配置以及蓝牙间的通信
目录
蓝牙间的配置以及蓝牙间的通信
HC-06的AT指令配置
HC-05的AT指令配置
HC-05与HC-06之间的通信
HC-06(从机):
HC-05(主机):
HC-05与HC-05之间的通信
HC-05(主机):
HC-05(从机):
本文主要讲的内容有:①蓝牙的AT指令配置,型号为HC-05,HC-06。②两蓝牙间的通信,HC-05和HC-06之间的通信,HC-05和HC-05之间的通信
准备工具:①两个USB转TTL(图一),新买的蓝牙可能会自带有跳线帽,可以拔掉,影响不大。这里的VCC和3V3都是默认输出3.3V,记住蓝牙上的VCC接口要接5V,蓝牙上的EN引脚要接3V3。注:如果要配置两个蓝牙模块相连接,需要用到两个USB转TTL。如果只是实现蓝牙的AT指令配置,一个USB转TTL就够了。
图1
②串口调试助手,这玩意蛮多的,这个不用安装,点开即用。之前学51单片机的资料包里有,学32的资料包里也有
③蓝牙模块 一个HC-05和一个 HC-06 或者两个HC-05
以上三样是我们需要准备的东西。电脑上的串口调试助手,在找商家要蓝牙资料的时候会有。
在介绍蓝牙间的通信前,我先讲讲怎么HC-05和 HC-06怎么进入AT指令,以及常见的AT指令集,会的可以跳过这个内容。
HC-06的AT指令配置
从机,有六针脚和四针脚的蓝牙,这两个差别不大,六针脚的和四针脚的其实只接四个引脚就可以,分别是VCC,GND,TXD,RXD,直接上电,设置波特率为9600,发送AT指令即可。
注:蓝牙上的VCC要接USB转TTL上的5V。蓝牙上的TXD接USB转TTL上的RXD, 蓝牙上的RXD接USB转TTL上的TXD,也就是说,信号线要反接,如果没有反接的话,则不能进行通信和AT指令的配置。
这是HC-06的AT指令集
AT+MANE6666 意思是将蓝牙的名字改为6666
AAT+PIN4444 意思是将蓝牙的配对密码改为4444
HC-06这个指令集在改名字的时候,不用加“=”,如果这样写AT+MANE=6666 那么蓝牙的名字将改为 =6666
但HC-05的AT指令需要加“=”,也就是说如果这样写AT+MANE=6666 那么蓝牙的名字将改为 6666
更多的AT指令请看蓝牙的手册,买蓝牙时可以问商家要资料。但是,HC-06的AT指令不多,上面的应该已经包含了全部了。
配置波特率时需要注意,不能直接写波特率是多少,要写数字代号,不同代号代表的波特率分别为:4:9600 5:19200 6:38400 7:57600 8:115200 9:128000
HC-05的AT指令配置
老版本的HC-05,将USB转TTL与蓝牙正确接线后,按住黑色按钮的同时给蓝牙上电,进入AT指令,设置波特率为38400(此波特率是默认的,用做和电脑的通信。退出AT指令后,蓝牙的默认波特率为9600,这个可以通过AT指令来查询),松开手就可以正常发送AT指令,但有时候老版的HC-05发送指令的时候蓝牙无法接收,此时可以试着边按蓝牙的按键边发送指令。
新版的HC-05,直接上电,设置波特率为9600,发送AT指令的时候按着按键。如果无法区分是新版本还是老版本,可以试着先按着按键的时候上电,在串口助手发送指令给蓝牙看蓝牙是否有回应,如果没有回应,试着边按蓝牙的按键边发送指令。
注:HC-05的接线注意事项,蓝牙上的VCC要接USB转TTL上的5V。蓝牙的EN引脚要接USB转TTL上的3.3V。蓝牙上的TXD接USB转TTL上的RXD, 蓝牙上的RXD接USB转TTL上的TXD,也就是说,信号线要反接,如果没有反接的话,则不能进行通信和AT指令的配置。蓝牙上的STARD引脚可不接。进入AT指令的标志:红灯一秒钟闪一下即进入了AT模式。
进入AT模式后,给蓝牙发送AT指令即可。常用的HC-05的AT指令有:
- 恢复出厂设置 AT+ORGL
- 获取模块蓝牙地址 AT+ADDR?
- 查询/设置设备名称 AT+NAME? AT+NAME=absds
- 查询/设置—模块角色 AT+ ROLE? AT+ ROLE=0 (0为从机,1为主机,2为回环)
- 查询/设置—配对码 AT+ PSWD? AT+ PSWD=4321
- 查询/设置—串口参数 AT+ UART? AT+ UART=115200,0,0 (第一个参数为蓝牙波特率,第二个参数为停止位,第三个参数为校验位,这里和HC-06有所不同需要注意)
- 查询/设置—连接模式 AT+ CMODE? AT+ CMODE=0 (0代表指定蓝牙地址连接模式,指定蓝牙地址由绑定指令绑定。 1 代表任意蓝牙地址连接模式,不受绑定指令设置地址的约束 )
- 查询/设置—绑定蓝牙地址 AT+ BIND? AT+ BIND=1234,56,abcdef (注意查询到的蓝牙地址为12位,格式一定要参考上面的,用英文的逗号隔开)
一般常用的AT指令就这些了,更多AT指令请查看手册:BLK-MD-HC-05_AT指令集。
(注意:问号为英文,打了中文问号会出错。AT 指令不区分大小写,均以回车、换行字符结尾:\r\n)
HC-05与HC-06之间的通信
HC-05的AT指令不同于HC-06的,这点特别需要注意。这也是配置两蓝牙连接时的难点。我们采用HC-05主从一体蓝牙模块作为主机,HC-06作为从机,至于怎么知道哪个可以作为主机,可以去某宝看下价格,一般来说,主从一体的蓝牙都会贵一点(20-30元不等),从机(10元以下)。
HC-06(从机):
(1)恢复出厂设置 AT+DEFAULT
(2)查询配对码 AT+PIN ,大多数情况下,配对码默认为1234,不修改也行,需要改的话,待会记得将另一个蓝牙的配对码也改成相同的就行。 假如我想把配对码改为6666,则需要发送指令AT+PIN6666 即可
(3)查询波特率 AT+BUAD,蓝牙会给你返回一个4,4对应的波特率是9600,大多数情况下,波特率默认为9600,不修改也行,需要改的话,待会记得将另一个蓝牙的波特率也改成相同的就行。 假如我想把波特率改为38400,则需要给AT+BUAD6 。(5对应波特率19200,6对应波特率38400,7对应波特率57600,8对应波特率115200,9对应波特率128000)
(4)关键的一步来了哈,查询蓝牙的地址 AT+LADDR ,之后蓝牙会返回一串夹杂着字母的数字,例如 35564B140232,这个是蓝牙的指定地址,不可以修改,这个东西需要复制一下,之后配置主机的时候要用到
HC-05(主机):
(1)恢复出厂设置 AT+ORGL
(2)查询配对码 AT+PSWD ,大多数情况下,配对码默认为1234,这个配对码需要和从机的一样。假如你想改的话,则需要给AT指令 AT+PSWD=6666 这样配对码就改成6666了,这个AT指令和HC-05的不同,多了一个等号 。你也可以这样给AT指令 AT+PSWD=”6666”,加了个双引号,不加也可以。
(3)查询波特率 AT+UART 蓝牙会给你返回一个9600,大多数情况下,波特率默认为9600,不修改也行,需要改的话,需要将蓝牙波特率改为和从机一样的波特率。 假如我想把波特率改为38400,则需要给AT+UART=38400 。
(4)查地址 AT+ADDR ,与HC-06通信时,这一步可以不做
(5)重要的来了,查主从模式,AT+ROLE ,返回0则蓝牙为从机, HC-05默认为从机(1对应的是主机,2对应回环角色(这个我也没用过,不懂具体有什用)) 。接下来要将蓝牙模式设为主模式,也就是作为主机,可以发送给信号给从机,实现两个蓝牙的通信。 给AT指令 AT+ROLE=1 即可,这样就将蓝牙修改为了主机。
(6)这一步也非常重要,绑定从机地址,首先要将蓝牙设定为指定蓝牙地址连接模式,这样你的蓝牙就只能和你的从机配对了,防止多设备的干扰,给AT指令 AT+CMODE=0 ,这样就将蓝牙设为了指定地址连接。接下来就是要让主机知道要连接哪个地址,给AT指令 AT+BIND=3556,4B,140232 即可。这里的从机地址我们已经获取过了,是35564B140232 。这里需要注意的是格式的问题,用逗号隔开写成3556,4B,140232 注意逗号的位置!
(7)接着,关闭蓝牙串口,将两个蓝牙都重新上电。注意:这是不用进入AT指令,也就是说HC-05上电的时候不需要按着按键。然后重新打开两个串口调试助手,随便发几个数据看从机能不能接收。
HC-05与HC-05之间的通信
HC-05的AT指令不同于HC-06的,这点特别需要注意。
HC-05(主机):
(1)恢复出厂设置 AT+ORGL
(2)查询配对码 AT+PSWD ,大多数情况下,配对码默认为1234,这个配对码需要和从机的一样。假如你想改的话,则需要给AT指令 AT+PSWD=6666 这样配对码就改成6666了,这个AT指令和HC-05的不同,多了一个等号 。你也可以这样给AT指令 AT+PSWD=”6666”,加了个双引号,不加也可以。
(3) 查询波特率 AT+UART 蓝牙会给你返回一个9600,大多数情况下,波特率默认9600,不修改也行,需要改的话,需要将蓝牙波特率改为和从机一样的波特率。 假如我想把波特率改为38400,则需要给AT+UART=115200,0,0 注意逗号为英文
(4)查地址 AT+ADDR ,与HC-05通信时,这一步必须干,因为HC-05从机也要绑定主机的地址。
(5)重要的来了,查主从模式,AT+ROLE ,返回0则蓝牙为从机, HC-05默认为从机(1对应的是主机,2对应回环角色(这个我也没用过,不懂具体有什用)) 。接下来要将蓝牙模式设为主模式,也就是作为主机,可以发送给信号给从机,实现两个蓝牙的通信。 给AT指令 AT+ROLE=1 即可,这样就将蓝牙修改为了主机。
(6)这一步也非常重要,绑定从机地址,首先要将蓝牙设定为指定蓝牙地址连接模式,这样你的蓝牙就只能和你的从机配对了,防止多设备的干扰,给AT指令 AT+CMODE=0 ,这样就将蓝牙设为了指定地址连接。接下来就是要让主机知道要连接哪个地址,给AT指令 AT+BIND=3556,4B,140232 即可。这里的从机地址我们已经获取过了,是35564B140232 。这里需要注意的是格式的问题,用逗号隔开写成3556,4B,140232 注意逗号的位置!
HC-05(从机):
(1)恢复出厂设置 AT+ORGL
(2)查询配对码 AT+PSWD ,大多数情况下,配对码默认为1234,这个配对码需要和从机的一样。假如你想改的话,则需要给AT指令 AT+PSWD=6666 这样配对码就改成6666了,这个AT指令和HC-05的不同,多了一个等号 。你也可以这样给AT指令 AT+PSWD=”6666”,加了个双引号,不加也可以。
(3) 查询波特率 AT+UART 蓝牙会给你返回一个9600,大多数情况下,波特率默认9600,不修改也行,需要改的话,需要将蓝牙波特率改为和从机一样的波特率。 假如我想把波特率改为38400,则需要给AT+UART=115200,0,0 注意逗号为英文
(4)查地址 AT+ADDR ,与HC-05通信时,这一步必须干,因为HC-05从机也要绑定主机的地址。
(5)重要的来了,查主从模式,AT+ROLE ,返回0则蓝牙为从机, HC-05默认为从机(1对应的是主机,2对应回环角色(这个我也没用过,不懂具体有什用)) 。接下来要将蓝牙模式设为从机模式,也就是作为从机,可以发送给信号给从机,实现两个蓝牙的通信。 给AT指令 AT+ROLE=0 即可,这样就将蓝牙修改为了从机。
(6)这一步也非常重要,绑定主机地址,首先要将蓝牙设定为指定蓝牙地址连接模式,这样你的蓝牙就只能和你的主机配对了,防止多设备的干扰,给AT指令 AT+CMODE=0 ,这样就将蓝牙设为了指定地址连接。接下来就是要绑定地址,给AT指令 AT+BIND=3556,4B,140232 即可。这里的主机地址我们已经获取过了,是35564B140232 。这里需要注意的是格式的问题,用逗号隔开写成3556,4B,140232 注意逗号的位置!(还有主机地址是你自己在串口助手查询的,和我给的不一样,不要照抄我的地址!)
接着,关闭蓝牙串口,将两个蓝牙都重新上电。注意:这是不用进入AT指令,也就是说HC-05上电的时候不需要按着按键。然后重新打开两个串口调试助手,一个串口调试助手连接主机,一个连接从机,用主机给从机随便发几个数据看从机能不能接收。
注意:连接成功的标志是蓝牙每秒闪一下,一下闪两次。
两蓝牙通信需要两个模块的波特率及格式相同(格式指的是停止位和校验位),密码相同,
一个为主机模式,一个为从机模式,且要互相绑定对方地址(HC-05和HC-06之间的通信只需要主机绑定从机即可)