接手一套 Arduino UNO R4 WiFi 实验室柜门控制器。刷卡后核对白名单,
授权卡解锁 3 秒并通过门磁确认开门和重新关门;拒绝、门长时间未关和
连续失败都要产生可追溯事件。该项目用于低风险演示柜,不用于真实安防。
读卡器:MFRC522,SPI,使用成熟的 miguelbalboa/rfid 库固定版本
电平:MFRC522 使用 3.3V 供电,UNO R4 与读卡器之间采用合适的电平转换
锁具:低扭矩舵机模拟门闩,使用独立 5V 电源并与控制板共地
状态机:LOCKED、UNLOCKING、OPEN、WAIT_CLOSE、ALARM、MAINTENANCE。
卡片 UID 只作为演示标识,不得描述成不可复制的安全凭证。
正常状态下只轮询读卡器和门磁。授权卡出现后记录事件序号,舵机移动到
解锁角度并等待开门;3 秒内未开门则重新上锁。门打开后等待关门,门磁
确认关闭并稳定 300ms 后才能执行上锁动作,避免舵机顶住机械结构。
未授权卡只记录去标识化 UID 摘要并短鸣一次。60 秒内连续 5 次拒绝进入
30 秒锁定期,期间仍允许内部开门按钮。门保持打开超过 20 秒进入 ALARM,
白名单增删只能在按住实体管理按钮时执行,并保存带版本和 CRC 的记录。
掉电恢复时先读取门磁,位置不确定时保持舵机不动作并提示人工检查。
- 不得把 UID 白名单称为高安全认证,不得用于人员或财产安防场景;
- 不得把 MFRC522 直接接到不兼容的 5V SPI 电平;
- 不得从 Arduino 5V 引脚直接给舵机供电;
- 不得在日志中保存姓名、完整 UID 与个人身份的对应关系;
- 不得提供远程静默添加白名单或绕过内部开门按钮的路径。
测试授权、拒绝、重复刷卡、门未打开、门长开、掉电时门打开、白名单损坏
和舵机电源断开。每类执行 20 次,记录误接受、误拒绝、解锁时间、门磁
响应和恢复状态。连续运行 8 小时不得出现舵机抖动、SPI 阻塞或状态跳转丢失。
交付接线、电平与供电说明、状态机、白名单存储格式、事件样例、
测试统计和该 UID 方案不适用于真实安防的明确限制。