我有一个应用程序,可以扫描另一部手机正在广播的特定 UUID,并测量它们之间的信号强度,并告诉您离它们是否越来越近或越来越远。我想添加一个方向箭头。我知道如果你有 3 个点,你可以使用三角测量,但我想用 2 个点得到一些稍微准确的东西。
有什么算法或建议有帮助吗?
我当前的想法(因为对于此应用程序的用例,一个节点将相对静止)是在行走时进行一些算法学习。就像如果你走得更远,箭头就会知道忽略这个方向,并在你走不同的方向时不断完善自己。
我找到了很多关于这个主题的研究论文,但我不是电气工程师,所以很容易迷失方向。我也读了这篇文章并了解了许多陷阱如何使用蓝牙测量两个iPhone设备之间的距离? https://stackoverflow.com/questions/3624945/how-to-measure-distance-between-two-iphone-devices-using-bluetooth
Thanks!
这样的解决方案极其复杂。
获取信号方向需要的数据远多于正常应用程序使用所能提供的数据。用户必须缓慢旋转手机,同时从各个方向采集大量样本。
使用下面发布的公式,可以在 12 米范围内获得相对距离,正如您所说的“越来越近”或“越来越远”。超过 12 米就会变得非常容易出问题。但它相当复杂,需要您使用长度足够的移动平均解。
您可以使用以下公式计算 RSSI 和距离之间的关系:
RSSI = -(10*n*log10(d) + A)
在这种情况下,
n = 路径损耗指数,因为您不需要精确的距离,只是一种检查距离更近还是更远的方法,您可以使用 2 作为值,我发现在大多数情况下这是最现实的。
A = 1米距离处测得的RSSI值,您需要提前测量该值以进行计算,但由于该值变化很大,因此只需使用-60dB之类的值即可。在大多数情况下,这也大约是平均水平。
因此,可以通过以下公式获得粗略猜测的距离(以米为单位):
distance = 10 ^ ((-RSSI - 60) / (10 * 2));
这不是很精确,但足以告诉您在有限范围内是否更近/更远。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)