1. 程式人生 > >Arduino使用HC05藍牙模塊與手機連接(轉載)

Arduino使用HC05藍牙模塊與手機連接(轉載)

讀取 藍牙串口 返回值 進入 war 同一行 方法 asi https

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

  • 進入 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 連接上藍牙模塊,然後我們可以在 APP 中輸入 1,接下來可以看到 LED 等亮了,並且能在 APP 中看到 Serial--13--high 的返回(有些 APP 返回值可能不是返回在同一行)。我們再在 APP 中輸入 2,可以看到 LED 熄滅, APP 中返回 Serial--13--low

小結

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

參考資料

藍牙模塊HC05
Arduino Bluetooth Basic Tutorial



作者:speculatecat
鏈接:https://www.jianshu.com/p/4ebf1a01df51
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。

Arduino使用HC05藍牙模塊與手機連接(轉載)