zoukankan      html  css  js  c++  java
  • 通过蓝牙的RSSI计算两端之间的距离(一维定位)

    本实例只适用于一维定位,其他定位方式可以参考:https://refined-x.com/2019/04/01/IBeacon-Location-Technology/。

    计算公式:

    d = 10^((abs(RSSI) - A) / (10 * n))

    其中:

    d - 计算所得距离

    RSSI - 接收信号强度(负值)

    A - 发射端和接收端相隔1米时的信号强度

    n - 环境衰减因子

    转换为java 代码,只是做了公式计算处理,参数校验还没有:

     public double getDistByRSSI(int rssi) {
            int iRssi = Math.abs(rssi);
            double power = (iRssi - 50) / (10 * 2.0);
            return Math.pow(10, power);
        }

    传入RSSI值,返回距离(单位:米)。其中,A参数赋了50,n赋了2.0。

    由于所处环境不同,每台发射源(蓝牙设备)对应参数值都不一样。按道理,公式里的每项参数都应该做测试获得。

    我这里是用的微信小程序测试获取RSSI值,再代入改方法。为了验证结果我用卷尺测量最终的结果。误差大概在几十厘米左右,微信小程序的代码一搜有很多,这里就不放了。

    甘于平凡,做一个甘于平凡的人,菜米油盐,生老病死。
  • 相关阅读:
    2021上半年下午第二题
    21年软件设计师上半年下午试题一
    软考下午第三题-用例图和类图
    类图
    用例图-包含、扩展、泛化
    软考下午题二------数据库设计
    软件设计师下午题-数据流图
    IP练习题
    2020软件工程作业02
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/rolayblog/p/15599055.html
Copyright © 2011-2022 走看看