藍牙信標
所謂的藍牙信標,是最單純的一種低功耗藍牙周邊裝置,它僅僅只是不斷的發送具備特定內容的廣播信號。在大部分的應用例子當中,信標不會提供其他服務。 開發者可以使用 LBLE 程式庫與 LinkIt 7697 來建立 iBeacon 或是 Eddyston-URL 信標。
將 LinkIt 7697 設定為 iBeacon 信標
將 LinkIt 7697 作為 Eddystone-URL 信標
將 LinkIt 7697 設定為 iBeacon 信標
iBeacon 就是一個以特定格式發送資料的低功耗藍牙裝置。它不能夠被主控裝置連線。
可透過 LBLEAdvertisement
輕易的生成並設定 iBeacon 廣播的內容,只需要呼叫 configAsIBeacon
這個函示來設定 iBeacon 的資訊,如下例所示:
在上面的例子當中:
E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
是 iBeacon 的 UUID。這個 UUID 是應用程式要自己去生成的。在這個例子當中,我們使用了E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
,這是一個在 iOS 開發套件當中的 AirLocate iBeacon 範例。有許多 iOS 的信標偵測工具,都會提供掃描這個 UUID 對應的信標的範例。參數 01 跟 02 分別是所謂的 major ID 與 minor ID。這兩個 ID 的用途是讓開發者區分同一個信標應用當中的不同實體信標。比如說,使用者可能會想要在辦公室的每一間會議室當中,都放一個 LinkIt 7697 作為 iBeacon 信標,並且把 major ID 設定為樓層號碼,把 minor ID 設定為會議室編號。這樣一來,就可以透過偵測 major 與 minor ID,得知自己所在的會議室。
最後一個數值
-40,是代表「在距離此信標一公尺遠的範圍,測量此信標的信號強度所預期得到的dB值」,主要的目的是讓 iBeacon 掃描器的應用可以提供大概的距離估算。要注意的是,這個值只是單純的被保存在信標的廣播數據之中,它不會真的影響廣播信號的強度。開發者應該在實際環境與對應的 iBeacon 掃描器中,測量並且校正此數值應該有的大小。
在設定好信標廣播的內容之後,只需要呼叫 advertise
這個方法,就可以讓 LBLEPeripheral 類別開始廣播信標,如下:
此時 LinkIt 7697 便會開始信標的廣播。如果要停止廣播,請呼叫 stopAdvertise()
。
在 IDE 選單中的 File > Examples > LBLE > BeaconAdvertisement 已經提供了一個簡單的範例。當上傳此範例檔案後,即可以使用
Locate Beacon 這類的手機 iBeacon 掃描工具來掃描範例所提供的信標。下面是該手機工具的螢幕截圖:
將 LinkIt 7697 作為 Eddystone-URL 信標
Eddystone-URL 信標主要的功能便是廣播一個特定的網址(URL). 因為 BLE 廣播資料有限制相當短的長度,所以一般來說,會使用縮短後的網址,比如像是 https://goo.gl/Aq18zF 這種形式。
要創建一個這樣的信標,只需要呼叫 LBLEAdvertisementData 物件的 configAsEddystoneURL方法:
URL 類型設定
在上面的範例當中,會看到 Eddystone-URL 已經有內定一些常見的 URL 開頭,以求更進一步縮短所需要的資料空間。URL 資料的長度限制為 17 bytes,而在上面的範例中,我們可以用一個 1 byte 的 EDDY_HTTPS 代號來代表 https:// 這個需要 8 byte才能夠表示的網址開頭。同樣的, EDDY_DOT_COM 用來代表 .com 這個 URL 的結尾。下面的表格列出了可供選用的 URL 開頭與結尾。
Prefix Symbol | Corresponding URL |
---|---|
EDDY_HTTP_WWW | |
EDDY_HTTPS_WWW | |
EDDY_HTTP | http:// |
EDDY_HTTPS | https:// |
Suffix Symbol | Corresponding URL |
---|---|
EDDY_URL_NONE | (append nothing) |
EDDY_DOT_COM_SLASH | .com/ |
EDDY_DOT_ORG_SLASH | .org/ |
EDDY_DOT_EDU_SLASH | .edu/ |
EDDY_DOT_NET_SLASH | .net/ |
EDDY_DOT_INFO_SLASH | .info/ |
EDDY_DOT_BIZ_SLASH | .biz/ |
EDDY_DOT_GOV_SLASH | .gov/ |
EDDY_DOT_COM | .com |
EDDY_DOT_ORG | .org |
EDDY_DOT_EDU | .edu |
EDDY_DOT_NET | .net |
EDDY_DOT_INFO | .info |
EDDY_DOT_BIZ | .biz |
EDDY_DOT_GOV | .gov |
如果要使用的網址沒有在上面列出的表格之中,而且總長又超過了17 byte,那麼可考慮使用 URL shortener 服務,這樣一來,可以輕易的把長網址轉換為短網址:
廣播信標內容
設定好要廣播的 URL 之後,只要把該資訊傳入 advertiseAsBeacon 方法中,就可以開始廣播:
搜尋周圍的 Eddyston-URL 信標
開發者可以使用 Physical Web 手機程式或是其他支援 Google Beacons 框架的工具來搜尋鄰近的 Eddystone-URL 信標。
作為示範演練,請先燒錄 File > Examples > LBLE > EddystoneURLAdvertisement 這個範例到 LinkIt 7697。接著在手機上打開 Physical Web 程式,它應該會顯示如下的信標資訊:
Physical Web 這個程式也支援小工具模式,如果在手機的小工具頁面當中放置此程式,就可以隨時搜尋鄰近的 Eddystone-URL 信標,並開啟對應的網址。
Note
請確認手機上面的 BLE 功能有開啟。
Last updated