谢丫丫

详解HC05模块与无线通信的蓝牙模块接口连接全过程!

0
阅读(1264) 评论(0)

蓝牙模块用于短距离和点对点的无线数据传输和接收。根据所用模块的版本,距离范围因模块而异。对于DIY项目这些可用作面包板友好模块。尽管这些模块(嗜好目的模块)不能访问制造商提供的实际模块中的所有引脚(例如: - GPIO引脚),但这些模块足够用于无线通信。在本文中,我们将详细了解蓝牙模块(HC 05蓝牙模块)以及如何通过USB将蓝牙模块连接到个人/台式计算机(PC)。

接口蓝牙模块HC-03和HC-05模块彼此相似,而HC-04 / HC-06模块与HC-05模块不同。区别在于选择模块操作的角色。HC-05模块可以在从属角色以及主角色中运行。用户可以发送适当的命令来选择操作的角色。

蓝牙模块接口

制造商将HC-06或HC-04模块的操作角色预设为出厂设置。他们在主角色或从属角色中操作。购买后,用户无法选择HC-04 / HC-06模块的操作角色。用户在购买前应验证模块配置(主机或从机)的操作模式。

HC-05蓝牙模块的引脚配置:

数据传输基于UART串行通信协议,通过3.3 V或5 V TTL电平的模块的UART引脚。通常,蓝牙模块包含引脚,即,

S.No.PIN名称描述
1。+ 5V或3.3V+ 5V电源或电源引脚。
2。TX要发送的数据/命令通过此引脚发送。
3。RX接收到的数据从该引脚读取。
4。KEY / EN输入引脚,它在数据模式和AT命令模式之间改变模块。
5。输出引脚,模块的状态通过此引脚指示。
6。地面0V / GND或电源引脚


使用HC-05蓝牙模块:

最初,要学习如何连接基于UART的模块,最好使用超级终端软件。通过将蓝牙模块连接到USB串行转换器,可以将数据发送到模块,并且可以通过软件读取模块接收到的数据。许多微控制器编程软件都包含超级终端功能。否则,有第三方超级终端软件。

使用超级终端软件:

为了启动与模块的通信,应该配置串行端口。USB串行转换器的物理端口号是从控制面板下的设备和打印机 获取的。在软件中,在设置菜单下,选择“ 端口配置 ”。

超级终端软件 - 串行端口

菜单 - 端口配置

 

在“端口配置”窗口中,选择USB串口转换器的端口,波特率为38400,其余参数默认情况下基本相同。点击连接按钮。成功连接到端口后,状态显示在软件的底部。

 

串口参数

 

每个'AT'命令应该以\ r \ n结尾。超级终端软件中有一个选项可将回车符'\ r'和换行'\ n'字符作为CR + LF发送。通过启用此选项,这些字符默认情况下在每个命令后发送。要发送的命令在命令框中输入。通过点击发送按钮,命令通过配置的端口发送。

附加CR + LF

 

AT命令模式:

当模块的Key引脚悬空或连接到GND且模块电源打开时,模块将根据上次使用过程中的设置进行操作。要知道操作的作用或设备的名称/地址以及其他一些细节,必须进入AT命令模式。

大多数模块都有一个名称为'EN'的按钮,代替KEY引脚。将钥匙/ EN引脚连接到+ Vcc并打开模块的电源。现在,按下键/ EN开关。这将以38400波特率进入模块进入AT命令模式。即使我们不知道以前的设置,也会使用此方法进入AT模式。发送命令时,需要在发送命令时按住按键开关。否则,所有的命令都不起作用。

要测试连接,请发送命令'AT'。在正常情况下应该收到'OK'。如前所述,每个命令都以字符CR和LF结尾。这些在命令中没有提及。

模块名称:

在大多数情况下,模块的默认名称是HC-05。该名称对于其他蓝牙设备可见。

可以使用该命令查询模块的名称,

命令响应
AT + NAME?+名称:HC-05


 

可以使用该命令更改模块的名称,

 

命令响应
AT + NAME = <所需姓名>

 

要验证名称,应该按照上一个案例进行查询。

查询模块的名称

 

模块地址:

就像连接到互联网的每个系统的IP地址一样,每个蓝牙模块都有一个地址。该地址由远程模块读取以进行配对。可以使用其地址获取远程蓝牙设备的名称。

可以使用该命令查询模块的地址,

命令响应
AT + ADDR?+ ADDR:1234:12:123456


 

蓝牙设备的地址以十六进制十进制格式显示,它有三个部分,格式如下:NAP:UAP:LAP

NAP = Ñ上显着 ddress P艺术(16位)

UAP = û PPER  ddress P技术(8位)

LAP = 大号奥尔 ddress P艺术(24位)

查询模块的地址

 

模块的密钥:

模块的默认密钥是'1234'。查询密钥的命令是,

命令响应
AT + PSWD?+ PSWD:1234


 

要设置/更改密码,命令是,

命令响应
AT + PSWD = <新的密钥>

 

查询模块的密码

 

 设置模块的角色:

如前所述,HC-05允许用户选择Role-Master / Slave。在任何一种模式下,无线数据传输都可以完成。如果模块表示为'A',被设置为主模块并且指定了模块'B'的绑定地址,则在正常的上电条件下,模块'A'建立与模块'B'的连接, 'B'被设置为接受与任何设备的连接。

