ibeacon是工作在藍芽4.0(ble)硬體下的一種協議,屬於藍芽4.0廣播協議的一種,通過該協議和乙個藍芽模組可以實現非接觸的身份識別、位置檢測等。ble的通訊包括兩個主要部分:advertising(廣告)和connecting(連線)。
廣告(advertising)是一種單向的傳送機制。想要被搜尋到的裝置可以以20毫秒到10秒鐘的時間間隔傳送一段資料報。使用的時間間隔越短,電池消耗的越快,但裝置被發現的速度也就會快。資料報長度最多47個位元組,由以下部分組成:
1 byte preamble(1位元組做報頭) 前導(1位元組):不知道的可以理解為」同步頭」,主要是用來配置接收機的自動增益控制。
4 byte access address(4位元組做位址) *對於廣告通訊通道,位址部分永遠都是0x8e89bed6
。對於其它資料通道,位址部分由不同的連線決定。
39 bytes advertising channel pdu(39個位元組用於pdu資料報)
3 bytes crc(3個位元組用於crc資料校驗)
*使用packet sniffer抓資料,能方便清晰地了解資料幀情況參考
這裡data才是ibeacon 協議的資料體(共30位元組,按照如上定義資料幀則為所謂ibeacon 協議)
proximity uuid:這是將你所有的beacon與其他人的beacon裝置區別開的id!通常乙個裝置**商必須使用乙個統一的uuid。即同一公司的ibeacon節點必須設定為相同uuid
major編號:用於將相關的beacon標識為一組。例如,乙個商店中的所有beacon將會分配到相同的major編號。通過這種方式,應用程式就能夠知道顧客位於哪一家商店。
minor標號:用於標識特定的beacon裝置。例如乙個商店中的每乙個beacon裝置都擁有唯一的minor編號,這樣你才能夠知道顧客位於商店中的哪個位置。
tx power:測定的無遮擋一公尺處訊號強度rssi值(固定值,需要裝置**商測定並寫死在裝置中),可用於計算距離。
/**0.由於基於廣播包,所以很容易出現ibeacon偽造或者利用重放廣播包進行攻擊* 估算使用者裝置到ibeacon的距離
*
* @param
txpower
* @param
rssi 通過bluetoothadapter取得
* @return
*/protected
static
double calculateaccuracy(int txpower, double
rssi)
double ratio = rssi * 1.0 /txpower;
if (ratio < 1.0)
else
}
應對方案:ø 防蹭用加密
常規ibeacon的節點id號不會變化,從而產生兩大問題:1、客戶部署網路後第三方可採集到ibeacon部署的位置,從而免費使用客戶所部署的網路,導致客戶的利益受到損害;2、在地理位置簽到等服務中,常規ibeacon的節點易被人採集到id號進行仿冒,從而基於仿冒的節點進行虛假服務。
尋息提供廣播金鑰防蹭用加密及基於時間的防蹭用加密節點兩套id動態加密模式,使得節點id(major、minor)動態變化,對於客戶部署的網路,其他人均無法蹭用。其中基於時間的防蹭用加密為目前唯一不可破解、不影響ibeacon協議(不占用ibeacon協議中任何字段)且併發容量不受限的加密方案。
1.乙個節點硬體模擬多個ibeacon
3.使用安卓手機自帶的藍芽4.0模擬ibeacon訊號發射?
需要安卓系統5.0以上,支援peripheral mode。國外有做得比較好的實現
參考4.有哪些創新的應用範圍?
導覽講解
濟南濟西二手車市場
為室內外8萬平公尺的停車場內所有車輛實現精準定位,支援車輛位置監控,車輛區域化管控,非法出場預警,客戶智慧型找車等功能。該案例成為二手車市場及工業叉車監控領域的開創性案例,標誌著室內定位全面進軍工業4.0的巨大市場。
貴州醫科大學附屬醫院
通過室內定位網路系統的部署,對醫院手術室一層樓進行定位試點,總面積6000多平,對其中30多個手術室內的裝置實現定位監控,在後台系統可檢視主要裝置的詳細位置、使用資料、利用率,解決醫療裝置經常不知蹤跡,造成尋找麻煩、重複採購、資產浪費的現狀,實現醫院資產智慧型化管理,助推智慧型醫院建設。該試點為同型別定位技術在醫院的首個應用案例,效果得到院方高度好評,標誌著醫院全院範圍內的重要資產及人員位置精確監控進入應用階段。
iBeacon iBeacon前沿初探技術備忘
ibeacon是工作在藍芽4.0 ble 硬體下的一種協議,屬於藍芽4.0廣播協議的一種,通過該協議和乙個藍芽模組可以實現非接觸的身份識別 位置檢測等。ble的通訊包括兩個主要部分 advertising 廣告 和connecting 連線 廣告 advertising 是一種單向的傳送機制。想要被...
js N秒前,N分鐘前,N小時前,N天前,N月前
注意 我對原方法做了稍微改動,之前引數是時間戳,我改成了時間 然後在下面又轉換成了時間戳,因為我資料庫返回的就是時間 timeago datetime var minc diffvalue minute 計算時間差的分,時,天,周,月 var hourc diffvalue hour var day...
Java 幾分鐘前 幾小時前
由於專案需求,展示文章的建立時間格式為 幾分鐘前,幾小時前。補充 未超過一小時展示幾分鐘前 未超過24小時展示幾小時前 超過24小時展示實際時間。public string showlivinglist else if differencevalue 3600000 else map.put tim...