connection - 是否可以使用连接范围 BLE?
问题描述
对于我们的一个项目,我正在寻找一种方法,只让中心(本机 iOS 或 Android 应用程序)在定义的连接范围内(外围设备周围的距离)与外围设备连接。
我知道 BLE 不是为距离测量而设计的,但我希望有一种可靠的方法来区分距离外围 < 2 米的中心和距离外围 > 3.5 米的中心。这意味着我不需要测量准确的距离。
对mentoin 来说很重要的一点是,我们的外围设备可以位于“开放区域”的情况下,也可以位于被墙壁或混凝土包围的情况下,例如建筑物的入口层或停车场。
另一个可能的问题是中心可以在车内,但如果是这种情况,相关外围设备的所有中心都在车内。当然也可以是不同的车。
请注意,连接范围内最多有 1 个外围设备。
在我们当前的版本中,我们开发了一个公式,它使用接收到的 RSSI 强度来估计距离。不幸的是,我们不能让这个工作足够可靠。也许我们需要使用另一种公式或校准方法或其他方法,在过去的 6 个月中,我们确实尝试了很多东西。
具体问题是:技术上是否可以实现上述目标,如果可以,实现上述目标的方法是什么?我们对特定的 BLE 天线或 BLE 天线的特定设计外壳或任何需要的东西开放。当我们需要为每个外围设备构建校准应用程序或特定硬件来校准我们的外围设备时,这也是可以的,因此我们对任何解决方案都持开放态度,只要它工作可靠!
当需要更多信息来给出答案时,请让我知道缺少什么,我将完成信息。
解决方案
不幸的是,就像您说的那样,您不能使用蓝牙或低功耗蓝牙进行短距离/范围测量。蓝牙并不是这样设计的。您希望获得 2-3.5 之间的精确可靠测量,这对于 BLE 来说太小了,无法做到。我知道这不是您想听到的,但我已经尝试过,并且在此之前浪费了很多个月。
如果您真的需要继续沿着这条路走下去,我唯一可以建议的是,为了获得更可靠的结果,您将需要许多同时测量 RSSI 的设备,然后这些设备需要与每个设备通话其他以获得平均 RSSI 测量值。您可能还想根据您获得的平均读数来配置 Tx 功率,即设备越接近,您会降低扫描设备和广告设备的 Tx 功率。最后,如果您打算使用非 Android 和非 iOS 设备进行扫描,则可以使用定向天线,但如果您可以更改的唯一天线是外围设备的天线,这将很棘手。
推荐阅读
- mysql - knex 中的动态查询
- c# - 在 Xamarin 中多次接收 firebase FCM 消息
- reactjs - 更新所有反应子组件
- python - 我的脚本有这个问题:TypeError: 'FirefoxWebElement' object is not iterable
- dart - 使用来自其他本地 dart 项目的 pub global activate --source 路径
- angular - Angular6:Mat-tree-node 选择/点击事件实现
- c++ - 限制输入并再次询问用户正确的范围
- vuejs2 - 无法使用 Element UI 和 iView UI Toolkit 在 Laravel 5.7 和 Vue 2 项目中加载字体
- java - XSL:无法在对方法的调用中转换参数/返回类型
- python - 如何在 Django 中查看 pdf 文件?