先说结论
蓝牙BLE身份识别的核心逻辑就一条:通过BLE信号强度(RSSI)估算手机/工牌与读卡器的距离,距离在阈值内就放行。听起来简单,但实际落地坑很多:RSSI飘移、蓝牙版本兼容性、定位精度不够、手机没电开不了锁——这些问题处理不好,产品体验直接崩掉。中高端门禁推荐Nordic nRF52832做主控,配合UWB(超宽带)定位精度可达10cm;性价比方案用BLE+RSSI三角定位,精度约1-3米。
BLE身份识别能做什么?
蓝牙身份识别的核心应用就两个:门禁控制(开门)和考勤签到(记录)。但这两个场景的技术要求差异很大:
门禁场景的特点:
- 需要精准判断"门外1米"这个范围,太远容易误开,太近用户要贴脸
- 响应速度要快(<500ms),用户在门前等太久体验差
- 安全性要求高,需要加密配对、身份验证
考勤场景的特点:
- 定位精度要求相对宽松,室内3-5米范围能区分不同区域即可
- 可以接受几秒的延迟(打卡不需要秒开)
- 更关心的是"几点在哪个区域",而不是"有没有在门口"
核心技术原理:RSSI定位是怎么回事?
BLE定位的基础是RSSI(Received Signal Strength Indicator,接收信号强度指示)。RSSI值越大,说明信号源越近;RSSI值越小,说明信号源越远。
// RSSI转距离(简化模型)
// tx_power:1米处的RSSI值(芯片出场校准值,通常是-59dBm)
// n:环境衰减因子(室内1.5-3.0,开放空间约2.0)
int calculate_distance(int rssi, int tx_power, float n) {
return (int)pow(10, (tx_power - rssi) / (10.0 * n));
}
但RSSI定位有几个致命问题:
- 信号不稳定:同一位置RSSI值可能上下波动±5dBm,换算成距离就是几米的误差
- 人体遮挡:手机放口袋里、被身体遮挡时,RSSI衰减可达10dBm
- 多径效应:室内墙壁、金属物体会反射信号,叠加到直达信号上造成干扰
- 设备差异:不同手机的BLE发射功率和天线增益不一致,同一位置RSSI值也不同
这就是为什么纯RSSI定位精度通常只有3-5米,做门禁"精准到人"根本不够。
门禁方案:高精度方案对比
方案1:BLE + RSSI阈值(入门级)
这是最简单的方案:设定一个RSSI阈值(比如-70dBm),手机信号强度大于这个值就开门。
优点:成本极低,一个BLE读卡器就搞定
缺点:精度差,误差可达2-5米,不适合需要精准门禁的场景
推荐芯片:Nordic nRF52832
方案2:BLE + 方向天线(进阶级)
在读卡器上安装定向天线,只有正对门方向的信号才被接收,侧面和后面的信号被抑制。这种方案可以把有效识别区域限制在门前120度范围内。
方案3:BLE + UWB融合(旗舰级)
这是目前最精准的蓝牙定位方案。BLE负责唤醒和身份认证,UWB(超宽带)负责精准测距。
UWB的测距原理:
通过发送极窄的脉冲信号(宽度纳秒级),测量信号从发射到返回的时间(ToF),精度可达10-30cm。
BLE+UWB融合方案的优势:
- BLE:身份识别、低功耗唤醒
- UWB:精准测距(10cm精度)、抗多径干扰
推荐芯片组合:
- BLE:Nordic nRF52832
- UWB:Qorvo DW1000 / Decawave DWM1001
成本估算:单读卡器成本约300-800元,适合高端写字楼、医院、银行。
| 方案 | 定位精度 | 成本(单读卡器) | 安全性 | 适用场景 | 推荐指数 |
|---|---|---|---|---|---|
| BLE纯RSSI阈值 | 2-5米 | 80-150元 | 中 | 办公室门禁、仓库 | ⭐⭐⭐ |
| BLE+定向天线 | 1-2米 | 120-200元 | 中 | 走廊门禁、闸机 | ⭐⭐⭐⭐ |
| BLE+UWB融合 | 10-30cm | 400-800元 | 高 | 高端门禁、金融场所 | ⭐⭐⭐⭐⭐ |
| BLE+NFC双模 | N/A(刷卡) | 150-300元 | 高 | 兼容工牌场景 | ⭐⭐⭐⭐ |
考勤方案:区域定位怎么实现?
考勤系统的定位需求和门禁不同——不需要精准到门口,需要的是区分不同区域(比如"在A栋3楼"而不是"在门口")。
区域考勤的BLE方案
原理:在每个考勤区域部署一个或多个BLE信标(Beacon),员工手机检测到哪个区域的信标信号最强,就判定在哪个区域打卡。
// 区域判定算法
int determine_zone(ble_beacon_t beacons[], int count) {
int best_rssi = -100;
int best_zone = ZONE_UNKNOWN;
for (int i = 0; i < count; i++) {
// 忽略RSSI低于阈值的信标(太远,不算在区域内)
if (beacons[i].rssi > -75) {
// 取最强的RSSI对应的区域
if (beacons[i].rssi > best_rssi) {
best_rssi = beacons[i].rssi;
best_zone = beacons[i].zone_id;
}
}
}
return best_zone; // 返回判定区域
}
安全设计:门禁考勤怎么防伪造?
BLE身份识别的最大安全隐患是"中间人攻击"和"RSSI欺骗"。
中间人攻击(MITM)
攻击者用自己的手机模拟目标设备,伪造身份信息骗过读卡器。
防范措施:
- BLE配对时启用LE Secure Connections(安全级别4)
- 读卡器和手机之间建立加密连接
- 手机端做应用层身份验证(Token、证书)
RSSI欺骗
攻击者用高功率BLE发射器伪造强RSSI信号,让读卡器误以为攻击者在门口。
防范措施:
- 使用UWB测距(UWB信号很难伪造)
- 多读卡器联合判定(至少2个读卡器同时检测到才开门)
- 信号到达角(AoA)定位,增加攻击难度
硬件选型推荐
门禁读卡器主控
| 芯片 | BLE版本 | 特点 | 模块价格 |
|---|---|---|---|
| Nordic nRF52832 | 5.0 | SDK成熟,低功耗,多连接 | 18-25元 |
| Nordic nRF52840 | 5.3 | 旗舰性能,支持UWB | 35-50元 |
| TI CC2640R2 | 4.2 | 工业级稳定性 | 20-30元 |
考勤信标(Battery Powered)
| 芯片 | 电池 | 续航 | 模块价格 |
|---|---|---|---|
| Nordic nRF51822 | CR2032 | 1-2年 | 8-12元 |
| Telink TLSR825x | CR2032 | 2-3年 | 5-8元 |
| Nordic nRF52832 | CR2477 | 3-5年 | 12-18元 |
落地成本参考(部署100人小型办公室)
| 项目 | 数量 | 单价 | 小计 |
|---|---|---|---|
| BLE门禁读卡器 | 3台 | 200元 | 600元 |
| 考勤BLE信标 | 6个 | 30元 | 180元 |
| 云端服务(年费) | 1套 | 3000元 | 3000元 |
| 门禁锁具 | 3套 | 150元 | 450元 |
| 安装调试 | 1项 | 1000元 | 1000元 |
| 合计 | — | — | 约5230元 |
常见问题Q&A
Q1:手机没电了,BLE门禁还能开吗?
纯BLE方案手机没电就开不了。建议搭配NFC卡/实体门禁卡双模,BLE+IC卡或BLE+NFC组合。这是目前主流门禁的标准配置,成本增加约50元/台。
Q2:BLE门禁的RSSI阈值怎么调试?
阈值调试需要在实际安装环境里做。用手机APP(如nRF Connect)在目标位置测RSSI值,记录多个测量点的数据,取中位数作为基准。建议阈值比实测中位数低5-10dBm,留一定余量应对信号波动。
Q3:BLE考勤系统会被GPS欺骗吗?
BLE考勤是基于蓝牙信标定位,GPS欺骗对BLE考勤无效。这是BLE考勤相对于GPS考勤的优势——蓝牙信标部署在室内,位置固定,攻击者难以伪造室内蓝牙信号。
Q4:考勤系统需要员工安装APP吗?
有两种模式:
- APP模式:员工装APP,APP扫描BLE信标并上报云端。体验好,但推广难。
- Beacon模式(免APP):员工佩戴BLE工牌(卡片式),信标持续广播,考勤读卡器接收并记录。推荐用这个方案,员工零操作,后台自动记录。
Q5:BLE门禁的并发性能怎么样?
BLE是点对点通信,一个读卡器同一时间只能和一个设备通信。但门禁场景"同时开门"的需求极少,并发性能不是瓶颈。真正需要关注的是BLE连接建立速度(Nordic nRF52832约50-100ms)。