主题
门禁系统
涉及子系统:工控机(核心)、云端 API(指令下发/事件上报)、管理后台(远程控制)
核心业务:管理 A/B 门的物理开关状态,提供远程控制与异常告警能力
系统概述
门禁系统负责 A/B 门电磁锁的物理控制层,是刷脸系统的硬件执行单元。同时提供独立的远程开门能力,供管理员在紧急情况下手动干预。
门禁系统与刷脸系统的关系:刷脸系统决定是否允许开门,门禁系统负责如何执行开门动作。
硬件组成
| 硬件 | 数量 | 作用 |
|---|---|---|
| 电磁锁(或电插锁) | 2(A 门 + B 门) | 执行锁定/解锁 |
| 门磁传感器 | 2(A 门 + B 门) | 检测门的开关状态 |
| 人体红外传感器(或其他方案) | 1 | 检测隔离间内是否有人 |
| 开门按钮(入口) | 1 | 外部用户触发进入请求 |
| 出门按钮(隔离间内) | 1(可选) | 内部用户触发出门请求 |
| 工控机 GPIO/继电器 | 若干 | 驱动电磁锁与读取传感器 |
门锁控制规则
电磁锁通电逻辑
需在采购时根据安全需求确认:断电开 vs 断电关
| 类型 | 断电状态 | 适用场景 |
|---|---|---|
| 常开型(通电锁定) | 断电 = 开门 | 紧急疏散优先(消防要求) |
| 常闭型(通电解锁) | 断电 = 锁门 | 安全防盗优先 |
建议:A 门(外门)使用常开型,断电时可供人员疏散;B 门(内门)根据场景选型。
控制信号映射
| 动作 | GPIO 输出 | 持续时间 |
|---|---|---|
| 解锁 A 门 | PIN_DOOR_A = HIGH | 持续到 A 门关闭事件,或超时 N 秒后自动锁回 |
| 锁定 A 门 | PIN_DOOR_A = LOW | 持续 |
| 解锁 B 门 | PIN_DOOR_B = HIGH | 持续到 B 门关闭事件,或超时 N 秒后自动锁回 |
| 锁定 B 门 | PIN_DOOR_B = LOW | 持续 |
远程控制接口
管理员可通过管理后台发起远程开门指令,云端通过 MQTT 下发到工控机执行。
指令格式(MQTT Payload)
json
{
"action": "unlock",
"door": "A",
"duration": 10,
"operator": "admin@example.com",
"reason": "用户忘带手机,人工确认身份后放行"
}| 字段 | 说明 |
|---|---|
action | unlock(解锁)/ lock(强制锁定) |
door | A / B |
duration | 解锁持续秒数,超时自动锁回(默认 10 秒) |
operator | 操作人账号(留存操作日志) |
reason | 操作原因(可选,留存日志) |
事件上报
工控机通过 MQTT 将门状态变化实时上报云端,云端持久化到 device_logs 表。
| 事件类型 | 触发时机 | 上报内容 |
|---|---|---|
door_unlocked | 电磁锁解锁时 | 门编号、触发原因(刷脸/远程/按钮) |
door_locked | 电磁锁锁定时 | 门编号 |
door_opened | 门磁:门打开 | 门编号、时间戳 |
door_closed | 门磁:门关闭 | 门编号、时间戳 |
door_timeout | 门解锁后超时未关闭 | 门编号、超时时长,触发告警 |
chamber_occupied | 人体传感器触发 | 时间戳 |
chamber_empty | 人体传感器复位 | 时间戳、在隔离间停留时长 |
异常场景与处理
| 异常场景 | 检测方式 | 处理策略 |
|---|---|---|
| 门解锁后超过 30 秒未关闭 | 超时定时器 | 触发告警上报云端;语音/蜂鸣提示 |
| 门磁传感器故障(长期不变化) | 心跳检测 | 上报告警,标记传感器异常 |
| 电磁锁控制信号异常 | 回读 GPIO 状态 | 上报告警,管理员介入 |
| 隔离间长时间有人(超过 5 分钟未进出) | 计时器 | 上报告警,可能有人被困 |
| 工控机重启 | 启动自检 | 读取所有传感器初始状态,恢复正常控制 |
管理后台功能
- 实时状态面板:展示 A 门 / B 门当前锁定/解锁/开关状态
- 远程开门按钮:操作需填写原因,记录操作日志
- 事件日志:查看门状态变化历史记录
- 告警列表:未处理告警一览,支持标记处理
待确认事项
- [ ] 电磁锁选型:常开型 vs 常闭型(A 门 / B 门分别确认)
- [ ] 开门按钮位置(外侧入口按钮布局设计)
- [ ] 是否需要出门按钮(或通过其他方式触发出门逻辑)
- [ ] 门解锁超时时间 N 的具体值(建议 A 门 15 秒,B 门 10 秒)
- [ ] 隔离间人体检测方案最终确认(红外 vs 视觉)