模块介绍
HC-05是主从一体的蓝牙模块,默认为从机。既支持跟模块通信,也支持跟手机通信。具有两种工作模式:串口透传通信模式和AT指令模式。
- 在串口透传通信模式下模块又可分为主( Master)、从( Slave)和回环( Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接设备并进行数据传输。比如跟手机蓝牙连接,可通过手机APP给蓝牙模块发送数据。
- 当AT指令模式时能执行下述所有 AT 命令,用户可向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。关于AT指令下面再讲。
可通过模块KEY引脚输入高低电平,实现两种工作模式的转换。
AT指令
AT 指令不区分大小写,均以回车、换行字符结尾\r\n。
注意:发送AT指令设置蓝牙模块前,需将模块的KEY引脚切换成AT指令模式。当模块处于串口透传通信模式时,发送的AT指令只会当作一串字符串处理,并不会改变模块的设置。
进入AT指令状态的方法:
- 上电同时或上电之前将KEY设置为高电平,上电后,模块即进入AT指令状态
- 模块上电后,通过将KEY设置为高电平,使模块进入AT指令状态。
AT指令结构:
-
设置指令:AT+<CMD><=PARAM> 设置模块参数 AT + ROLE = 1或0 设置模块为主机或从机
AT + UART = 9600,0,0 设置通信波特率、停止位、校验位
-
查询指令:AT+<CMD>? 查询模块参数 AT + ROLE ? 返回模块角色状态
AT + VERSION ? 返回版本信息
传输数据
HC-05模块除了VCC和GND引脚之外,就是负责数据通信的TX引脚和RX引脚 ,这两个引脚就和串口通信的引脚是一个道理。数据的收发都是通过这两个引脚实现的。我使用的是正点原子战舰开发板,板上有HC-05蓝牙模块的对应插槽。其实就是通过插槽,把模块的TX和RX与USART3的RX和TX连接。这样开发板就可以借助串口3,来读取蓝牙模块的通信数据。 使用蓝牙模块时,必须像图中一样安好跳线帽,这样才能将USART3的收发端口与蓝牙模块的收发端口连接在一起。
通信波特率: 方法1进入AT指令状态,模块波特率为38400 方法2进入AT指令状态,模块波特率和通信波特率相同
代码
Gitee上自取:传送门
功能实现
在手机上找到一款很棒的串口调试APP,用手机APP连接蓝牙模块,可发送字符串控制开发板上的外设工作。 通过APP可以接收到开发板搭载的蓝牙模块发过来的温湿度、光强数据,还可以自定义按钮,发送特定的字符串,比如”LED ON“、”BEEP ON“来控制硬件设备的工作状态。
后面准备自己也用Android studio开发一个蓝牙串口APP,用到自己的物联网项目中去。
|