通過這篇文章,你可以了解到以下內(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)證,因此對(duì)于個(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)牙串口助手軟件對(duì)藍(lán)牙BLE模塊進(jìn)行調(diào)試。
USB-TTL
與 BLE4.0
的連接方法如下:
BLE4.0 | USB-TTL |
---|---|
VCC | 3.3V |
GND | GND |
TXD | RXD |
RXD | TXD |
注意细燎,在通電之前两曼,請(qǐng)確保連接正確,以防因連接錯(cuò)誤而損壞模塊設(shè)備玻驻!
接線完成后悼凑,把 USB-TTL
連接電腦,打開串口調(diào)試軟件(可以根據(jù)自己的使用習(xí)慣選擇串口調(diào)試軟件)璧瞬,選擇好正確的端口號(hào)户辫,打開串口即可通訊。
BLE4.0的AT指令大致與HC05藍(lán)牙模塊類似嗤锉,詳細(xì)AT指令請(qǐng)參考購買時(shí)商家提供的手冊(cè)渔欢。
這里有一點(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ī)連接。