何谓蓝牙信标(Beacon)
Beacon 是建立在低功耗蓝牙协议基础上的一种广播协议,其工作方式是,配备有低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软体会根据该ID采取一些行动。它通常是放在室内的某个固定位置,借此向周围进行连续性广播,但是它不能和任何低功耗蓝牙主机进行连接。蓝牙Beacon终端一般用于室内定位导航和精准位置营销等用户终端,比如一些大型超市的室内定位导航和基于位置的推送商品优惠券等。蓝牙Beacon标准并非蓝牙技术联盟(Bluetooth SIG)所制订的标准,它被称为“虚拟标准”,是由大型供货商或企业集团为首,针对广泛的Beacon应用所正式提出的蓝牙应用规范
蓝芽版本演进
目前市场上主要有三个关键的虚拟标准
App 的iBeacon;
Google的Eddystone;
Radius Network的AltBeacon
以上三个虚拟标准,都使用低功秏蓝牙广播方法,将广播封包放在低功秏蓝牙频道37、38和39,以避免在2.4 GHz 工业、科技和医疗 (ISM)免执照波段上,与Wi-Fi流量冲突。
蓝牙Beacon工作原理
Beacon 会每隔一定的时间广播一个数据包到周围,作为独立的蓝牙主机(比如手机等)在执行扫描动作时,会间隔地接收到 Beacon 广播出来的数据包。同时,在主机接收到广播包时,其中会指示该广播包来自于哪一个蓝牙从机 MAC 地址(每个 Beacon 拥有唯一的 MAC 地址)的从机设备和当前的接收发送信号强度指示值RSSI为多少。这时候,如果手机上安装有Beacon对应的app,接收到该ID的app会根据该ID的设置条件采取相应的动作!
蓝牙Beacon应用
- 推送讯息
- 室内导航及定位
- 身份识别、签到及打卡等
- 传感器应用
如何在On Semiconductor提供之IDE加入EDDYSTONE信标功能
因为Beacon并不属于BLE标准之Profile,目前On提供之IDE并无Sample Code可以提供,本方案参考Bluetooth SIG之范例修改On IDE的"Peripheral_server_sleep"这只范例程式以达成Eddystone之信标功能,介绍如下 :
- 开启On-Semiconductor IDE并增加Peripheral_server_sleep这支范例程式;

- 编辑h可以在这边新增EDDYSTONE UUID、资料结构跟Message Name

- 编辑c的CustomService_Env_Initialize函式,这里可以加入Eddystone URL,在这范例我们以大大通网站为例;

- 编辑c的CustomService_ServiceAdd函式,这里可以送Request来要求增加客制Profile到Attribute资料库

- 编辑c的GATTM_AddSvcRsp函式,这边处理由GATT回应的增加服务到Attribute资料库的response

- 编辑广播的频率到2000毫秒

- 编译跟烧录到RSL10 EVB
- 打开手机使用Beacon scanner APP测试我们刚才编辑的Beacon程式

- Eddystone用于寻物之范例
参考资料 :
1.Bluetooth SIG---Eddystone : https://www.bluetooth.com/blog/bluetooth-technology-and-the-physical-web/
2.On Semiconductor RSL10 : https://www.onsemi.com/products/connectivity/wireless-rf-transceivers/rsl10-sip