利用BLE和Wi-Fi三角定位进行实时室内追踪


室内GPS使用困难?学习如何利用BLEWi-Fi 三角定位构建DIY实时室内追踪系统。准确追踪人、宠物或机器人,并在设备上实时查看位置。

室内导航在许多应用领域变得越来越重要——从可穿戴设备、室内追踪系统到宠物活动监测。它在家庭自动化和机器人等领域也发挥着关键作用。问题是GPS在室内根本不好用。雷达和激光雷达等技术可以解决这个问题,但它们成本高昂且日常使用时往往不切实际。

这时,一个更简单且经济的解决方案就派上用场了:BLE 三角定位Wi-Fi 三角定位。这些方法允许通过使用BLEWi-Fi信号,将其信号强度(RSSI,接收信号强度指示器)转换为距离信息,实现实时室内定位。

在典型的设置中,我们在房间或建筑的天花板或角落放置三个或更多锚点或信标。通过持续分析这些信标之间的信号强度,系统可以估算人员或物体在空间内的准确位置。

为了实现这一点,我们可以使用小型、紧凑的BLE或Wi-Fi板。一个很好的例子是Indusboard,它内置了Wi-Fi,还有加速度计和磁力计。这不仅有助于追踪移动,还提供实时方向信息。

信标数量取决于你希望系统的准确度以及你愿意花费多少。在很多情况下,使用四个信标效果更好。

将Indusboard单元放置在房间的四个天花板角落,而非墙上,可以提高准确性并控制成本。只需对代码做些微调,这种设置甚至可以帮助估算房间的深度和高度。

图1。室内定位的网页界面图1。室内定位的网页界面

在继续之前,让我们先了解三角测量方法是什么,以及它如何用于房间或房屋内部的实时监控和追踪,甚至跨多层楼。

三角测量方法通过利用来自多个固定点的Wi-Fi或蓝牙信号的角度和信号强度,精确确定物体的位置。

对于室内追踪,我们设置了特殊的接收器——如Wi-Fi、蓝牙或超宽频锚点——能够检测来自设备信号的到达角度(AoA)。通过沿这些角度方向画线,线条交汇点显示设备的精确位置。

由于该方法依赖几何结构而非仅限信号强度,因此更准确且稳定,非常适合在建筑物、仓库或工厂内部导航和跟踪。

假设你在房间的已知位置有3个WiFi信标(例如角落分别在(0,0)、(5,0)、(2.5,4)米)。你的手机(标签)会从每个(-60、-70、-65 dBm)接收RSSI。

RSSI转换为距离:使用类似“距离=10^(参考RSSI-测量RSSI)/(10 * 路径损耗因子)”这样的公式。

  • 参考RSSI(A):1米波段信号(例如,-59 dBm,测试)。

  • 路径损耗(n):室内信号的衰落方式(例如2.5)。

  • 示例:RSSI -60:距离 = 10^((-59 – (-60)) / (10*2.5)) = 10^(1/25) ≈ 1.1米。

  • 对所有3个都做:d1=1.1m,d2=2.5m,d3=1.8m。

绘制圆圈(三边形):想象每个信标周围的圆圈,半径为距离。

  • 圆1:中心(0,0),半径1.1米。

  • 圆2:中心(5,0),半径2.5米。

  • 圆3:中心(2.5,4),半径1.8米。

  • 你的位置是它们交汇的地方(通常一点)。

求交数学:对每个圆使用公式 (x – x1)^2 + (y – y1)^2 = d1^2。

  • 相减对以求解x/y:例如,x = (d1^2 – d2^2 + x2^2 – x1^2) / (2*(x2 – x1)) + y 项。

  • 对于多层(3D):加Z,使用第四信标或最小二方(平均最佳拟合)。

  • 示例结果:(2.0, 2.0)m。像Python/Excel这样的工具可以计算。

图2。定位与计算的三边测量方法图2。定位与计算的三边测量方法

这里,我们需要创建两个独立的代码:一个用于发送Wi-Fi信号并作为Wi-Fi热点的锚点/信标,另一个用于接收这些信号的标签。

锚点/信标应放置在房间的墙壁或天花板上——分别在两侧或不同楼层,具体取决于你是否想要多层定位系统。标签会贴在宠物的项圈、人的脖子上或机器人底盘上。这些标签将作为接收器,收集锚点所有Wi-Fi网络的信号,并利用前述三角测量方法计算位置。最后,位置信息可以实时显示在网页上。

锚代码方面,我们使用 ESP-NOW 库。该库允许多个ESP设备直接通信,无需互联网连接或外部Wi-Fi路由器。它甚至可以创建自己的连接网络。

在代码中,每个锚点应拥有唯一的设备ID(1、2、3、4等),以便标签识别它正在通信的锚点,并确定每个ID的距离。接下来,为每个信标设置广播地址,并通过ESP-NOW发送数据。

代码准备好后,上传到工业板上每个锚点。你需要至少3个锚点,但建议4个以提升精度。对于多层定位,你可以修改标签代码以包含楼层层级数据,但本例中我们重点关注单一房间定位

图3。Code snippet for beacon/Ancor device图3。Code snippet for beacon/Ancor device

除了使用 ESP-NOW外,我们还需要配置 Wi-Fi 的接入点模式,使每个锚点都能作为热点使用。这使我们能够连接网络并实时查看位置数据,实现在同一网络上的持续追踪。

Indusboard Coin内置磁力计加速度计,帮助实时测量移动速度和方向。磁力计用于获取方向数据和旋转度,使系统能够确定精确的方向。这使得定位和定位系统更加准确和安全,提供精准的定位和实时追踪,从而使我们的室内定位系统更加先进。

图4。代码片段标签图4。代码片段标签

关于标签代码,我们还创建了另一个版本,当Indusboard信标放置在房间天花板的角落时,不仅可以确定物体的二维位置,还能确定物体的深度和高度

图5。3D室内定位图5。3D室内定位

现在,使用3.3V电池或通过Indusboard Coin背面的JST连接器为锚点供电。将每个锚点放置在房间的角落,如图6所示。

接着,给标签供电并根据需要安装:比如作为人的项圈、宠物的项圈,或者固定在机器人上——基本上任何你想追踪的东西都可以。将你的笔记本电脑或手机连接到标签设备的Wi-Fi热点

打开浏览器,输入IP地址192.168.4.1。你现在可以实时查看数据,包括移动方向、房间内位置以及每个信标/锚点的距离。界面上的绿点会随着标签移动而移动,让你实时追踪它。

图6。实时室内追踪,支持BLE、Wi-Fi三角定位和Indusboard图6。实时室内追踪,支持BLE、Wi-Fi三角定位和Indusboard

            <!-- 非定向300*250按钮    17/09  wenjing  begin -->
            <!-- 非定向300*250按钮  end -->
        </div>



Source link

未经允许不得转载:紫竹林-程序员中文网 » 利用BLE和Wi-Fi三角定位进行实时室内追踪

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的