謝 滿 魏小銳
在中國,每年有20 萬左右的兒童失蹤,70 萬左右的老人走失。如何更好地保護老人孩子的安全問題已變成社會迫切需要解決的一個難題。本文通過分析研究移動終端平臺下iBeacons 技術的應用和開發,利用iBeacons 發射信號定位被保護對象的位置,提出基于iBeacons 技術的防丟失系統的設計,并在IOS 平臺下對其進行了研究和實驗。
隨著智能手機的普及以及移動互聯網的發展,可穿戴智能防丟失設備需求日益增加,如何結合移動終端來完成防丟失、定位,必將成為新的發展方向,特別是針對小孩老人等弱勢群體,必須設計一個簡易的防丟失系來滿足他們的需求。現在市面上的安全智能手環或是安全智能手表普遍存在高功耗,體積大的缺點,一方面高耗能導致續航能力短暫不能長時間追蹤保護對象,另一方面體積大使得犯罪分子容易發現具備定位功能的智能設備,進而從中破壞。因此我們必須從別的技術手段下手,尋找一種能在遠離自己的東西就能發出警報,而且一直保持工作狀態,低功耗,簡單輕巧、方便攜帶的東西。而基于iBeacon 技術的防丟失系統可以為解決這一問題提供一些有效的解決方案。iBeacon 技術的硬件基礎是BLE 技術的實現,相較于傳統藍牙防盜器的優勢在于前者搭載最新的藍牙4.0技術,極低功耗的運行可以使電池使用時間更長久,比如一顆紐扣電池,至少可以待機半年以上,綠色節能更環保,而且利用iBeacon 技術搭建的防盜器的體積可以做到和一元硬幣般大小。簡單來說,其工作原理主要是通過距離變化來判斷物品是否還控制在你的安全范圍。被保護對象只需將iBeacon 防丟器隱藏在身上便可以被實時監控,監控者則可以在客戶端設定預警范圍(防丟、尋找),警音模式(附帶振動)。
iBeacon 技術的硬件基礎是BLE 技術的實現,2010年7 月7 日,藍牙技術聯盟(Bluetooth SIG)宣布正式采納藍牙4.0(也就是Blue Low Energy 低功耗藍牙)核心規范(Bluetooth Core Specification Version 4.0)。與之前的藍牙相比,低功耗藍牙的優勢在于超低功耗,更長的連接距離和更快的連接速度。iBeacon 是IOS7 中一個重要的新特性之一,iBeacon 技術是指通過使用低功耗藍牙技術,iBeacons 基站自動創建一個信號區域,當IOS 設備進入該區域時,對應的應用程序便會提示用戶是否需要接入這個信號網絡,通過周邊多個iBeacons 收發器,精確定位幾mm 到50m 的范圍,并在后臺實時對用戶進行定位和數據傳輸。與NFC 技術相比,明顯具備定位精準、更遠距離(NFC 的鏈接距離僅為4~20 里面)、更低功耗的優勢。iBeacon 的通信包括兩個主要部分:advertising 和connecting。Advertising 是一種單向的發送機制。當設備被發現之后,一個連接就會被建立起來,之后就可以被帶有BLE 模塊的移動設備搜索到iBeacon信號。iBeacon 數據信號如圖1 所示。
其中Proximity UUID、major、minor 都是用來標識一個唯一的iBeachon 基站。而TX power,用于確定終端和iBeacon 之間的距離。根據這個值不但可以獲得粗略的信息(比如靠近/遠離/不在范圍內等),也可以獲取精確到米的距離(當然也可以轉換為以步為單位的距離)。TX power 是距離設備1 米測得的信號強度值(RSSI-Received Signal Strength Indication,接收到的信號強弱指標)。假如接收到的信號強度減弱了,那么可能在遠離。只要知道1 米距離的RSSI,以及當前的RSSI,那么便可以計算出當前的距離(計算過程中的三個常數(0.89976,7.7095 和0.111)是通過測量信號強度擬合曲線的基礎上得出):


