何謂藍牙信標(Beacon)
Beacon 是建立在低功耗藍牙協議基礎上的一種廣播協議,其工作方式是,配備有低功耗藍牙(BLE)通信功能的設備使用BLE技術向周圍發送自己特有的ID,接收到該ID的應用軟體會根據該ID採取一些行動。它通常是放在室內的某個固定位置,藉此向周圍進行連續性廣播,但是它不能和任何低功耗藍牙主機進行連接。藍牙Beacon終端一般用於室內定位導航和精準位置營銷等用戶終端,比如一些大型超市的室內定位導航和基於位置的推送商品優惠券等。藍牙Beacon標準並非藍牙技術聯盟(Bluetooth SIG)所制訂的標準,它被稱為「虛擬標準」,是由大型供貨商或企業集團為首,針對廣泛的Beacon應用所正式提出的藍牙應用規範
藍芽版本演進
目前市場上主要有三個關鍵的虛擬標準
App 的iBeacon;
Google的Eddystone;
Radius Network的AltBeacon
以上三個虛擬標準,都使用低功秏藍牙廣播方法,將廣播封包放在低功秏藍牙頻道37、38和39,以避免在2.4 GHz 工業、科技和醫療 (ISM)免執照波段上,與Wi-Fi流量衝突。
藍牙Beacon工作原理
Beacon 會每隔一定的時間廣播一個數據包到周圍,作為獨立的藍牙主機(比如手機等)在執行掃描動作時,會間隔地接收到 Beacon 廣播出來的數據包。同時,在主機接收到廣播包時,其中會指示該廣播包來自於哪一個藍牙從機 MAC 地址(每個 Beacon 擁有唯一的 MAC 地址)的從機設備和當前的接收發送信號強度指示值RSSI為多少。這時候,如果手機上安裝有Beacon對應的app,接收到該ID的app會根據該ID的設置條件採取相應的動作!
藍牙Beacon應用
- 推送訊息
- 室內導航及定位
- 身分識別、簽到及打卡等
- 傳感器應用
如何在On Semiconductor提供之IDE加入EDDYSTONE信標功能
因為Beacon並不屬於BLE標準之Profile,目前On提供之IDE並無Sample Code可以提供,本方案參考Bluetooth SIG之範例修改On IDE的"Peripheral_server_sleep"這隻範例程式以達成Eddystone之信標功能,介紹如下 :
- 開啟On-Semiconductor IDE並增加Peripheral_server_sleep這支範例程式;
- 編輯h可以在這邊新增EDDYSTONE UUID、資料結構跟Message Name
- 編輯c的CustomService_Env_Initialize函式,這裡可以加入Eddystone URL,在這範例我們以大大通網站為例;
- 編輯c的CustomService_ServiceAdd函式,這裡可以送Request來要求增加客製Profile到Attribute資料庫
- 編輯c的GATTM_AddSvcRsp函式,這邊處理由GATT回應的增加服務到Attribute資料庫的response
- 編輯廣播的頻率到2000毫秒
- 編譯跟燒錄到RSL10 EVB
- 打開手機使用Beacon scanner APP測試我們剛才編輯的Beacon程式
- Eddystone用於尋物之範例
參考資料 :
1.Bluetooth SIG---Eddystone : https://www.bluetooth.com/blog/bluetooth-technology-and-the-physical-web/
2.On Semiconductor RSL10 : https://www.onsemi.com/products/connectivity/wireless-rf-transceivers/rsl10-sip