一、什么是 iBeacon(本质定义)
iBeacon 是一种基于 BLE 广播的“近距离识别协议”,最早由 Apple 提出。
从技术本质看:
它 不是定位系统
不是连接协议
不建立连接
只做一件事:周期性广播身份信息
一句话概括:
iBeacon = 低功耗广播 + 唯一身份 + 信号强弱
二、iBeacon 的工作机制(工程版)
广播模型
Beacon(广播) ---> 手机 / 终端(扫描)
Beacon 定时广播(通常 100ms~1000ms)
终端被动接收
不需要配对、不需要连接
广播内容结构(简化)
| UUID | Major | Minor | TxPower | RSSI(接收端) |
前四项由 Beacon 发
RSSI 由接收端测得
三、iBeacon 能用来干什么(真实用途)
✅ 非常适合的场景
❌ 不适合的场景
四、iBeacon 常用数据字段解释(重点)
下面是你在 SDK / JS 中最常见的字段。
1️⃣ UUID(必有)
作用:区分“Beacon 体系”
128-bit 唯一标识
通常一个项目 / 一个系统用一个 UUID
fda50693-a4e2-4fb1-afcf-c6eb07647825
工程用法:
if (beacon.uuid !== PROJECT_UUID) ignore();
2️⃣ Major(必有)
作用:大区域 / 逻辑分组
常见含义:
楼层
场馆
区域
系统子模块
Major = 1001 → 一楼
Major = 1002 → 二楼
3️⃣ Minor(必有)
作用:单个 Beacon 的唯一编号
精确到“一个点”
通常与物理位置一一对应
Minor = 23 → 东门入口
4️⃣ TxPower(可选,常缺失)
理论含义:
Beacon 在 1 米处 的 RSSI(dBm)
工程现实:
经常不准
经常不广播
不同设备差异巨大
结论:
不应依赖 TxPower 做精确距离
5️⃣ RSSI(接收端测得)
最重要的字段
当前接收到的信号强度
单位:dBm(负数)
数值越大(越接近 0)→ 越近
-45 → 非常近
-60 → 1~3 米
-75 → 较远
-90 → 接近边缘
6️⃣ Accuracy(SDK 计算值)
含义:
SDK 基于 RSSI + TxPower 推算的“估计距离(米)”
工程建议:
仅用于 UI 展示
不用于核心逻辑
7️⃣ Proximity(部分 SDK)
Immediate / Near / Far / Unknown
这是对 RSSI 的再一次“粗分类”。
8️⃣ Heading(设备朝向)
来自磁力计 / IMU
与 Beacon 无直接关系
仅用于:
行走方向推断
UI 方向修正
五、常见字段关系图(理解很重要)
Beacon 发出:
UUID + Major + Minor + TxPower
↓
终端接收:
RSSI
↓
SDK 推算:
Accuracy / Proximity
六、iBeacon 使用时必须遵守的工程原则
① 把 iBeacon 当“识别系统”,不是定位系统
谁在附近 → 对
我在哪 → 勉强
精确坐标 → 错
② 使用“逻辑分区”而非“数学定位”
UUID → 系统
Major → 区域
Minor → 点位
③ 稳定性优先于精度
时间滤波
排序判断
状态锁定
七、典型工程架构(简化)
扫描模块
↓
Beacon 过滤(UUID / Major)
↓
RSSI 滤波
↓
最近 Beacon / 区域判断
↓
业务逻辑
八、一句话总结(工程真话)
iBeacon 是“低功耗的空间感知工具”,不是“测距仪”。
用对场景,它非常稳定;
用错预期,它永远不准。