Arduino Uno并不自带蓝牙模块,需要额外购买蓝牙模块。一种常见的蓝牙模块是HC-05,出场设置中默认名称为HC-05,密码1234。网上有很多介绍通过蓝牙AT指令集更改蓝牙属性的资料,可是都提到了AT接口,然而我购买的HC-05并没有AT接口(见下图),只有STATE, RX, TX, GND, +5V, EN这几个接口。下面介绍如何开启AT状态并且更改设置。
连接方法
Arduino与蓝牙模块的基本连接方法是:+5V --> 5V, GND --> GND, 蓝牙RX --> Arduino的TX, 蓝牙TX --> Arduino的RX。一个可以正常工作的蓝牙模块连接方式如下图:
更改属性
AT指令集
向HC-05发送AT指令,只需要在HC-05在AT状态下通过波特率38400发送即可。常用的AT指令有:
AT --> 返回OK,表明在AT状态
AT+NAME=<名称> --> 更改蓝牙名称
AT+ADDR? --> 打印蓝牙地址
AT+PSWD=<密码> --> 设置配对密码
编写程序
下面的Arduino程序首先发送指令,然后接收指令执行状态:
void setup() {
// put your setup code here, to run once:
Serial.begin(38400);
}
void sendcmd()
{
Serial.println("AT");
while(Serial.available())
{
char ch;
ch = Serial.read();
Serial.print(ch);
} // Get response: OK
delay(1000); // wait for printing
Serial.println("AT+NAME=KailaideBluetooth");
while(Serial.available())
{
char ch;
ch = Serial.read();
Serial.print(ch);
}
delay(1000);
Serial.println("AT+ADDR?");
while(Serial.available())
{
char ch;
ch = Serial.read();
Serial.print(ch);
}
delay(1000);
Serial.println("AT+PSWD=0000");
while(Serial.available())
{
char ch;
ch = Serial.read();
Serial.print(ch);
}
delay(1000);
}
void loop() {
sendcmd();
}
烧录程序
这里需要注意的是,在烧制程序的时候,需要断开蓝牙模块与主板的连接。
开启AT状态
HC-05开启AT状态的方法是:按住HC-05的复位键的同时,为蓝牙模块上电。
这是,如果发现状态灯在缓慢闪烁,就可以认定已经打开了AT状态。
打开监视器,并将波特率调为38400,我们就可以看到相应的命令与返回结果。
这样,我们就将地址为98d3:36:9cdf的蓝牙密码改为0000,名字改为KailaideBluetooth: