理论教育 基于物联网的STM32单片机蓝牙通信实践

基于物联网的STM32单片机蓝牙通信实践

时间:2023-11-09 理论教育 版权反馈
【摘要】:图8.6HC-05蓝牙通信模块原理HC-05蓝牙通信模块工作过程HC-05嵌入式蓝牙串口通信模块具有两种工作模式:命令响应工作模式和自动连接工作模式。按上述的方法一旦设置成功后,HC-05模块就可把从无线通信接

基于物联网的STM32单片机蓝牙通信实践

1.原理

蓝牙是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4~2.485GHz的ISM波段的UHF无线电波)。蓝牙可连接多个设备,克服了数据同步的难题。

蓝牙技术是世界著名的5家大公司——爱立信(Ericsson)、诺基亚(Nokia)、东芝(TOshiba)、国际商用机器公司(IBM)和英特尔(Intel),于1998年5月联合宣布的一种无线通信新技术。蓝牙设备是蓝牙技术应用的主要载体,常见蓝牙设备比如电脑手机等。蓝牙产品容纳蓝牙模块,支持蓝牙无线电连接与软件应用。蓝牙设备连接必须在一定范围内进行配对。这种配对搜索被称之为短程临时网络模式,也被称之为微微网,可以容纳设备最多不超过8台。蓝牙设备连接成功,主设备只有一台,从设备可以多台。蓝牙技术采用了TDMA结构与网络多层次结构,在技术上应用了跳频技术、无线技术等,具有传输效率高、安全性高等优势,所以被各行各业所应用。

2.典型蓝牙模块

本节着重以目前流行的蓝牙通信模块HC-05为例,讲述STM32单片机、HC-05模块为核心的感知节点实现蓝牙通信的功能。

(1)蓝牙通信模块HC-05简介

蓝牙通信模块HC-05是一款高性能的主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。该模块支持非常宽的波特率范围:4800~1382400。并且模块兼容5V或3.3V单片机系统,可以很方便与各种产品进行连接。模块外观与模块引脚说明如图8.5所示。

图8.5 HC-05模块外观与模块引脚说明图

模块自带了一个状态指示灯:LED。该灯有3种状态。

①在模块上电的同时(也可以是之前),将KEY设置为电平(接VCC),此时LED慢闪(1秒亮1次),模块进入AT状态,且此时波特率固定为38400。

②在模块上电的时候,将KEY悬空或接GND,此时TA快闪(1秒2次),表示模块进入可配对状态。如果此时将KEY再拉高,模块也会进入AT状态,但是LED依旧保持快闪。

③模块配对成功,此时LED双闪(一次闪2下,2秒闪一次)。

有了LED指示灯,我们就可以很方便地判断模块的当前状态,方便大家使用。

(2)HC-05蓝牙通信模块电气特性参数

接口特性:TTL,兼容3.3V/5V单片机系统,支持波特率为4800、9600、19200、38400、57600、115200、230400、460800、921600、1382400。

②其他特性:主从一体,指令切换,默认为从机。带状态指示灯,带配对状态输出。

③通信距离:10M(空旷地),一般会在10~20m无问题。

④工作温度:-25℃~75℃。

⑤模块尺寸:16mm×32mm。

⑥工作电压:DC3.3V~5.0V。

⑦工作电流:配对中,30~40mA;配对完毕未通信,1~8mA;通信中,5~20mA。

(3)HC-05蓝牙通信模块原理图

HC-05蓝牙通信模块原理图如图8.6所示。

图8.6 HC-05蓝牙通信模块原理(www.daowen.com)

(4)HC-05蓝牙通信模块工作过程

HC-05嵌入式蓝牙串口通信模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式。在自动连接工作模式下,模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接数据传输;当模块处于命令响应工作模式时,能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。

(5)模块使用-AT指令集

有2种方法使模块进入AT指令状态。

①上电之前将KEY设置为VCC,上电后,模块即进入AT指令状态。进入AT状态后,模块的波特率为:38400(8位数据位,1位停止位)。

②模块上电后,通过将KEY接VCC,使模块进入AT状态。进入AT状态后,模块波特率和通信波特率一致。

HC-05蓝牙串口模块所有功能都是通过AT指令集控制。在此,我们仅介绍用户常用的几个AT指令,详细的指令集请参考“HC-05蓝牙指令集.pdf”文档。

模块的指令结构为:

AT+<CMD>?查询参数格式

AT+<CMD>=<PARAM>设置参数格式

其中,CMD(指令)和PARAM(参数)都是可选的。不过,切记在发送末尾添加回车符(\r\n);否则,模块不响应。比如我们要查看模块的版本,则

①串口发送:AT+VERSION?\r\n。

②模块回应:+VERSION:2.0-20100601。

3.HC-05蓝牙通信模块的使用

使用HC-05蓝牙通信模块时首先确定工作角色,主动发起通信的为Master,被动响应通信的为Slave,在使用前首先配置HC-05蓝牙通信模块的一些参数,方法如下。

(1)将USB转串口的RXD与HC-05模块的TXD相连,TXD与HC-05模块的RXD相连,再将VCC、GND分别连接HC-05模块的VCC、GND,并将HC-05模块的1号引脚接VCC,上电。

(2)打开串行助手或超级终端等串口调试软件,选择好USB转串口的串口号,设置串口波特率为38400、无校验位,数据位为8、停止位为1,打开串口,准备发送AT指令。

(3)将HC-05模块的按键一直保持按下状态,在串行助手发送窗口上输入AT指令,对模块进行配置。

如:发送AT+ROLE=0\r\n,如接收OK,表示设置成功,工作角色为从角色(Slave);发送AT+ROLE=1\r\n,如接收OK,表示设置成功,工作角色为主角色(Master)。

一般需要设置的参数有模块角色(主或从角色)、连接模式(主角色一般选任意蓝牙地址、从角色可不设)、模块名称(自己定义)、配对密码(自己定义)、蓝牙模块串口参数设置,具体命令对应的AT指令可参考模块配套说明“HC-05蓝牙指令集.pdf”文档。

以上配置也可使用专门软件来实现,设置时可直接选择设置名称,软件就发送对应的AT指令,使用起来更方便。

按上述的方法一旦设置成功后,HC-05模块就可把从无线通信接收到的数据通过串口发送给STM32单片机,同样STM32单片机通过串口发送给HC-05模块的数据也通过无线方式发送出去,实现了透传功能。STM32单片机的蓝牙无线收发程序实际上就是STM32单片机的串口收发程序。

HC-05模块与STM32单片机连接如图8.7所示。

图8.7 HC-05模块与STM 32单片机连接图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