打印
[STM32WBA]

【NUCLEO-WBA55CG测评】蓝牙Beacon测试

[复制链接]
60|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
苹果的iBeacon开启了蓝牙低功耗设备精准定位的应用场景,谷歌对应的制定了Eddystone蓝牙信标(Beacon)标准,定义了BLE(Bluetooth Low Energy)近距离信标消息的格式,并描述了几种不同类型的帧,可以单独或组合使用,以创建可用于各种应用的信标。
以下是Eddystone信标包含的几种类型:
  • Eddystone-UID:这种类型的帧广播一个不透明的、唯一的16字节信标ID,由10字节的命名空间和6字节的实例组成。这个信标ID可以用于将设备映射到外部存储中的记录。命名空间部分的ID可以用于分组特定的信标,而实例ID则标识组内的个别设备。
  • Eddystone-URL:这种类型的帧使用压缩编码格式广播URL,以便在有限的广播数据包中容纳更多的信息。一旦解码,URL可以被任何有互联网访问权限的客户端使用。
  • Eddystone-TLM(Telemetry):这种类型的帧用于广播信标本身的遥测(健康和状态)数据,如电池电量、温度以及一个运行计数器,用于统计广播的数据包数量。


在 WBA55CG的官方例程中,提供了BLE_Beacon应用,可以用于蓝牙Beacon的测试。

一、蓝牙Beacon类型配置
在app_conf.h中,有关于蓝牙Beacon的详细配置,类型配置如下:
/**
* Beacon selection
* Beacons are all exclusive
*/
#define CFG_EDDYSTONE_UID_BEACON_TYPE   (1<<0)
#define CFG_EDDYSTONE_URL_BEACON_TYPE   (1<<1)
#define CFG_EDDYSTONE_TLM_BEACON_TYPE   (1<<2)
#define CFG_IBEACON                     (1<<3)

//#define CFG_BEACON_TYPE 必须设置为以下值之一:
//CFG_EDDYSTONE_UID_BEACON_TYPE
//CFG_EDDYSTONE_URL_BEACON_TYPE
//CFG_EDDYSTONE_TLM_BEACON_TYPE
//CFG_IBEACON

#define CFG_BEACON_TYPE                 (CFG_IBEACON)
分别对应如下的类型:
  • CFG_EDDYSTONE_UID_BEACON_TYPE:Eddystone-UID类型,广播16字节信标ID。

  • CFG_EDDYSTONE_URL_BEACON_TYPE:Eddystone-URL类型,广播URL。

  • CFG_EDDYSTONE_TLM_BEACON_TYPE:Eddystone-TLM类型,提供关于设备的信息,如电池电量、温度等。

  • CFG_IBEACON:苹果iBeacon设备模拟





修改了对应的类型定义后,重新编译烧录即可。


二、蓝牙Beacon实测
1. CFG_IBEACON测试
将 CFG_BEACON_TYPE 设置为CFG_IBEACON,然后编译烧录:




从串口监听中,可以看到Ibeacon模式打开,广播启动:


然后,在手机上安装Beacon Scanner,进行检测:


当手机和NUCLEO-WBA55CG较近时,距离直接为0:


随着手机离开NUCLEO-WBA55CG,距离组件变大,RSSI和TX也会变化:






最远能达到多少探测距离没有测试,后续有空再进行。

2. CFG_EDDYSTONE_UID_BEACON_TYPE测试
将 CFG_BEACON_TYPE 设置为CFG_EDDYSTONE_UID_BEACON_TYPE,并在eddystone_beacon.h中设置NAMESPACE_ID:
/* Exported constants --------------------------------------------------------*/
#define ADVERTISING_INTERVAL_IN_MS  (1000)
#define CALIBRATED_TX_POWER_AT_0_M  ((uint8_t) (-22))
#define NAMESPACE_ID                'H', 'o', 'n', 'e', 's', 't', 'Q', 'i', 'a', 'o'
#define BEACON_ID                   0, 0, 0, 0, 0, 1
#define URL_PREFIX                  HTTPS
#define PHYSICAL_WEB_URL            "bbs.21ic.com"
#define NORMAL_TIME_ADV             10000000
#define TLM_TIME_ADV                1000000
顺带把 URL_PREFIX 也给设置为 "bbs.21ic.com"。
然后编译烧录,从串口监听中,可以看到UID模式启动:


通过手机Beacon Scanner,可以搜索到:


在手机Beacon Scanner中,NamespaceID显示为16进制,转换一下:


可以看到为前面设置的对应的ID信息。
另外,InstancesID信息,也对应设置的BEACON_ID 信息。

3. CFG_EDDYSTONE_URL_BEACON_TYPE测试
将 CFG_BEACON_TYPE 设置为CFG_EDDYSTONE_URL_BEACON_TYPE,然后编译烧录。
从串口监听中,可以看到URL模式启动:


通过手机Beacon Scanner,可以搜索到:


其中显示的网址 https://bbs.21ic.com,正是前面设置的URL_PREFIX和PHYSICAL_WEB_URL。

4. CFG_EDDYSTONE_TLM_BEACON_TYPE测试
将 CFG_BEACON_TYPE 设置为CFG_EDDYSTONE_TLM_BEACON_TYPE,然后编译烧录。
从串口监听中,可以看到TLM模式启动:


通过手机Beacon Scanner,可以搜索到:


不过,暂时未知具体原因,这里没有显示未TLM,和URL呈现一样,其中包括温度和电量的信息。


从这次的测试可以得知,基于STM32WBA5xCG,可以构建各种合适的Beacon硬件设备,例如ID认证、快捷网址、信息上报等,适合多种实际应用场景。


15296767c84084a21.png (63.88 KB )

15296767c84084a21.png

739926767ca93dca49.png (217.86 KB )

739926767ca93dca49.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

98

帖子

2

粉丝