蓝牙的配置以及蓝牙间的通信

目录

蓝牙间的配置以及蓝牙间的通信

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就够了。

蓝牙列表demo 蓝牙列表TY_嵌入式硬件

 图1

②串口调试助手,这玩意蛮多的,这个不用安装,点开即用。之前学51单片机的资料包里有,学32的资料包里也有

蓝牙列表demo 蓝牙列表TY_串口_02

③蓝牙模块  一个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指令集

蓝牙列表demo 蓝牙列表TY_串口调试_03

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指令有:

  1. 恢复出厂设置  AT+ORGL
  2. 获取模块蓝牙地址  AT+ADDR?
  3. 查询/设置设备名称  AT+NAME?   AT+NAME=absds
  4. 查询/设置—模块角色 AT+ ROLE?  AT+ ROLE=0 (0为从机,1为主机,2为回环)
  5. 查询/设置—配对码   AT+ PSWD?   AT+ PSWD=4321
  6. 查询/设置—串口参数  AT+ UART?  AT+ UART=115200,0,0  (第一个参数为蓝牙波特率,第二个参数为停止位,第三个参数为校验位,这里和HC-06有所不同需要注意)
  7. 查询/设置—连接模式  AT+ CMODE?  AT+ CMODE=0  (0代表指定蓝牙地址连接模式,指定蓝牙地址由绑定指令绑定。  1 代表任意蓝牙地址连接模式,不受绑定指令设置地址的约束  )
  8. 查询/设置—绑定蓝牙地址  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之间的通信只需要主机绑定从机即可)