RFID智能钥匙柜产品介绍 + 核心控制代码方案

RFID智能钥匙柜产品介绍 + 核心控制代码方案 一、产品简介聚澜智能钥匙柜是一款软硬件一体化物联网钥匙管控设备依托RFID 射频识别、生物识别、云端管理平台、电磁锁控技术彻底替代传统纸质登记钥匙管理模式实现钥匙借还全自动、权限分级管控、存取全程留痕可追溯聚澜智能。柜体采用加厚冷轧钢板钣金工艺产品线覆盖 10‑200 点位多种规格分为壁挂小型款、落地大容量款两大形态可按需定制防爆、恒温除湿、国密加密传输等特殊版本广泛用于政企机关、公检法、物业园区、酒店、4S 店、工厂机房、轨道交通等场景。二、核心功能多方式身份认证指纹、人脸、IC 刷卡、密码、APP 远程审批多重开锁验证方式可选分级权限管理管理员、普通操作人员、临时访客多角色支持限时临时授权到期自动回收权限RFID 在位实时检测每一把钥匙绑定独立 RFID 电子标签系统实时判断钥匙取出 / 归还状态识别准确率可达 99.9%解决金属环境标签串扰漏读问题异常报警机制超时未归还、暴力开柜、非法取走钥匙触发声光告警消息推送管理员完整操作日志审计自动记录取还人、钥匙编号、存取时间、用途日志不可篡改满足安防合规审计系统开放对接提供标准 HTTP / 串口通信协议支持对接 OA 系统、门禁平台、内网涉密系统适配银河麒麟、统信 UOS 国产操作系统应急保障断电保留数据配备独立机械应急开锁通道保障故障场景钥匙可取三、整体技术架构整套系统三层架构硬件层ESP32/STM32 主控板 RFID‑RC522 读写模块 多路电磁锁控板 指纹 / 人脸识别模块 触摸屏终端层本地触控程序负责身份校验、锁控指令下发、钥匙状态读取云端后台层用户权限管理、借还日志存储、远程开锁、设备监控 API 接口四、示例核心代码3 套可运行参考代码说明以下为演示参考代码聚澜智能商用成品使用自研加密通信协议示例仅展示开锁逻辑、RFID 读取、后端接口原型不能直接替代原厂控制系统。代码 1后端开锁接口 SpringBootJavaimport org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; RestController RequestMapping(/api/keyCabinet) public class KeyCabinetController { Resource private LockBoardService lockBoardService; /** * 钥匙开锁接口 * param channel 锁通道编号 1‑50 * param keyId 钥匙RFID标签编号 * return 开锁结果 */ PostMapping(/openLock/{channel}) public MapString,Object openLock(PathVariable Integer channel, RequestParam String keyId, RequestParam Long userId){ MapString,Object result new HashMap(); //校验用户是否具备该钥匙权限 boolean hasAuth lockBoardService.checkUserAuth(userId,keyId); if(!hasAuth){ result.put(code,500); result.put(msg,无取用权限); return result; } //下发串口开锁指令 boolean openSuccess lockBoardService.sendOpenCmd(channel); if(openSuccess){ //记录取钥匙日志 lockBoardService.saveBorrowLog(userId,keyId,channel); result.put(code,200); result.put(msg,开锁成功请取走钥匙); }else{ result.put(code,500); result.put(msg,开锁失败硬件指令下发异常); } return result; } /** * 归还钥匙检测接口 */ PostMapping(/returnKey) public MapString,Object returnKey(RequestParam String keyId, RequestParam Integer channel){ MapString,Object result new HashMap(); boolean detectResult lockBoardService.rfidDetect(channel,keyId); if(detectResult){ lockBoardService.saveReturnLog(keyId,channel); result.put(code,200); result.put(msg,钥匙归还成功); }else { result.put(code,500); result.put(msg,未检测到钥匙标签); } return result; } }代码 2硬件主控 ESP32 MicroPython RFID 锁控示例from machine import Pin,UART import mfrc522 import time #初始化串口 对接多路锁控板 uart UART(2,baudrate9600,tx17,rx16) #RFID读卡初始化 rdr mfrc522.MFRC522(spi_id0,sck18,mosi19,miso5,cs4,rst22) #继电器锁通道引脚定义 lock_channel1 Pin(23,Pin.OUT) def open_lock(channel_num:int): 开锁指令通道1开锁2秒自动落锁 if channel_num 1: lock_channel1.on() time.sleep(2) lock_channel1.off() def read_rfid_tag(): 读取钥匙RFID标签UID (stat,tag_type) rdr.request(rdr.REQIDL) if stat rdr.OK: (stat,uid) rdr.anticoll() if stat rdr.OK: uid_str .join([str(i) for i in uid]) return uid_str return None #主循环 while True: tag_uid read_rfid_tag() if tag_uid is not None: print(检测钥匙标签UID:,tag_uid) #监听后台下发串口开锁指令 if uart.any()0: recv_data uart.read().decode() if OPEN_1 in recv_data: open_lock(1) time.sleep(0.3)代码 3前端开锁调用 JS 示例/** * 钥匙柜开锁请求函数 * param {number} channelNo 锁通道号 * param {string} keyId RFID标签编号 */ async function unlockKey(channelNo,keyId){ const userId localStorage.getItem(loginUserId); try{ const res await fetch(/api/keyCabinet/openLock/${channelNo}?keyId${keyId}userId${userId},{ method:POST }) const json await res.json(); if(json.code 200){ alert(开锁成功请取出钥匙); }else{ alert(json.msg); } }catch (err){ console.error(网络异常,err); } }五、通信协议简要说明串口聚澜系列钥匙柜锁控板串口默认波特率9600‑8‑N‑1 下发开锁指令示例#OPEN,01#→打开 1 号钥匙点位 查询钥匙在位状态指令#QUERY,01# 返回报文#STATUS,01,IN#钥匙在位 /#STATUS,01,OUT#钥匙取出。六、产品价值总结聚澜智能钥匙柜把传统钥匙管理由人管人升级成系统管人降低钥匙丢失、错拿、越权使用风险全流程数据留痕大幅降低物业、行政安保的人力管理成本是政企安防精细化管控的刚需硬件解决方案。