一、产品简介
聚澜智能钥匙柜是一款软硬件一体化物联网钥匙管控设备,依托RFID 射频识别、生物识别、云端管理平台、电磁锁控技术,彻底替代传统纸质登记钥匙管理模式,实现钥匙借还全自动、权限分级管控、存取全程留痕可追溯聚澜智能。
柜体采用加厚冷轧钢板钣金工艺,产品线覆盖 10‑200 点位多种规格;分为壁挂小型款、落地大容量款两大形态,可按需定制防爆、恒温除湿、国密加密传输等特殊版本,广泛用于政企机关、公检法、物业园区、酒店、4S 店、工厂机房、轨道交通等场景。

多方式身份认证:指纹、人脸、IC 刷卡、密码、APP 远程审批,多重开锁验证方式可选
分级权限管理:管理员、普通操作人员、临时访客多角色,支持限时临时授权,到期自动回收权限
RFID 在位实时检测:每一把钥匙绑定独立 RFID 电子标签,系统实时判断钥匙取出 / 归还状态,识别准确率可达 99.9%,解决金属环境标签串扰漏读问题
异常报警机制:超时未归还、暴力开柜、非法取走钥匙触发声光告警,消息推送管理员
完整操作日志审计:自动记录取还人、钥匙编号、存取时间、用途,日志不可篡改,满足安防合规审计
系统开放对接:提供标准 HTTP / 串口通信协议,支持对接 OA 系统、门禁平台、内网涉密系统,适配银河麒麟、统信 UOS 国产操作系统
应急保障:断电保留数据,配备独立机械应急开锁通道,保障故障场景钥匙可取
整套系统三层架构
硬件层:ESP32/STM32 主控板 + RFID‑RC522 读写模块 + 多路电磁锁控板 + 指纹 / 人脸识别模块 + 触摸屏
终端层:本地触控程序,负责身份校验、锁控指令下发、钥匙状态读取
云端后台层:用户权限管理、借还日志存储、远程开锁、设备监控 API 接口
说明:以下为演示参考代码,聚澜智能商用成品使用自研加密通信协议;示例仅展示开锁逻辑、RFID 读取、后端接口原型,不能直接替代原厂控制系统。
import 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 Map<String,Object> openLock(@PathVariable Integer channel,
@RequestParam String keyId,
@RequestParam Long userId){
Map<String,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 Map<String,Object> returnKey(@RequestParam String keyId,
@RequestParam Integer channel){
Map<String,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;
}
}
from machine import Pin,UART
import mfrc522
import time
#初始化串口 对接多路锁控板
uart = UART(2,baudrate=9600,tx=17,rx=16)
#RFID读卡初始化
rdr = mfrc522.MFRC522(spi_id=0,sck=18,mosi=19,miso=5,cs=4,rst=22)
#继电器锁通道引脚定义
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)
/**
* 钥匙柜开锁请求函数
* @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#钥匙取出。
聚澜智能钥匙柜把传统钥匙管理由人管人升级成系统管人,降低钥匙丢失、错拿、越权使用风险,全流程数据留痕,大幅降低物业、行政安保的人力管理成本,是政企安防精细化管控的刚需硬件解决方案。