我正在开发一种在室内定位iPhone的系统。我正在考虑使用基于信号强度的蓝牙三角测量。
这是一个餐馆类型的应用程序。餐厅想知道电话/应用程序在哪个桌子上。
答案 0 :(得分:8)
如果您的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英尺。您可以通过多个传感器站和较低的传输强度来改进这一点。