材料
示例
介绍
BLE信标广播其身份到附近的蓝牙设备,使其他设备能够确定其相对位置,并根据信标广播的信息执行相应的操作。
信标的示例应用包括室内定位系统、基于位置的广告等。
根据其作为广播设备的定义,BLE信标不能连接,只能发送信息到蓝牙广告包中。
目前有几种BLE信标协议。Ameba BLEBeacon库支持iBeacon和AltBeacon协议。
步骤
确保你的手机上安装了以下蓝牙应用程序。这些应用将向你展示BW21-CBV-Kit发送的原始数据,并允许你与数据进行交互。
推荐的应用是nRF Connect,可以通过以下链接下载:
LightBlue是另一个可用的应用程序,虽然功能较少,但也可以使用:
-
打开示例代码:文件 -> 示例 -> AmebaBLE -> BLEBeacon
-
上传代码并在上传完成后按下BW21-CBV-Kit的重置按钮。
-
在你的手机上,打开蓝牙应用并扫描BW21-CBV-Kit广播的信标信号。
如果你处在有多个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进入蓝牙外设模式,之后它将开始广播包含信标数据的广告。
|