我正在開發一個系統在室內定位iPhone。我正在考慮使用基於信號強度的藍牙三角測量。是否可以在iOS 6中獲得藍牙MAC和/或信號強度?
- 是否有可能在iOS 6上獲得附近藍牙設備的信號強度?
- 是否有可能獲得手機的藍牙MAC(所以我可以識別手機,並從另一端做信號強度測量)
- 任何其他想法來計算基於藍牙三角測量的iPhone的位置?
這是一個餐廳類型的應用程序。餐廳想知道電話/應用程序正坐在哪個桌子上。
我正在開發一個系統在室內定位iPhone。我正在考慮使用基於信號強度的藍牙三角測量。是否可以在iOS 6中獲得藍牙MAC和/或信號強度?
這是一個餐廳類型的應用程序。餐廳想知道電話/應用程序正坐在哪個桌子上。
如果您的iOS設備支持藍牙LE,您可以輕鬆獲取其與傳感器站之間的RSSI以及用於識別設備的UUID。如果您在傳感器端使用正確的軟件,您也可以讀取MAC地址,但我不相信Core Bluetooth會以與RSSI和UUID相同的方式顯示此信息。
如果使用藍牙LE,有兩種方法可以實現三角測量。一種是通過從一系列放置的傳感器位置監測iPhone來進行三角測量,另一種是通過讀取它與通過已知點廣告的設備之間的信號強度來對iPhone本身進行三角測量。
後者可以通過在已知位置放置一系列LE外設並讓它們定期進行廣告來完成。在廣告信息中,您可以在該房間中標記該外圍設備的位置。 iPhone可以讀取這些廣告,使用-centralManager:didDiscoverPeripheral:advertisementData:RSSI:
委託方法從它們獲取RSSI信息,並對其位置進行三角測量。
前一種方法會涉及更多一點。這需要將iPhone本身置於廣告模式,使用新的iOS 6.0支持將iPhone設置爲藍牙LE外設。然後,傳感器位置可以通過這些廣告數據包將它們從RSSI接收到iPhone,以及爲手機生成的UUID。您也可以拿起手機的MAC地址,在傳感器節點上運行正確的軟件。然後,中央服務器需要將這些讀數結合起來以對iPhone的位置進行三角測量。
您可能需要嘗試使用傳輸強度來確定提供哪種分辨率。 RSSI信息很嘈雜,根據我的經驗,它似乎只能在正常傳輸電平下爲我的外設解析爲+ -30英尺。您可以通過多個傳感器站點和較低的傳輸強度來改善這一點。
很好的答案謝謝。儘管我有一個後續問題。在傳感器一側進行三角測量邏輯(手機正在廣告時)...如何識別手機?我需要在手機上運行我的應用程序,並將我的服務器連接到傳感器場以識別對方?如果服務器和應用程序不同意哪個手機(因爲範圍內可能有多個),手機的位置就沒有用處了。 – lms
@lms - 您可以在您的手機應用程序中生成UUID,當手機在運行應用程序時充當外設時,該UUID作爲廣告數據的一部分進行傳輸。你的傳感器網絡會看到這個UUID,並且可以將整個網絡的信號強度與該UUID相關聯,並且UUID對於iPhone應用是已知的,因爲它是一個廣播它的人。 –