如何验证树莓派3上Microchip RN4871 BLE模块的信标广播功能?
嘿,我来帮你搞定RN4871信标的验证问题!你已经通过UART配置了模块的广播参数,接下来可以用安卓应用或者树莓派3来确认它是否在正常周期性广播信标数据包,具体方法如下:
方法一:使用安卓应用验证
安卓端有很多专门的BLE扫描工具,推荐两个好用的:
- nRF Connect:这是Nordic官方的工具,功能很全,能清晰看到BLE设备的广播数据
- Beacon Scanner:专门针对信标优化的工具,能直接识别常见信标类型(比如iBeacon、Eddystone)
具体操作步骤:
- 在应用商店安装上述任意一款APP,打开后开启手机蓝牙
- 启动扫描功能,等待几秒后找到你的RN4871设备(可以通过MAC地址或者你之前可能设置的设备名称来识别)
- 验证周期性广播:如果设备条目持续出现在扫描结果中(即使你不连接它),说明模块在周期性广播
- 验证广播内容:以nRF Connect为例,点击设备条目查看广播详情,你可以找到对应
NB,09,656667配置的字节——0x65、0x66、0x67,对应ASCII的'e'、'f'、'g',确认这些字节存在于广播数据中
方法二:使用树莓派3验证
树莓派3自带蓝牙模块,用系统自带的命令行工具就能完成验证,步骤如下:
- 先确保蓝牙模块开启:
bluetoothctl power on - 扫描BLE设备并查看重复广播:
加上hcitool lescan --duplicates--duplicates参数后,会显示每一次广播的条目,如果你的RN4871设备的MAC地址持续重复出现,说明它在周期性广播信标包 - 抓取并分析广播数据包(更精准的验证):
先开启抓包:
然后在另一个终端窗口启动扫描,你会看到大量原始蓝牙数据,过滤你的RN4871设备MAC地址对应的数据包,就能找到包含0x65、0x66、0x67字节的广播内容,和你用hcidump --rawNB命令配置的一致 - 也可以用更直观的
bluetoothctl交互工具:
进入交互模式后输入bluetoothctlscan on,同样能看到设备持续出现在扫描结果中,说明广播正常
另外补充下你之前配置的命令对应的效果,方便你验证时对应:
SS,20:设置广播间隔为20×625μs=12.5ms,也就是模块每12.5ms发送一次广播包SC,2:设置广播模式为可发现但非连接,符合信标的典型需求NB,09,656667:设置自定义广播数据,长度为9字节,后续的656667是十六进制字节(0x65、0x66、0x67),对应ASCII字符'e'、'f'、'g'
这样不管用安卓还是树莓派,都能确认你的RN4871是不是在正常周期性广播信标包啦~
内容的提问来源于stack exchange,提问作者md.jamal
相关产品推荐
相关产品推荐

