健身房AB门管控方案:IoT门禁对接与异常告警模块设计思路
24小时无人值守健身房普遍采用AB互锁门禁实现防尾随通行,整套系统除基础开门通行之外,IoT硬件设备对接、多类型异常告警模块是保障场馆安全运行的核心。物联网网关负责云端业务系统与门禁硬件的数据互通,异常告警模块识别尾随闯入、门体故障、网络离线等风险事件,实现事件记录、分级通知、本地联动处置。
本文将从系统整体架构、IoT门禁硬件对接、AB门通行业务流程、异常告警模块、数据表设计、关键代码实现、后台统计、技术选型、扩展方向几个方面讲解整套设计思路。
一、健身房AB门管控整体架构设计
整体采用云端业务平台+本地IoT边缘网关分层架构,分为会员小程序、IoT边缘网关设备层、平台管理后台三大部分。边缘网关向下对接AB门禁控制器、门磁传感器、AI人数识别摄像头、声光告警设备;向上通过MQTT/HTTP与云端服务通信,支持断网本地缓存,网络恢复后同步数据至云端。
1. 会员小程序端
面向健身用户,主要能力:
- 会员卡状态查看,通行二维码、人脸信息生成
- 门禁通行权限校验
- 个人出入记录查询
2. IoT边缘网关与硬件层
部署于健身房本地场馆:
- AB门禁控制器指令下发,执行双门互锁逻辑
- 采集门磁状态、AI摄像头人数识别结果、传感器信号
- 断网模式下本地缓存通行记录、告警事件
- 触发现场声光告警、消防联动逻辑
3. 平台管理后台
面向场馆运营管理人员:
- 会员门禁权限配置、黑名单管理
- IoT设备状态监控,网关在线离线检测
- 异常告警事件查看、分级处置、告警确认
- 通行日志、告警日志查询导出
整体架构示意:
会员小程序
|
管理后台 ---- API服务层 ---- 数据库(MySQL + Redis)
|
IoT边缘网关 ←----硬件指令---- AB门禁、门磁、AI摄像头、声光告警器
二、IoT门禁硬件对接模块设计
IoT网关作为业务系统与门禁硬件的中间层,屏蔽不同厂商门禁硬件协议差异。云端不直接控制门锁,全部控制指令下发至边缘网关,网关完成本地逻辑判断之后再驱动硬件动作,避免网络波动造成安全风险。
门禁设备信息数据表:
CREATE TABLE gym_iot_device (
id INT PRIMARY KEY AUTO_INCREMENT,
gym_id INT COMMENT '场馆ID',
device_sn VARCHAR(64) COMMENT '网关设备序列号',
device_type TINYINT COMMENT '1‑AB门禁控制器 2‑AI摄像头 3‑声光告警',
status TINYINT DEFAULT 0 COMMENT '0离线 1在线',
protocol VARCHAR(20) COMMENT '通信协议 mqtt/http',
last_heartbeat DATETIME COMMENT '最后心跳时间',
create_time DATETIME
);
云端下发开门指令接口示例(Node.js)
router.post('/iot/door/cmd', async(req,res)=>{
const {
gymId,deviceSn,doorType,cmd} = req.body;
//查询设备是否在线
const deviceInfo = await GymIotDevice.findOne({
where:{
gym_id:gymId,
device_sn:deviceSn,
status:1
}
})
if(!deviceInfo){
return res.json({
code:500,message:"设备离线,无法下发指令"})
}
//指令推送到IoT边缘网关
const pushResult = await iotGateway.pushCommand(deviceSn,{
door:doorType,
action:cmd
})
res.json({
code:200,
data:pushResult,
message:"门禁控制指令已下发网关"
})
})
业务说明:所有开门指令不会直接操作门锁,由边缘网关执行本地互锁校验,防止网络异常时云端误下发开门指令带来安全隐患。
三、AB门通行业务流程
AB门禁遵循互锁规则,同一时刻只允许单扇门处于开启状态,结合缓冲区AI人数检测实现防尾随。完整入场流程:
会员在A门前刷码/人脸身份核验
↓
权限校验通过,网关下发指令打开A门,B门强制锁闭
↓
人员进入缓冲区,A门关闭,门磁上报关门状态
↓
AI摄像头、红外传感器检测缓冲区人员数量
↓
检测仅单人,打开B门,进入健身区域
↓
B门关闭,生成通行日志;若检测多人,不打开B门,触发异常告警
AB门通行状态常量定义:
const abDoorStatus = {
IDLE:0, //空闲待核验
A_DOOR_OPEN:1, //A门已开启
BUFFER_DETECT:2, //缓冲区人数检测
B_DOOR_OPEN:3, //B门已开启
ABNORMAL_ALERT:4, //异常告警拦截
PASS_COMPLETE:5 //通行完成
}
四、异常告警模块核心设计
告警模块区分多种风险事件,支持告警等级划分、本地现场联动、云端消息推送、告警确认闭环。
常见告警事件类型:尾随多人闯入、门超时未关闭、暴力撬门、网关设备离线、消防信号触发。
告警信息数据表:
CREATE TABLE gym_alert_log (
id INT PRIMARY KEY AUTO_INCREMENT,
gym_id INT COMMENT '场馆ID',
device_sn VARCHAR(64) COMMENT '产生告警的设备编号',
alert_type TINYINT COMMENT '1尾随告警 2门超时未关 3暴力撬门 4设备离线',
alert_level TINYINT COMMENT '1普通 2重要 3紧急',
alert_desc VARCHAR(255) COMMENT '告警描述',
snap_img VARCHAR(255) COMMENT '现场抓拍图片',
handle_status TINYINT DEFAULT 0 COMMENT '0未处理 1已确认处置',
create_time DATETIME
);
生成告警记录并推送通知函数:
async function createAlertLog(gymId,deviceSn,alertType,alertLevel,alertDesc,snapImg){
const alert = await GymAlertLog.create({
gym_id:gymId,
device_sn:deviceSn,
alert_type:alertType,
alert_level:alertLevel,
alert_desc:alertDesc,
snap_img:snapImg,
handle_status:0,
create_time:new Date()
})
//根据告警等级推送消息,紧急告警触发现场声光设备
if(alertLevel === 3){
await iotGateway.triggerAlarmSound(deviceSn);
await messagePush.sendAdminNotice(gymId,alertDesc);
}
return alert;
}
告警处置逻辑:边缘网关优先执行本地动作,例如尾随事件发生时,本地直接锁死B门、打开声光告警;同时上报告警事件到云端,运营人员在后台完成查看、确认处置,形成告警闭环。
五、通行与告警后台数据统计功能
平台运营需要统计通行流量、告警事件分布、设备故障频次。
统计场馆每日通行人次SQL:
SELECT
DATE(create_time) AS day, COUNT(*) AS pass_count
FROM access_log
WHERE pass_result=1
GROUP BY day;
统计各类异常告警数量:
SELECT
alert_type,COUNT(*) AS alert_count
FROM gym_alert_log
GROUP BY alert_type;
统计未处理紧急告警:
SELECT * FROM gym_alert_log
WHERE alert_level=3 AND handle_status=0;
通过统计数据,运营人员可以掌握场馆客流高峰、高频风险告警类型、IoT设备运行健康情况。
六、会员权限校验流程
会员小程序获取动态通行二维码
↓
提交二维码到门禁设备,网关读取会员权限
↓
优先读取网关本地缓存权限,断网状态直接本地校验
↓
校验通过执行AB门通行流程;校验失败生成权限异常告警
↓
记录通行或者拒绝通行日志
七、开发技术选型
小程序前端
- 微信小程序原生开发
- UniApp
- Taro
后端服务
- Java Spring Boot
- Node.js
- PHP Laravel
数据库与缓存
- MySQL:存储会员、设备、通行日志、告警记录
- Redis:缓存IoT设备心跳、会员门禁通行权限
IoT硬件与部署
- Linux服务器
- Nginx
- Docker
- IoT边缘网关,通信协议支持MQTT、HTTP
SpringBoot项目目录参考
gym‑abdoor‑iot‑system
├── member 会员权限模块
├── iotdevice IoT门禁设备对接
├── abdoorctrl AB门互锁控制逻辑
├── accesslog 通行日志模块
├── alert 异常告警核心模块
├── mqttgateway MQTT消息对接网关
└── admin 管理后台
八、后期扩展方向
基础IoT门禁对接与告警模块开发完成后,可以迭代更多业务能力。
IoT硬件能力扩展
- 消防信号联动,火警触发强制解锁全部门禁
- 门禁固件远程升级,网关状态监控
- 接入储物柜、灯光设备,实现入场联动开灯
告警策略扩展
- 自定义告警阈值(门超时关闭时长配置)
- 告警通知渠道:小程序、短信、webhook推送
- 告警自动降噪,过滤重复抖动告警
权限业务扩展
- 多连锁场馆权限分发
- 临时访客通行码,自动过期回收权限
- 黑名单批量同步到本地边缘网关
数据运营
- 告警风险报表导出
- IoT设备故障率统计
- 场馆安全风险大盘可视化
总结
健身房AB门禁管控方案,不只是简单实现开门关门,核心在于IoT边缘网关硬件对接与完整的异常告警闭环。
开发落地过程中,要重点关注硬件协议适配、AB双门互锁逻辑、断网本地运行机制,同时设计分级告警策略,实现本地设备联动+云端记录通知+后台人工处置完整流程。基于这套基础系统,还可以叠加消防联动、连锁场馆管理、访客临时通行等扩展功能,满足不同规模无人健身房的安防管控需求。