iBeacon 服务

更新时间:2026-04-08 09:59:13LLM 副本以 Markdown 格式查看下载 PDF

概述

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 功能设置

iBeacon 配置接口(CMD-0xA8)

  • 适用固件:泰凌微基础类通用固件。
  • 支持单独发 iBeacon 广播或交替发 iBeacon 广播和配网广播功能。单独发 iBeacon 广播一般用于防丢功能,交替发 iBeacon 广播一般是用于唤醒 app。如 SOS 报警,靠近解锁功能。
  • 模组不记忆单独 iBeacon 的配置,重启不会继续之前的动作。模组会记忆交替发 iBeacon 的配置到 Flash,重启后会继续之前的动作。
  • 解绑或重置设备后,会重置 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_intervaltimeout 字段填 0x00 即可,模组不做解析。
    • 0x01:使用自定义配置,见 ibeacon_intervaltimeout 字段。
  • ibeacon_interval:低功耗下的 iBeacon 广播间隔为 ibeacon_interval × 100 ms,可设置范围 100 ms ~ 2 s。非低功耗固定为 100 ms。

    开启 iBeacon 后的广播间隔补充说明:

    • 非低功耗状态下,广播间隔为 100 ms。
    • 低功耗状态下,若使用默认配置,广播间隔为 500 ms,超时时间为5S。
    • 该广播间隔与 CMD-0xE2 设置的广播间隔互相独立。打开 iBeacon 的时候,低功耗状态以 ibeacon_interval 设置的间隔进行广播。
    • 模式1打开,以 ibeacon_interval 间隔广播 iBeacon 内容。
    • 模式2打开,以 ibeacon_interval 间隔交替广播 iBeacon 广播和涂鸦标准广播内容。每个广播切换间隔(1 s)会进行涂鸦标准广播和 iBeacon 广播的广播内容切换,广播切换间隔不可配置,所以 ibeacon_interval 应小于 1 s。
  • timeout:iBeacon 超时关闭时间,单位 1 s,即 1 × timeout 秒后超时。可设置范围 1 s ~ 3600s,当 timeout 为 0xFFFF 时,就一直不会超时。

示例

  • 单独的 iBeacon:55 AA 00 A8 00 06 01 00 00 00 00 00 AE
  • 交替广播的 iBeacon:55 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:设置成功。
  • 其他:设置失败。