iBeacon 在 iOS 7 中被引入的位置感知特性。它不是物理硬件,而是用于为我们描绘的物理 “信标” 技术提供动力的语言。由 Apple 开发,iOS 原生支持,并与移动操作系统深度集成。
其工作方式是,配有低功耗蓝牙(Bluetooth Low Energy,BLE)通信功能的设备使用 Bluetooth LE 技术向周围发送有关自身的识别信息,接收到该信息的应用软件会根据信息采取一些行动。
当手机进入信号范围时,能接收到信号源广播的 ID(UUID + Major + Minor),App 通过解析接收到的 ID 向用户推送通知或者其他资讯。
以下为 iBeacon 特性的日常应用场景:
| 场景 | 说明 |
|---|---|
| 查找手机 | 设备触发 iBeacon 广播唤醒 app 播放声音,可用于近距离查找手机 |
| 室内定位 | 启用区域测距,计算 iBeacon 的 RSS 信号强度来推测物品位置,从而实现室内定位功能 |
| 门锁解锁 | 注册地理围栏服务,配合 iBeacon 唤醒。可在进入围栏区域自动开锁,离开围栏区域自动上锁 |
| 防身报警 | 遇到强盗等危害人身安全时触发报警器。设备能大声报警,同时激活手机 app 上报 SOS 求救信息,比较适合女性人身安全 |
| 食物探针 | 探针检测到食物中危险元素,探针主动触发 iBeacon 广播实现 app 激活并进行危险告警 |
| 户外 SOS 急救 | 支持 iBeacon 的手电筒、手表等设备。在用户遭遇危险时由用户触发 iBeacon 广播,附近的手机接收到后立刻激活 app 并上报 SOS 求救信息 |
| 信标数据接收 | 可在商场、公共场所等地方设置多个 iBeacon 信标,用户进入或者离开触发 app 事件,从而进行广播等一系列商业活动 |
iBeacon 功能协议指令:
| 命令字 | 命令说明 |
|---|---|
| 0xA8 | iBeacon 功能设置 |
MCU 发送
| 序号 | 长度(byte) | 字段 | 说明 |
|---|---|---|---|
| 0 1 |
2 | 帧头 | 0x55 0xAA |
| 2 | 1 | 版本号 | 0x00 |
| 3 | 1 | 命令字 CMD | 0xA8 |
| 4 5 |
2 | 数据长度 | 0x00 0x06 |
| 6~11 | 6 | CFG | 见下表 |
| 12 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
CFG 格式:
| 1 字节 | 1 字节 | 2 字节 | 2 字节 |
|---|---|---|---|
| 1 | 2 | 3~4 | 4~5 |
| operation | config_type | ibeacon_interval | timeout |
operation:
0x00:关闭单独的 iBeacon。0x01:模式 1,打开单独的 iBeacon。0x02:关闭交替广播的 iBeacon。0x03:模式 2,打开交替广播的 iBeacon。config_type:
0x00:使用默认配置,ibeacon_interval 和 timeout 字段填 0x00 即可,模组不做解析。0x01:使用自定义配置,见 ibeacon_interval 和 timeout 字段。ibeacon_interval:低功耗下的 iBeacon 广播间隔为 ibeacon_interval × 100 ms,可设置范围 100 ms ~ 2 s。非低功耗固定为 100 ms。
开启 iBeacon 后的广播间隔补充说明:
0xE2 设置的广播间隔互相独立。打开 iBeacon 的时候,低功耗状态以 ibeacon_interval 设置的间隔进行广播。ibeacon_interval 间隔广播 iBeacon 内容。ibeacon_interval 间隔交替广播 iBeacon 广播和涂鸦标准广播内容。每个广播切换间隔(1 s)会进行涂鸦标准广播和 iBeacon 广播的广播内容切换,广播切换间隔不可配置,所以 ibeacon_interval 应小于 1 s。timeout:iBeacon 超时关闭时间,单位 1 s,即 1 × timeout 秒后超时。可设置范围 1 s ~ 3600s,当 timeout 为 0xFFFF 时,就一直不会超时。
示例
55 AA 00 A8 00 06 01 00 00 00 00 00 AE55 AA 00 A8 00 06 03 00 00 00 00 00 B0模组回复
| 序号 | 长度(Byte) | 字段 | 说明 |
|---|---|---|---|
| 0 1 |
2 | 帧头 | 0x55 0xAA |
| 2 | 1 | 版本号 | 0x00 |
| 3 | 1 | 命令字 CMD | 0xA8 |
| 4 5 |
2 | 数据长度 | 0x00 0x01 |
| 6 | 1 | State | 返回的状态值 |
| 7 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
State 返回值说明:
0x00:设置成功。该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