【教程】小安派BW21-CBV-Kit——BLE Beacon

[复制链接]
查看33 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式

材料

示例

介绍

BLE信标广播其身份到附近的蓝牙设备,使其他设备能够确定其相对位置,并根据信标广播的信息执行相应的操作。

信标的示例应用包括室内定位系统、基于位置的广告等。

根据其作为广播设备的定义,BLE信标不能连接,只能发送信息到蓝牙广告包中。

目前有几种BLE信标协议。Ameba BLEBeacon库支持iBeacon和AltBeacon协议。


步骤

确保你的手机上安装了以下蓝牙应用程序。这些应用将向你展示BW21-CBV-Kit发送的原始数据,并允许你与数据进行交互。

推荐的应用是nRF Connect,可以通过以下链接下载:

LightBlue是另一个可用的应用程序,虽然功能较少,但也可以使用:

  1. 打开示例代码:文件 -> 示例-> AmebaBLE -> BLEBeacon

    image.png

  2. 上传代码并在上传完成后按下BW21-CBV-Kit的重置按钮。

  3. 在你的手机上,打开蓝牙应用并扫描BW21-CBV-Kit广播的信标信号。

image.png

如果你处在有多个BLE信标的环境中,可以点击条目展开,验证信标数据是否与代码中的数据一致。


代码参考

  • setRssi() 用于设置信标的接收信号强度指示器(RSSI)数据字段。规范要求该字段应为从信标测得的1米距离的信号强度。由于没有测量此项的方法,估算值设置为 -65dBm。
  • setMajor()setMinor() 用于设置两个数据字段。这些数据字段的用途由信标制造商定义,可以根据需要使用。
  • setUUID() 用于为信标分配一个唯一的标识符(UUID)。这是一个128位的数字,通常以十六进制字符串表示。它用于唯一标识每个信标,可以通过在线工具随机生成。

BLEBeacon库包括iBeacon和AltBeacon类。将第6行的 iBeacon替换为 altBeacon即可创建AltBeacon。数据字段大致相同,只有少许不同,更多细节请查看头文件。

  • BLE.init() 用于分配内存并准备Ameba启动蓝牙堆栈。
  • BLE.configAdvert() 用于配置蓝牙广告设置,我们将信标数据传递给此函数并将设备设置为不可连接。
  • BLE.beginPeripheral() 启动Ameba进入蓝牙外设模式,之后它将开始广播包含信标数据的广告。
用心做好保姆工作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则