[英]How to limit the advertising range of a beacon?
是否可以限制信标的范围,以便只有特定近距离(或接近度)内的设备才能识别并连接到信标? 让我们说例如0.5米区域以外的设备不应该能够看到或连接到信标。 我正在使用iOS设备作为灯塔。 在Apple的CoreLocation
API中, CLBeaconRegion类中有一个名为peripheralDataWithMeasuredPower的方法,它说:
peripheralDataWithMeasuredPower:检索可用于将当前设备通告为信标的数据。
(NSMutableDictionary *)peripheralDataWithMeasuredPower:(NSNumber *)measuredPower
参数:
measuredPower :设备的接收信号强度指示器(RSSI)值(以分贝为单位)。 该值表示距离一米远的信标的测量强度,并在测距期间使用。 指定
nil
以使用设备的默认值。
这可以用来限制信标的范围吗? 如果是,我无法理解如何确定为measurePower
参数设置的值? 他们想说的是什么...value represents the measured strength of the beacon from one meter away..
如果这是一个非常基本的问题,请原谅。 我最近开始iOS开发,非常感谢您的帮助。 谢谢。
不幸的是,没有特殊硬件就没有简单的方法来调整iBeacon的范围。
您提到的功率场只是iBeacon传输的校准值。 它不会影响iBeacon的实际物理无线电范围。 如果距离50米的iPhone可以看到发射器,那么改变功率场值将不会改变这一点。 它唯一做的是改变是校准常数,它是iOS软件内部距离估计算法(用于精度和接近场)的输入。 改变功率场将影响API返回的估计距离,但不会改变首次检测到iBeacon的实际距离。
改变标准蓝牙iBeacon的发射功率几乎是不可能的 。 从理论上讲,你可以使用金属屏蔽在发射器周围构建一个“法拉第笼”来静音它的功率,但我的经验是它不是很有效,而且很容易受到屏蔽中的微小缺陷的影响。 如果你想改变发射功率,你必须让别人建立自定义硬件。
软件替代方案是使用测距API在iBeacon可见时跟踪iBeacon,并且仅在估计距离足够接近时执行操作,比如说你建议的0.5米。 这很有效 - 只在前台。
如果您需要在近距离实际在后台唤醒您的应用程序,这将无法正常工作。 您可以做的最好的事情是让监控API在首次检测到iBeacon时唤醒您的应用,然后向用户发送通知并开始测距。 如果用户选择将应用程序带到前台(50米处),您可以继续监控,然后在0.5米处执行所需的操作。 如果用户没有选择将应用程序带到前台,iOS在暂停应用程序之前只会给你大约5秒的时间来继续测距。 在这段时间内,距离不太可能从50米变为0.5米。
对于我研究过的大多数BLE芯片,通常至少有四种传输功率级别设置可用于限制广告范围。
德州仪器CC2541(用于其SensorTag开发设备)和CC2540具有+ 4,0,-6和-23作为其功率电平选项。 但是,在SensorTag中更改它确实需要重新编译固件。 按原样,所提供的固件仅在一个地方提到功率电平,但这只是一个广播的值,以通知任何中央收听者信标有多大 - 这样中央设备可以更好地计算基于接收的估计范围信号强度(RSSI)。 必须在固件中添加一条额外的线路才能实际更改传输功率。 例如:
HCI_EXT_SetTxPowerCmd( HCI_EXT_TX_POWER_0_DBM );
基于此,iOS设备上应该有两个位置可以设置功率级别:一个用于通知监听器级别是什么,另一个用于实际更改BLE芯片的真实传输功率。 但是,期望这些值仅限于少数列举的选项,这些选择可能会或可能不会满足您的实际范围需求。
(SensorTag的-23设置可能适用于0.5米的检测范围。但如果您希望SensorTag始终进行广告宣传,则需要额外更改固件 。)
您是否想看看proximity
属性是否有用? 来自苹果文档 :
CLProximity反映与信标相对距离的常量。
typedef {
CLProximityUnknown,
CLProximityImmediate,
CLProximityNear,
CLProximityFar
} CLProximity;
我也会尝试尝试将proximity
与accuracy
和rssi
相结合。
从灯塔到灯塔,它会有所不同。 如果您使用Radius Networks的信标,则它们具有发射功率设置,使您可以基本上限制信标无线电广播到远程范围的能力。 我不知道其他品牌是否拥有它,但大部分都不是我所见过的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.