Arduino使用HC05藍牙模塊與手機連接

海椰人 發佈 2022-07-29T06:58:14.365858+00:00

通過本文,可以了解到以下內容:進入 AT 模式進行藍牙基本參數設置Arduino 藍牙控制 LED 電路設計以及代碼編寫利用 Andorid 藍牙串口調試軟體測試功能進入 At 模式進行藍牙基本參數設置想要使用 Arduino 的藍牙模塊,首先要對藍牙模塊進行基本參數設置。

通過本文,可以了解到以下內容:

  • 進入 AT 模式進行藍牙基本參數設置
  • Arduino 藍牙控制 LED 電路設計以及代碼編寫
  • 利用 Andorid 藍牙串口調試軟體測試功能


進入 At 模式進行藍牙基本參數設置

想要使用 Arduino 的藍牙模塊,首先要對藍牙模塊進行基本參數設置。基本參數設置主要包含:藍牙名稱、模式以及匹配密碼等。設置藍牙模塊可以使用 USB-TTL 連接電腦使用串口調試軟體進入 AT 模式進行設置,也可以使用 Arduino 連接藍牙模塊進行設置,本文主要介紹後一種方法。

注意事項

在連接藍牙的時候,要注意線的連接是否正確,檢查清楚再進行通電,除此之外,還要主要不要讓針腳短路,我在首次使用藍牙模塊的時候,因為沒注意接線,導致一個藍牙模塊損壞了,只能發信息不能收信息,所以為了避免不必要的損失,這裡要注意。

Arduino HC05 AT模式接線

進入 AT 模式設置藍牙的接線如下:
Arduino 5V – VCC
Arduino GND – GND
Arduino Pin10 – TXD
Arduino Pin11 – RXD
在通電前檢查接線是否正確連接

Arduino 進入 AT 模式代碼

接下來,我們需要為使用 Arduino 設置藍牙模塊 AT 模式編寫程序,這個程序是讓我們可以通過 Arduino IDE 提供的串口監視器來設置藍牙模塊。詳細的 Arduino 代碼如下:

#include <SoftwareSerial.h>
// Pin10為RX,接HC05的TXD
// Pin11為TX,接HC05的RXD
SoftwareSerial BT(10, 11);
char val;
void setup() {
Serial.begin(38400);
Serial.println("BT is ready!");
// HC-05默認,38400
BT.begin(38400);
}
void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}
if (BT.available()) {
val = BT.read();
Serial.print(val);
}
}

利用 Arduino IDE 串口監視器進行調試

首先,將 Arduino 斷電,然後按著藍牙模塊上的黑色按鈕,再讓 Arduino 通電,如果藍牙模塊指示燈按2秒的頻率閃爍,表明藍牙模塊已經正確進入 AT 模式。
打開 Arduino IDE 的串口監視器,選擇正確的埠,將輸出格式設置為
Both: NL & CR ,波特率設置為 38400 ,可以看到串口監視器中顯示 BT is ready! 的信息。
然後,輸入
AT ,如果一切正常,串口顯示器會顯示 OK
接下來,我們即可對藍牙模塊進行設置,常用 AT 命令如下:

AT+ORGL # 恢復出廠模式
AT+NAME=<Name> # 設置藍牙名稱
AT+ROLE=0 # 設置藍牙為從模式
AT+CMODE=1 # 設置藍牙為任意設備連接模式
AT+PSWD=<Pwd> # 設置藍牙匹配密碼

正常情況下,命令發送後,會返回 OK ,如果沒有返回任何信息,請檢查接線是否正確,藍牙模塊是否已經進入 AT 模式,如果上述兩點都沒有問題,可能是藍牙模塊的問題,可以找藍牙模塊供應商諮詢。

利用 Andorid 手機連接 Arduino 並控制 LED燈開關

我們完成了對藍牙模塊的設置後,我們將做一個可以通過手機藍牙連接,控制 Arduino 開關 LED 燈的小實驗。

Arduino 電路設計

這裡的電路設計比較簡單,主要是兩部分:

  • Arduino 與 HC05 模塊連接
  • Arduino 與 LED 連接

這裡有兩點需要注意,Arduino 上的 TXD 應與 HC05 模塊上的 RXD 端連接,Arduino 上的 RXD 應與 HC05 模塊上的 TXD 連接。
在下面的圖例中,我的 LED 是直接連接在 Arduino Pin13 上,而實際電路連接中,因根據連接的 Led 燈的設計考慮是否需要串聯電阻。

Arduino 藍牙控制 LED 燈 程序設計

Arduino 程序代碼如下:

void setup()
{
// 設置波特率為 38400
Serial.begin(38400);
pinMode(13, OUTPUT);
}
void loop()
{
while(Serial.available())
{
char c=Serial.read();
if(c=='1')
{
Serial.println("BT is ready!");
// 返回到手機調試程序上
Serial.write("Serial--13--high");
digitalWrite(13, HIGH);
}
if(c=='2')
{
Serial.write("Serial--13--low");
digitalWrite(13, LOW);
}
}
}

Android 手機端調試

在 Android 端上進行調試,需要下載藍牙串口調試 APP,可以根據喜好在各大應用商場搜索下載。

藍牙串口調試APP ,讓 APP 連接上藍牙模塊,然後我們可以在 APP 中輸入 1,接下來可以看到 LED 等亮了,並且能在 APP 中看到 Serial–13–high 的返回(有些 APP 返回值可能不是返回在同一行)。我們再在 APP 中輸入 2,可以看到 LED 熄滅, APP 中返回 Serial–13–low

小結

在這篇文章中,我們了解了在 Arduino 中使用 HC05 藍牙模塊的兩個主要步驟,首先是進入 AT模式 對藍牙模塊進行設置,這裡要注意接線的正確性,設置完成後,就可以將藍牙模塊的 TX Arduino RX 連接,RX Arduino TX 連接,再通過 Arduino 程序中的 Serial 來實現數據的傳輸與讀取。最後,在通過 Android 上的藍牙串口調試APP,來測試我們的試驗是否成功。

關鍵字: