Luat蓝牙指南
目錄
- 藍(lán)牙
-
- 簡(jiǎn)介
-
- 1、藍(lán)牙概念
- 2、藍(lán)牙使用場(chǎng)景
- API說(shuō)明
-
- 主模式
- 從模式
- 廣播模式
- 實(shí)現(xiàn)流程
- 示例
- 常見(jiàn)問(wèn)題
-
- 1.需要增加信號(hào)強(qiáng)度,用外置天線。
- 2.沒(méi)有設(shè)置過(guò)藍(lán)牙m(xù)ac地址的模塊,mac地址是隨機(jī)的。
- 3.目前模塊的藍(lán)牙連接方式為一對(duì)一
- 4.模塊藍(lán)牙是為雙模藍(lán)牙(經(jīng)典藍(lán)牙+BLE)
- 5.藍(lán)牙版本4.2
- 6.目前不支持pin碼(配對(duì)碼),后續(xù)可能會(huì)支持(時(shí)間點(diǎn)不確定)
- 7.無(wú)法獲取當(dāng)前的藍(lán)牙連接的信號(hào)強(qiáng)度(頻率不小于10Hz,模擬測(cè)距時(shí)使用)
- 8.無(wú)法支持藍(lán)牙hid
- 9.藍(lán)牙白名單廣播和全局廣播的切換(開(kāi)發(fā)中)
- 10.藍(lán)牙連接、掃描、數(shù)傳范圍:
- 11.配對(duì)綁定模式(SMP)無(wú)法支持
- 12.使用btcore.getaddr()獲取的藍(lán)牙m(xù)ac地址是隨機(jī)的
- 13.藍(lán)牙廣播中的 MAC 地址在 IOS設(shè)備上是隨機(jī)值,不保證每臺(tái) iOS 設(shè)備讀出來(lái)的 DeviceId 是一樣的。
- 14.如果使用了btcore.setname(),廣播包里會(huì)自動(dòng)添加藍(lán)牙名稱的數(shù)據(jù),也可以不使用setname,直接在廣播包數(shù)據(jù)里面手動(dòng)添加藍(lán)牙名稱
- 15.藍(lán)牙自定義廣播包數(shù)據(jù)或響應(yīng)包數(shù)據(jù)需要遵從藍(lán)牙廣播包/響應(yīng)包數(shù)據(jù)格式,具體格式請(qǐng)到互聯(lián)網(wǎng)自行搜索,藍(lán)牙slave的demo中也有示例
- 相關(guān)資料以及購(gòu)買(mǎi)鏈接
藍(lán)牙
簡(jiǎn)介
1、藍(lán)牙概念
藍(lán)牙是一種短距離的無(wú)線通信技術(shù),工作在2.4GHZ頻段,使用IEEE802.15協(xié)議。分為經(jīng)典藍(lán)牙(BR/EDR/AMP)、低功耗藍(lán)牙(BLE)兩種技術(shù)標(biāo)準(zhǔn)。
經(jīng)典藍(lán)牙最早1999年推出的藍(lán)牙1.0版本,到目前最新的藍(lán)牙5.1。通信速度從最早的1.0版本的723.1kbits/s,到5.1版本的48Mbits/s。主要特點(diǎn)如下:
通信速率高;
支持音頻傳輸協(xié)議;
功耗高。
低功耗藍(lán)牙(從藍(lán)牙4.0開(kāi)始支持),旨在保持同等通信范圍的同時(shí)顯著降低功耗和成本,場(chǎng)景廣泛,主要特點(diǎn)如下:
低功耗,使用紐扣電池就可運(yùn)行數(shù)月至數(shù)年;
小體積、低成本;
與現(xiàn)有的大部分手機(jī)、平板電腦和計(jì)算機(jī)兼容。
2、藍(lán)牙使用場(chǎng)景
藍(lán)牙的兩種協(xié)議標(biāo)準(zhǔn)各有不同使用場(chǎng)景,合宙Cat1目前只支持了BLE數(shù)傳應(yīng)用,這種應(yīng)用是對(duì)LTE長(zhǎng)距離通信的一種補(bǔ)充。
參照合宙Cat1模塊藍(lán)牙功能介紹
API說(shuō)明
主模式
| API接口 | 描述 |
|---|---|
| btcore.scan | 開(kāi)啟/關(guān)閉掃描 |
| btcore.connect | 連接從設(shè)備 |
| btcore.findservice | 發(fā)現(xiàn)服務(wù) |
| btcore.findcharacteristic | 發(fā)現(xiàn)服務(wù)內(nèi)的特征 |
| btcore.opennotification | 開(kāi)啟/關(guān)閉通知 |
| btcore.send | 發(fā)送數(shù)據(jù)給從設(shè)備 |
| btcore.recv | 接收從設(shè)備發(fā)來(lái)的數(shù)據(jù) |
從模式
| API接口 | 描述 |
|---|---|
| btcore.advertising | 開(kāi)啟/關(guān)閉廣播 |
| btcore.setname | 設(shè)置藍(lán)牙名稱 |
| btcore.setadvdata | 設(shè)置廣播包數(shù)據(jù) |
| btcore.setscanrspdata | 設(shè)置響應(yīng)包數(shù)據(jù) |
| btcore.addservice | 添加服務(wù) |
| btcore.addcharacteristic | 添加特征 |
| btcore.adddescriptor | 添加描述 |
| btcore.send | 發(fā)送數(shù)據(jù)給主設(shè)備 |
| btcore.recv | 接收主設(shè)備發(fā)來(lái)的數(shù)據(jù) |
廣播模式
| API接口 | 描述 |
|---|---|
| AT+BTCOMM=ENABLE | 開(kāi)啟/關(guān)閉藍(lán)牙 |
| AT+BLECOMM=SETNAME | 設(shè)置廣播名稱 |
| AT+BLEADV=ADVDATA | 設(shè)置廣播包數(shù)據(jù) |
| AT+BLEADV=SCANRSPDATA | 設(shè)置響應(yīng)包數(shù)據(jù) |
| AT+BLEADV=ENABLE | 打開(kāi)/關(guān)閉廣播 |
詳細(xì)的API介紹見(jiàn)BLE 藍(lán)牙功能 API說(shuō)明
實(shí)現(xiàn)流程
藍(lán)牙從模式,先init,再poweron,再data_trans把收到的數(shù)據(jù)回傳。如下:ble_test = {init, poweron,data_trans}
示例
藍(lán)牙實(shí)例程序在腳本庫(kù)的demo\bluetooth文件夾下。
demo講解
常見(jiàn)問(wèn)題
1.需要增加信號(hào)強(qiáng)度,用外置天線。
這個(gè)0歐姆電阻跨到那個(gè)ipex頭那里,可以接外置天線。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-cO2nmp5v-1624851985542)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210318154245477_外置天線.png “undefined”)]
2.沒(méi)有設(shè)置過(guò)藍(lán)牙m(xù)ac地址的模塊,mac地址是隨機(jī)的。
帶藍(lán)牙功能的模塊出廠都會(huì)寫(xiě)一個(gè)唯一的藍(lán)牙MAC的。可以用AT+BTMAC?查詢驗(yàn)證。
解決辦法,可以自己手動(dòng)寫(xiě)一個(gè)藍(lán)牙MAC。用AT+BTMAC=
設(shè)置,如AT+BTMAC=B4:04:29:46:CF:2D
3.目前模塊的藍(lán)牙連接方式為一對(duì)一
4.模塊藍(lán)牙是為雙模藍(lán)牙(經(jīng)典藍(lán)牙+BLE)
5.藍(lán)牙版本4.2
6.目前不支持pin碼(配對(duì)碼),后續(xù)可能會(huì)支持(時(shí)間點(diǎn)不確定)
7.無(wú)法獲取當(dāng)前的藍(lán)牙連接的信號(hào)強(qiáng)度(頻率不小于10Hz,模擬測(cè)距時(shí)使用)
8.無(wú)法支持藍(lán)牙hid
9.藍(lán)牙白名單廣播和全局廣播的切換(開(kāi)發(fā)中)
10.藍(lán)牙連接、掃描、數(shù)傳范圍:
與天線、應(yīng)用場(chǎng)景等都有關(guān)系
需要自己根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行測(cè)試,如:空曠的地帶、室內(nèi)
11.配對(duì)綁定模式(SMP)無(wú)法支持
12.使用btcore.getaddr()獲取的藍(lán)牙m(xù)ac地址是隨機(jī)的
從V3027到V3035,都有這個(gè)問(wèn)題,3035后會(huì)解決這個(gè)問(wèn)題
問(wèn)題原因是,如果沒(méi)打開(kāi)藍(lán)牙,使用接口獲取的地址會(huì)變
13.藍(lán)牙廣播中的 MAC 地址在 IOS設(shè)備上是隨機(jī)值,不保證每臺(tái) iOS 設(shè)備讀出來(lái)的 DeviceId 是一樣的。
可以通過(guò)在藍(lán)牙廣播包或響應(yīng)包內(nèi)添加本機(jī)的真實(shí)mac地址來(lái)規(guī)避
14.如果使用了btcore.setname(),廣播包里會(huì)自動(dòng)添加藍(lán)牙名稱的數(shù)據(jù),也可以不使用setname,直接在廣播包數(shù)據(jù)里面手動(dòng)添加藍(lán)牙名稱
15.藍(lán)牙自定義廣播包數(shù)據(jù)或響應(yīng)包數(shù)據(jù)需要遵從藍(lán)牙廣播包/響應(yīng)包數(shù)據(jù)格式,具體格式請(qǐng)到互聯(lián)網(wǎng)自行搜索,藍(lán)牙slave的demo中也有示例
相關(guān)資料以及購(gòu)買(mǎi)鏈接
Air724UG開(kāi)發(fā)板
Air724 開(kāi)發(fā)板使用說(shuō)明
總結(jié)
- 上一篇: 几个冷门字符串算法的学习笔记(最小表示法
- 下一篇: Doke的一些常用命令(容器篇)