Arduino使用藍(lán)牙BLE模塊

通過這篇文章,你可以了解到以下內(nèi)容:

  • 什么是藍(lán)牙BLE 4.0
  • 如何設(shè)置藍(lán)牙BLE 的 AT 指令
  • Arduino 連接藍(lán)牙 BLE 與 iOS 設(shè)備互聯(lián)實(shí)踐

了解 BLE 4.0

BLE 全稱是 Bluetooth Low Energy 低功耗藍(lán)牙的縮寫,是藍(lán)牙 4.0 的一個(gè)分支。

BLE 支持 iPhone4s 以上的 iOS 設(shè)備,并且無需做 MFI 認(rèn)證,因此對于個(gè)人開發(fā)者及一些中小型開發(fā)團(tuán)隊(duì)快速開發(fā)硬件原型以及智能家居等產(chǎn)品設(shè)備有著極大的便利。

作為 Arduino 開發(fā)者,我們常見的藍(lán)牙 BLE 模塊主要是采用美國TI公司CC2541芯片的模塊,這種模塊比較容易購買,現(xiàn)在能買到的藍(lán)牙BLE模塊主要有兩種,一種是已經(jīng)焊接好,帶有針腳的模塊,另外一種是沒有焊接針腳的,用戶可以根據(jù)自己項(xiàng)目及需求的實(shí)際情況進(jìn)行選擇。

設(shè)置 AT指令

我們可以通過USB-TTL 模塊藍(lán)牙BLE與電腦連接,使用藍(lán)牙串口助手軟件對藍(lán)牙BLE模塊進(jìn)行調(diào)試。

USB-TTLBLE4.0 的連接方法如下:

BLE4.0 USB-TTL
VCC 3.3V
GND GND
TXD RXD
RXD TXD

注意,在通電之前,請確保連接正確,以防因連接錯(cuò)誤而損壞模塊設(shè)備!
接線完成后,把 USB-TTL 連接電腦,打開串口調(diào)試軟件(可以根據(jù)自己的使用習(xí)慣選擇串口調(diào)試軟件),選擇好正確的端口號,打開串口即可通訊。

ble_com.jpg

BLE4.0的AT指令大致與HC05藍(lán)牙模塊類似,詳細(xì)AT指令請參考購買時(shí)商家提供的手冊。

這里有一點(diǎn)需要注意,BLE4.0模塊進(jìn)入AT指令設(shè)置模式,不需要向HC05一樣需要按著模塊電路板上的按鈕,但是需要確保該模塊沒有被連接。

Arduino 連接藍(lán)牙 BLE 與 iOS 設(shè)備互聯(lián)實(shí)踐

接下來,我們將嘗試使用Arduino和BLE4.0模塊與 iOS 設(shè)備進(jìn)行互聯(lián)通信。進(jìn)行這個(gè)實(shí)驗(yàn),我們需要預(yù)先準(zhǔn)備好以下內(nèi)容:

名稱 數(shù)量
iOS 設(shè)備 1
Arduino 1
BLE 4.0模塊 1
FM連接線 若干
LightBlue App 1

準(zhǔn)備好后,下面開始連接 Arduino 和 BLE4.0 模塊:

Arduino BLE4.0
5V VCC
GND GND
TX RXD
RX TXD

連接完成后,我們接著為 Arduino 編寫程序。程序非常簡單,程序的主要功能為接收藍(lán)牙數(shù)據(jù),如果截獲數(shù)據(jù)為A,那么久返回 BLE get char A.。程序代碼如下:

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    while(Serial.available()){
        char c = Serial.read();
        if (c == 'A') {
            Serial.println("BLE get char A.");
        }
    }
}

編譯上傳程序到 Arduino 上之后,我們打開 LightBlue,測試是否能正常使用。

lightblue_1step.PNG

打開 LightBlue App,打開藍(lán)牙,我們可以看到周圍的藍(lán)牙設(shè)備,我們這里的 BLE4.0 設(shè)備名稱是 BT05,接下來,我們點(diǎn)擊 BT05 ,可以看到左上方顯示 Connected 字樣,代表連接成功。接下來,我們下拉到最下面,點(diǎn)擊 TX&RX 進(jìn)入 TX&RX 子頁,可以看到以下的內(nèi)容:

light_blue_2step.PNG

注意頁面的最右上方,這里現(xiàn)在是顯示 Hex,我們需要的是使用 UTF-8 編碼方式進(jìn)行通訊,因此,我們點(diǎn)擊 Hex,進(jìn)入設(shè)置頁面,選擇 UTF-8 String 設(shè)置編碼方式為 UTF-8 編碼。

lightblue_step3.PNG

設(shè)置完成后,我們就可以通過 WRITTEN VALUES 來輸入發(fā)送數(shù)據(jù),然后可以在 READ/NOTIFIED VALUES 里面看到 Arduino 返回的數(shù)據(jù)。

lightblue_final.PNG

我們可以看到,LightBlue 已經(jīng)收到 Arduino 返回的 BLE get char A. 字符串,到這里為止,實(shí)驗(yàn)成功。

小結(jié)

這篇文章簡單介紹了BLE的特點(diǎn),以及如何視同 USB-TTL 設(shè)置藍(lán)牙模塊的AT指令,最后通過一個(gè)Arduino藍(lán)牙與iOS設(shè)備連接的小實(shí)驗(yàn)來了解手機(jī)和Arduino藍(lán)牙是如何通信的。如果你需要了解藍(lán)牙HC05模塊的使用方法,可以參考另外一篇文章Arduino使用HC05藍(lán)牙模塊與手機(jī)連接。

參考資料

藍(lán)牙4.0BLE模塊兼容Arduino

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 通過本文,可以了解到以下內(nèi)容: 進(jìn)入 AT 模式進(jìn)行藍(lán)牙基本參數(shù)設(shè)置 Arduino 藍(lán)牙控制 LED 電路設(shè)計(jì)以...
    speculatecat閱讀 55,165評論 0 41
  • 姓名:于川皓 學(xué)號:16140210089 轉(zhuǎn)載自:http://blog.csdn.net/xubin34171...
    道無涯_cc76閱讀 8,573評論 0 11
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,950評論 25 709
  • 東北人,河南人,分享來自宇宙的能量,分享同一條鐵路,我們分享卻不屬于同一個(gè)世界。陌生人,父母,我,分享卻不屬于同一...
    逢沱閱讀 175評論 0 0
  • 繁華的都市,衣著華麗的人們。一切都將美好的一面展現(xiàn)在一個(gè)初來乍到的外鄉(xiāng)人面前,像是特地在歡迎這一位來自遠(yuǎn)方的客人,...
    李NB閱讀 351評論 0 1

友情鏈接更多精彩內(nèi)容