使用该命令查询模块的当前角色,

命令响应
AT +角色?


 

+角色:0


 

要设置模块的角色,请使用以下命令,

命令响应
AT + ROLE = 0

 

0 =从属角色

1 =主角色

2 =从站循环(从主站收到的数据再次发送给主站)

定义操作的角色

 

远程模块的地址:

为了连接远程设备,需要知道远程设备的地址。为此,首先将模块设置为主角色并查询其范围内的远程设备的地址。使用以下一系列命令,

命令响应
AT + ROLE = 1
AT + INQ


 

+ INQ:EC01:EE:B59A5C,5A020C,FFB9


 

它的格式是,

+ INQ:远程设备地址设备类型RSSI信号强度

 RSSI = - [R eceived 小号 ignal 小号 trength  ndicator

(该参数的最后两位数字随模块和远程设备之间的距离而变化,实际上通过反复试验发现,精确的公式不得而知。ICfans

该命令将可用设备的地址显示为列表。该列表可以限制为使用该命令的所需设备数量,

AT + INQM = 1,2,3

1 =设备类别

2 =在识别出2个设备后停止搜索

3 =搜索3 * 1.48秒

查询远程模块的地址

 

远程模块的名称:

主模块可以使用其地址知道远程设备的名称,查询应该使用命令完成,

命令响应
AT + RNAME?远程设备的地址+ RNAME:HC-05


 

查询远程模块的名称

 

使用地址绑定功能:

 要默认建立与特定模块的连接,其地址可以被馈送到主模块,以便主模块始终与该模块连接。无论操作的作用如何,绑定都可以完成。该绑定使用以下命令完成,

命令响应
AT + BIND = 1234,56,123456

 

要查询模块是否与任何其他模块绑定,请使用以下命令获取与其绑定的模块的地址,

命令响应
AT + BIND?


 

+ BIND:1234:56:123456


 

绑定远程设备

 

模块的连接模式:

 假设我们需要在两个特定模块之间建立一对连接。然后,我们可以绑定每个模块中要配对的模块的地址。要将设备设置为与预定义地址的模块建立连接,请使用以下命令,

命令响应
AT + CMODE = 0

 

假设有一个蓝牙模块应该连接到其范围内的任何其他远程设备,例如,该模块应连接到智能手机。然后设置应该使模块可以连接到任何设备,使用命令,

命令响应
AT + CMODE = 1

 

还有另一种称为从属环路模式的模式,类似于角色2.要查询模块的当前模式,使用以下命令,

命令响应
AT + CMODE?


 

+ CMOD:0


 

定义操作模式

 

这些是常用的命令,足以建立两个蓝牙之间的无线数据通信。现在,让我们将两个模块配对并通过以下示例在它们之间传输数据。

动手举例 - 两个蓝牙模块的配对:

在这个例子中,我们需要两个蓝牙模块,一个USB串行转换器,USB延长线和连接线和面包板等配件。 

第1步:如图所示将蓝牙模块连接到USB串行转换器。运行超级终端软件并配置端口。

 

将蓝牙模块连接到USB串行转换器

 

第二步: - 分别配置蓝牙模块。

在这个例子中,我们必须将一个模块配置为'A'作为主模块,将另一个模块'B'配置为从模块。

从模块配置:

为模块供电。按下并释放钥匙开关进入AT命令模式。为了将此模块与主模块绑定,此模块的地址是必需的。所以,我们必须查询它的地址。

命令响应
AT + ORGL

 

这会将模块设置为默认参数。

CMODE = 0

ROLE = 0

PASS KEY = 1234

所以,模块现在被设置为以奴隶角色运行并连接到指定的模块。

通过查询模块的地址,我们可以在下一步将地址绑定到主模块。

命令响应
AT + ADDR?


 

+ ADDR:98d3:32:708b76


 

这是我的模块收到的地址。记下您的模块收到的地址。

命令响应
AT + CMODE = 1

将模块连接到任何设备。

从站模块的配置

 

主模块配置:

现在,将第二个模块准确地放置在第一个模块的位置。按下并释放钥匙开关进入AT命令模式。

将蓝牙模块连接到USB串行转换器

 

将模块设置为Master,

命令响应
AT + ROLE = 1

 

由于我们已经有了从站模块的地址,因此我们使用绑定命令将从站模块与主站模块绑定。

命令响应
AT + BIND = 98d3,32,708b76

 

现在,我们为模块提供了一个特定的地址。仅这一点不足以允许连接。指示模块连接指定的绑定地址。

命令响应
AT + CMODE = 0

 

主模块的配置

 

第三步:使用USB串口转换器连接模块,如下图所示,

 

将已配置的蓝牙模块连接到USB串行转换器

 

这种连接的方式是,我们将数据从主模块传输到从模块。从超级终端软件中,我们将数据发送到主模块,并从从模块接收数据。显然,两个数据都是相同的,即,发送的文本按照原样接收。但数据从主模块无线传输到从模块。
配置模块之间的无线通信


这样就可以将两个蓝牙模块连接起来进行无线通信。假设有两个微控制器通过UART通信进行通信,建立它们之间的无线传输,这些模块可以使用上述配置。没有必要使用KEY / EN引脚。配置完成后,它们可以保持打开。