BLE – 廣播信標

材料準備

範例說明

介紹

BLE信標將其身份信息廣播到附近的藍牙設備,使其他設備能夠確定它們相對於信標的位置,並根據信標廣播的信息執行操作。

信標的應用實例包括室內定位系統、定位廣告等。

按照廣播設備的定義,BLE信標無法被連接,只能通過其藍牙廣告包發送信息。

在比較常見的BLE信標協議中,Ameba BLEBeacon庫支持iBeacon和AltBeacon協議。

具體的步驟如下:

請確保在您的手機上安裝了以下藍牙應用程序。這些應用程序將向您顯示由Ameba發送的原始數據,並允許您與數據進行交互。

這裡推薦的應用程序是nRF connect,可在下面的鏈接中找到:

LightBlue是另一種也可以使用的應用程序,但是它的特性比較少:

打開Arduino的範例,”Files” -> “Examples” -> “AmebaBLE” -> “BLEBeacon”

2

上傳代碼並在上傳完成後按下Ameba上的reset按鈕。

在您的手機上,打開藍牙app,掃描Ameba廣播的信標信號。

3

如果您碰巧處在一個BLE信標多而繁雜的環境中,您可以點擊條目來展開它們,並驗證信標數據是否與程序中的數據相同。

程式碼說明

setRssi() 用於設置信標的接收信號強度指示器(rssi)數據字段。規範規定這應該是1米距離內從信標收到的信號強度。由於沒有測量方法,因此將估計值設置為-65dBm。

setMajor() 和 setMinor() 用於設置兩個數據字段。這些數據的用途留給信標的製造商來定義,並且可以任意使用。

setUUID() 用於給信標一個全局唯一標識符(UUID)。這是一個128位的數字,通常用十六進製字符串表示。它用於識別每個唯一的信標,並且可以免費地在線隨機生成。

BLEBeacon 庫包括iBeacon和AltBeacon類,如果第6行iBeacon替換為AltBeacon,就能創建一個AltBeacon。數據字段基本相同,只有一些小的變化,請查看頭文件了解更多細節。

BLE.init() 用於分配內存並預備Ameba啟動藍牙堆棧。

BLE.configAdvert() 用於配置藍牙廣告設置,我們將信標數據傳遞給它,並將設備設置為不可連接。

BLE.beginPeripheral() 在藍牙外設模式下啟動Ameba,之後它將開始使用提供的信標數據進行廣告。

請先確認已安裝QQ通訊軟體