通過這篇文章,你可以了解到以下內(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-TTL 與 BLE4.0 的連接方法如下:
| BLE4.0 | USB-TTL |
|---|---|
| VCC | 3.3V |
| GND | GND |
| TXD | RXD |
| RXD | TXD |
注意,在通電之前,請確保連接正確,以防因連接錯(cuò)誤而損壞模塊設(shè)備!
接線完成后,把 USB-TTL 連接電腦,打開串口調(diào)試軟件(可以根據(jù)自己的使用習(xí)慣選擇串口調(diào)試軟件),選擇好正確的端口號,打開串口即可通訊。

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 App,打開藍(lán)牙,我們可以看到周圍的藍(lán)牙設(shè)備,我們這里的 BLE4.0 設(shè)備名稱是 BT05,接下來,我們點(diǎn)擊 BT05 ,可以看到左上方顯示 Connected 字樣,代表連接成功。接下來,我們下拉到最下面,點(diǎn)擊 TX&RX 進(jìn)入 TX&RX 子頁,可以看到以下的內(nèi)容:
注意頁面的最右上方,這里現(xiàn)在是顯示
Hex,我們需要的是使用 UTF-8 編碼方式進(jìn)行通訊,因此,我們點(diǎn)擊 Hex,進(jìn)入設(shè)置頁面,選擇 UTF-8 String 設(shè)置編碼方式為 UTF-8 編碼。
設(shè)置完成后,我們就可以通過
WRITTEN VALUES 來輸入發(fā)送數(shù)據(jù),然后可以在 READ/NOTIFIED VALUES 里面看到 Arduino 返回的數(shù)據(jù)。
我們可以看到,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ī)連接。