Arduino Uno并不自帶藍牙模塊,需要額外購買藍牙模塊。一種常見的藍牙模塊是HC-05,出場設置中默認名稱為HC-05,密碼1234。網上有很多介紹通過藍牙AT指令集更改藍牙屬性的資料,可是都提到了AT接口,然而我購買的HC-05并沒有AT接口(見下圖),只有STATE, RX, TX, GND, +5V, EN這幾個接口。下面介紹如何開啟AT狀態(tài)并且更改設置。
藍牙模塊
連接方法
Arduino與藍牙模塊的基本連接方法是:+5V --> 5V, GND --> GND, 藍牙RX --> Arduino的TX, 藍牙TX --> Arduino的RX。一個可以正常工作的藍牙模塊連接方式如下圖:
連接方法
更改屬性
AT指令集
向HC-05發(fā)送AT指令,只需要在HC-05在AT狀態(tài)下通過波特率38400發(fā)送即可。常用的AT指令有:
AT --> 返回OK,表明在AT狀態(tài)
AT+NAME=<名稱> --> 更改藍牙名稱
AT+ADDR? --> 打印藍牙地址
AT+PSWD=<密碼> --> 設置配對密碼
編寫程序
下面的Arduino程序首先發(fā)送指令,然后接收指令執(zhí)行狀態(tài):
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狀態(tài)
HC-05開啟AT狀態(tài)的方法是:按住HC-05的復位鍵的同時,為藍牙模塊上電。
復位鍵
這是,如果發(fā)現(xiàn)狀態(tài)燈在緩慢閃爍,就可以認定已經打開了AT狀態(tài)。
打開監(jiān)視器,并將波特率調為38400,我們就可以看到相應的命令與返回結果。
監(jiān)視器
這樣,我們就將地址為98d3:36:9cdf的藍牙密碼改為0000,名字改為KailaideBluetooth:
藍牙搜索結果