圖1

圖2 系統總體設計框架

防丟失系統主要利用智能移動終端(以IOS系統為例)與iBeacon 基站之間的通訊,測算出兩者之前的距離,當超過預設的范圍,就會監護者的客戶端提示預警信號,為物品、人物、寵物提供防丟失解決方案。
系統的整體架構如圖2 所示,帶有BLE 低效率藍牙4.0 通訊載體的移動設備通過藍牙與iBeacon 基站進行通訊,獲取iBeacon 基站的唯一標識以及兩者之前的距離,并在客戶端做出響應。另外,可以后臺結合服務器,做一些推送,軌跡記錄等。
移動終端啟用BLE4.0 模塊
首先調用類方法BluetoothManager sharedInstance 獲取BLE 全局管理對象,其次通過調用管理對象的isEnabled 來檢驗當前設備的BLE 模塊的狀態。如果返回NO,則表示BLE 設備未開啟,接著調用[btManager setPowered:YES]和[btManager setEnabled:YES];來開啟BLE 設置。
查找iBeacon 防盜器
當BLE 設備處于打開狀態時,移動操作系統會向注冊的應用程序發送name 為“BluetoothDeviceDiscove redNotification”的通知,通過BluetoothDevice *bt=[notification object];獲取所有注冊過的iBeacon 防盜器列表。
移動終端與iBeacon 設備通訊
客戶端選擇需要連接的iBeacon 裝置,調用[btManager connectDevice:(BTListDevItem)]連接設備。在藍牙設備連接后,可以通過[btManager getConnectState]獲得連接狀態.當連接斷開時,及時獲取信息并發出警報聲,提醒用戶。
-(void)showAlertView:(NSString *)title message:(NSString *)msg 當移動終端處于活動狀態并且檢測iBeacon 信號源離終端設備的距離大于預警值時觸發。
-(void)showNotification:(NSNotification *)notification;當移動終端處于黑屏鎖屏狀態而且信號源超過預警范圍時,發起本地化通知提示用戶iBeacon 信號源的報警信息。
-(void)closeService:當移動端認為被保護對象已經處于安全范圍不需要監控時可以關閉信號源的接收。
-(CGFloat)getDistance:(iBeaconDevice *)device:獲取與iBeacon 信號源的距離。

圖3 軟件流程圖

圖4

圖5

圖6

圖7
移動終端本地打開BLE 模塊并搜索附近注冊過的iBeacon 信號,如果匹配不到則提示用戶;如果匹配成功則測試連接信號強度,算出兩者距離。如果兩者距離超過預警值或信號丟失,則根據客戶端的設置提示報警信號,否則繼續監聽,如圖3 所示。
防丟失系統綜合運用了無線通訊技術、移動開發技術和J2EE 技術來實現。由于ios 設備能夠發射iBeacon信號源并且具有BLE 模塊,故采用2 臺iphone 4s(IOS 7)做為模擬測試,一臺表示被保護的對象,一臺表示監控端。主要開發環境參數包括:
1)XCode6+Objective-C+iphone4s +IOS7作為移動端測試環境接收iBeacon 信號;
2)XCode6+Objective-C+iphone4s +IOS7模擬被監控對象(iBeacon 基站發出beacon 信號)。
測試開始,被保護對象打開防丟器,如圖4 所示。監控端設置預警范圍為10 米,并設置手機提示信息及通知信息,如圖5 所示。當被保護對象由近至遠走動時,監控端實時監控。當被保護對象距離監控端3m 時,顯示“安全范圍內”,如圖6 所示。當被保護對象距離監控端14m 時,彈出警報信息伴隨著急促的鈴聲出現,如圖7 所示。
本文主要論述了防丟失系統的結構,并對其進行了研究和實驗,實驗結果表明,基于iBeacons 技術的防丟失系統存在一定的合理性,其定位精度和系統響應時間等性能效果良好,具有廣闊的應用前景。