如何用Micro:bit发送BLE Beacon?及USB蓝牙适配器备选方案咨询
用Micro:bit发送BLE Beacon的实现方案
一、Micro:bit完全可以实现BLE Beacon发送
Micro:bit的MicroPython固件原生支持BLE功能,只要按照BLE广播规范构建数据包,就能被nrfConnect识别并解析,包括显示自定义本地名称和RAW数据。下面是具体代码示例和操作步骤:
代码示例(MicroPython)
from microbit import * import ble # 构建符合BLE规范的广播数据包(TLV格式) broadcast_data = bytearray([ 0x02, 0x01, 0x06, # 标志位:设置为LE可发现模式 0x0B, 0x09, ord('M'), ord('y'), ord('_'), ord('M'), ord('i'), ord('c'), ord('r'), ord('o'), ord('B'), ord('e'), ord('a'), # 完整本地名称:My_MicroBeacon 0x05, 0xFF, 0x00, 0x01, 0x02, 0x03 # 厂商自定义RAW数据,可根据需求修改 ]) # 初始化BLE并启动广播 ble.init() # 100为广播间隔(单位:毫秒),数值越小广播越频繁 ble.gap_advertise(100, broadcast_data) # 保持设备持续广播 while True: sleep(1000)
操作说明
- 将上述代码刷入Micro:bit设备
- 打开nrfConnect App,开启设备扫描
- 你会看到名为
My_MicroBeacon的设备,点击进入后,在「广播数据」板块可查看自定义的RAW数据
代码里的广播数据采用BLE标准的**TLV(类型-长度-值)**格式:
0x09是「完整本地名称」的标识字段,nrfConnect会直接解析并显示这个名称0xFF是「厂商自定义数据」字段,用来存放你需要的RAW内容,可自行修改字节值
二、备选方案:用USB蓝牙适配器发送Beacon
如果Micro:bit的方案始终无法正常工作,也可以使用支持BLE的USB蓝牙适配器实现,以Linux系统为例:
- 打开终端,进入蓝牙控制模式:
sudo bluetoothctl power on - 开启广播并设置名称和RAW数据:
advertise on advertise name "My_USBBeacon" advertise data 0x05FF00010203
Windows或macOS系统可使用LightBlue Explorer这类工具,可视化配置USB蓝牙适配器发送自定义广播数据包。
内容的提问来源于stack exchange,提问作者Ludwig
相关产品推荐
相关产品推荐

