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