BLE5101是一款基于藍(lán)牙協(xié)議5.1版本的藍(lán)牙轉(zhuǎn)串口收發(fā)模塊,工作頻段為2.4GHz。具有體積小、功耗低、主從共存等特點(diǎn)。
這里將展示如何使用藍(lán)牙模塊BLE5101,方便用戶(hù)迅速上手使用。
使用工具:串口調(diào)試助手SSCOM、安卓APP nRF Connect、手機(jī)版本Android 10(串口參數(shù): 115200、8、N、1)
1、確認(rèn)藍(lán)牙模塊是否處于配置模式
我司出廠的BLE5101模塊上電時(shí)默認(rèn)會(huì)進(jìn)入配置模式,以方便用戶(hù)進(jìn)行參數(shù)設(shè)置。配置模式下藍(lán)牙模塊不會(huì)自動(dòng)運(yùn)行藍(lán)牙功能,處于idle狀態(tài)。
發(fā)送AT測(cè)試指令“AT\r\n”(其中,\r\n是回車(chē)換行符,即0x0d 0x0a)確認(rèn)模塊是否進(jìn)入配置模式:
如果串口沒(méi)有任何回復(fù),則模塊沒(méi)有進(jìn)入配置模式。發(fā)送一包字符串“+++\r\n”或者拉低SET腳(PIN 6)使其進(jìn)入配置模式。進(jìn)入配置模式時(shí)模塊的串口會(huì)回復(fù)信息“[ENTER AT MODE]”:
2、 關(guān)閉上電自動(dòng)進(jìn)入配置模式的功能
發(fā)送AT指令“AT+ENATMODE=0\r\n”,模塊返回“OK”則設(shè)置成功。藍(lán)牙模塊將在下次啟動(dòng)時(shí)應(yīng)用這個(gè)參數(shù)。
3、修改藍(lán)牙模塊的MAC地址
我司出廠的BLE5101藍(lán)牙模塊,MAC地址都是同一個(gè)值,兩個(gè)相同MAC地址的BLE5101模塊之間是無(wú)法建立藍(lán)牙連接的,所以需要修改其中一個(gè)模塊的MAC地址。
例如,將模塊的MAC地址設(shè)置為11:22:33:44:55:66,發(fā)送AT指令“AT+MAC=112233445566\r\n”:
模塊返回“OK”則設(shè)置成功。
4、開(kāi)啟藍(lán)牙模塊的主從功能
發(fā)送AT指令“AT+CONS?\r\n”查詢(xún)藍(lán)牙模塊主從功能是否已經(jīng)開(kāi)啟:
模塊返回“+CONS=a,b”。其中,當(dāng)a=0時(shí),模塊將禁用從機(jī)功能,模塊無(wú)法開(kāi)啟藍(lán)牙廣播,并拒絕任何來(lái)自藍(lán)牙主機(jī)的連接請(qǐng)求;當(dāng)b=0時(shí),模塊將禁用主機(jī)功能,模塊無(wú)法開(kāi)啟藍(lán)牙掃描。BLE5101模塊支持主從共存,因此可以將a與b同時(shí)置1,將主機(jī)功能與從機(jī)功能同時(shí)開(kāi)啟。
發(fā)送AT指令“AT+CONS=1,1\r\n”, 模塊返回“OK”則設(shè)置成功。模塊將在下次啟動(dòng)時(shí)應(yīng)用這個(gè)參數(shù)。
5、重新啟動(dòng)藍(lán)牙模塊
發(fā)送指令“AT+RESET\r\n”或者重新上電模塊以重新啟動(dòng)。如果SET引腳被拉低了,需要將SET引腳恢復(fù)為高電平,否則模塊重新啟動(dòng)仍然會(huì)進(jìn)入配置模式。
藍(lán)牙模塊將一直應(yīng)用上面的設(shè)置參數(shù),上電后將自動(dòng)開(kāi)啟藍(lán)牙掃描與藍(lán)牙廣播。打開(kāi)nRF Connect,開(kāi)啟掃描,手機(jī)將能接收到來(lái)自BLE5101的廣播包,用戶(hù)可以點(diǎn)擊CONNECT建立藍(lán)牙連接;如果有兩個(gè)BLE5101模塊應(yīng)用了這些設(shè)置,那么它們上電后將自動(dòng)建立藍(lán)牙連接。
6、BLE5101互相建立藍(lán)牙連接并收發(fā)數(shù)據(jù)
如果有兩個(gè)BLE5101藍(lán)牙模塊應(yīng)用了1-5點(diǎn)設(shè)置,那么它們將自動(dòng)建立藍(lán)牙連接。模塊作為主機(jī)連接成功后,串口將打印信息:
“[SLAVE CONNECTED]”,并顯示從機(jī)的MAC地址;反之,則打印信息:“[MASTER CONNECTED]”,并顯示主機(jī)的MAC地址。
注:由于兩個(gè)BLE5101模塊的藍(lán)牙廣播與藍(lán)牙掃描一起開(kāi)啟,實(shí)際連接時(shí)無(wú)法保證一方固定為主機(jī)或者從機(jī)。如果需要一方固定為主機(jī)/從機(jī),進(jìn)入配置模式后發(fā)送AT+CONS指令將相應(yīng)功能置0即可。
BLE5101作為主機(jī)連接時(shí),由于BLE協(xié)議流程,需要發(fā)現(xiàn)從機(jī)的GATT Service與GATT Characteristic,這個(gè)過(guò)程大約需要1-2s,之后自動(dòng)向BLE5101從機(jī)發(fā)送Notification Enable請(qǐng)求,便可以開(kāi)始透明傳輸數(shù)據(jù)。BLE5101支持最大MTU為250,即單包可發(fā)送最多250 - 3 = 247個(gè)字節(jié)的數(shù)據(jù)。
7、手機(jī)與BLE5101建立藍(lán)牙連接并收發(fā)數(shù)據(jù)
通過(guò)1-5點(diǎn)讓手機(jī)與BLE5101建立藍(lán)牙連接后,按照?qǐng)D示即可開(kāi)始收發(fā)數(shù)據(jù):
服務(wù)UUID (Service UUID) | FFF0 | ||
特征值 (Characteristic UUID) | UUID | 屬性 | 說(shuō)明 |
FFF1 | Read/Notify | 從機(jī)發(fā)送,主機(jī)接收數(shù)據(jù)通道 | |
FFF2 | Write/Write no response | 主機(jī)發(fā)送,從機(jī)接收數(shù)據(jù)通道 |
- BLE5101默認(rèn)用于收發(fā)數(shù)據(jù)的Primary Service UUID為0xFFF0。點(diǎn)擊可查看該P(yáng)rimary Service包含的Characteristic。
- BLE5101作為從機(jī)時(shí),默認(rèn)通過(guò)具有Notify屬性的Characteristic向主機(jī)發(fā)送Notification通知。點(diǎn)擊箭頭所示可向BLE5101發(fā)送Notification Enable請(qǐng)求,以自動(dòng)接收BLE5101發(fā)送的數(shù)據(jù)。
- 點(diǎn)擊箭頭所示可向BLE5101發(fā)送數(shù)據(jù),BLE5101收到數(shù)據(jù)后會(huì)通過(guò)串口打印出來(lái)。