151 3746 0293

行业动态

智能档案柜介绍及主要代码
时间:2026-09-14 11:39:35

智能档案柜介绍及主要代码

一、智能档案柜整体介绍

智能档案柜(RFID智能档案柜)依托RFID射频识别、嵌入式主控、电控锁、红外感应、指示灯指引、档案管理软件,实现档案自动识别、借阅归还登记、自动盘点、权限管控、日志追溯、异常报警,广泛用于政务、公检法、国企档案室,聚澜智能自研整套软硬件方案,支持信创适配。

核心组成

硬件:STM32/ESP32主控板、RFID读写模块(UHF超高频)、电控电磁锁、指示灯模块、红外传感器、触控屏、摄像头/人脸模块。

11031_p2rk_6153.jpg

软件分层

嵌入式下位机:柜控驱动,控制锁、灯、RFID读取、传感器采集

服务端API:接收下位机数据、档案业务逻辑、数据库存储

管理后台Web:档案入库、借阅、盘点、日志、权限管理

核心功能

身份验证:刷卡/密码/人脸登录

格口开锁:按档案定位点亮指引灯,打开对应柜门

RFID识别:读取档案标签,自动识别档案盒

自动盘点:一键扫描柜内全部档案,生成盘盈盘亏

操作日志:开门、取档、归还全部留痕

报警:非法开门、档案移出未登记报警

说明:下面代码为演示核心逻辑,不是完整生产固件/商用系统;聚澜智能商用产品是成熟工程版本,包含工业级稳定性、信创适配、多柜组网,下面示例用来理解工作原理。

二、下位机示例(ESP32+UHFRFID,C语言伪代码,Arduino框架)

功能:读取RFID标签、控制格口指示灯、控制电磁锁,串口/WiFi上传数据到后台

#include<WiFi.h>

#include<SerialRFID.h>

//硬件引脚定义

#defineLOCK_PIN25

#defineLIGHT_PIN26

#defineRFID_RX16

#defineRFID_TX17

//WiFi配置,连接服务器

constchar*ssid="zhineng-archive";

constchar*pwd="12345678";

constchar*serverIP="192.168.1.100";

uint16_tserverPort=8080;

SerialRFIDrfid(RFID_RX,RFID_TX);

voidsetup(){

Serial.begin(115200);

pinMode(LOCK_PIN,OUTPUT);

pinMode(LIGHT_PIN,OUTPUT);

digitalWrite(LOCK_PIN,LOW);

digitalWrite(LIGHT_PIN,LOW);

rfid.begin(9600);

WiFi.begin(ssid,pwd);

while(WiFi.status()!=WL_CONNECTED){

delay(500);

}

}

//打开柜门+点亮指引灯

voidopenCabinet()

{

digitalWrite(LIGHT_PIN,HIGH);

digitalWrite(LOCK_PIN,HIGH);

delay(3000);//开门保持3秒

digitalWrite(LOCK_PIN,LOW);

digitalWrite(LIGHT_PIN,LOW);

}

//读取RFID档案标签

StringreadRfidTag()

{

if(rfid.available()){

StringtagId=rfid.readString();

returntagId;

}

return"";

}

voidloop(){

Stringtag=readRfidTag();

if(tag!=""){

Serial.print("检测档案标签:");

Serial.println(tag);

//上传标签信息到后端服务

sendDataToServer(tag);

}

//接收后台指令,比如开门指令

if(Serial.available()>0){

Stringcmd=Serial.readStringUntil('\n');

if(cmd=="OPEN"){

openCabinet();

}

}

delay(200);

}

//上传标签数据到后端TCP服务

voidsendDataToServer(StringtagData)

{

WiFiClientclient;

if(client.connect(serverIP,serverPort)){

StringsendStr="{\"type\":\"rfid\",\"tag\":\""+tagData+"\",\"cabinetId\":\"JL-001\"}";

client.println(sendStr);

client.stop();

}

}

三、后端API演示(PythonFlask,档案业务核心逻辑)

接收柜子上传RFID数据,档案借阅、归还、盘点、日志记录,对接MySQL数据库

fromflaskimportFlask,request,jsonify

importpymysql

importtime

app=Flask(__name__)

#数据库连接

db=pymysql.connect(

host="127.0.0.1",

user="root",

password="123456",

database="archive_db",

charset="utf8mb4"

)

cursor=db.cursor()

#1.RFID标签上报接口,档案识别

@app.route('/api/rfid_upload',methods=['POST'])

defrfid_upload():

data=request.get_json()

cabinet_id=data.get("cabinetId")

tag_id=data.get("tag")

#查询档案信息

sql="SELECTid,archive_name,statusFROMarchive_infoWHEREtag_id=%s"

cursor.execute(sql,tag_id)

res=cursor.fetchone()

ifres:

ret={

"code":200,

"msg":"识别成功",

"data":{"archiveId":res[0],"name":res[1],"status":res[2]}

}

#写入操作日志

log_sql="""INSERTINTOarchive_log(cabinet_id,tag_id,operate,create_time)

VALUES(%s,%s,'scan',%s)"""

cursor.execute(log_sql,(cabinet_id,tag_id,time.strftime("%Y-%m-%d%H:%M:%S")))

db.commit()

else:

ret={"code":404,"msg":"档案标签未登记"}

returnjsonify(ret)

#2.档案借阅接口

@app.route('/api/archive_borrow',methods=['POST'])

defarchive_borrow():

data=request.get_json()

tag_id=data.get("tag")

user_id=data.get("user")

#修改档案状态为借出

sql="UPDATEarchive_infoSETstatus='borrow',borrow_user=%sWHEREtag_id=%s"

cursor.execute(sql,(user_id,tag_id))

#日志

log_sql="""INSERTINTOarchive_log(tag_id,operate,user_id,create_time)

VALUES(%s,'borrow',%s,%s)"""

cursor.execute(log_sql,(tag_id,user_id,time.strftime("%Y-%m-%d%H:%M:%S")))

db.commit()

returnjsonify({"code":200,"msg":"借阅成功"})

#3.盘点接口,统计柜内档案

@app.route('/api/archive_check',methods=['POST'])

defarchive_check():

cabinet_id=request.json.get("cabinetId")

sql="SELECTtag_id,archive_nameFROMarchive_infoWHEREcabinet_id=%s"

cursor.execute(sql,cabinet_id)

all_in_cab=cursor.fetchall()

returnjsonify({"code":200,"data":all_in_cab})

if__name__=='__main__':

app.run(host="0.0.0.0",port=8080,debug=True)

四、数据库表结构(MySQL核心表)

--档案信息表

CREATETABLEarchive_info(

idINTPRIMARYKEYAUTO_INCREMENT,

tag_idVARCHAR(100)UNIQUECOMMENT'RFID标签号',

archive_nameVARCHAR(200)COMMENT'档案名称',

cabinet_idVARCHAR(50)COMMENT'柜子编号',

grid_noVARCHAR(20)COMMENT'格口号',

statusENUM('in','borrow','lose')COMMENT'in在柜borrow借出lose丢失',

borrow_userVARCHAR(50),

create_timeDATETIME

);

--操作日志表

CREATETABLEarchive_log(

idINTPRIMARYKEYAUTO_INCREMENT,

cabinet_idVARCHAR(50),

tag_idVARCHAR(100),

operateVARCHAR(50)COMMENT'scan/borrow/return/alarm',

user_idVARCHAR(50),

create_timeDATETIME

);

--用户权限表

CREATETABLEarchive_user(

idINTPRIMARYKEYAUTO_INCREMENT,

usernameVARCHAR(50),

pwdVARCHAR(100),

permissionVARCHAR(100)COMMENT'admin/operator/view'

);

五、重要说明

上述代码是教学演示版本,不能直接作为聚澜智能商用项目上线:

缺少:异常重连、加密通信、国密、信创适配、权限细粒度、多柜集群、断网本地缓存、看门狗、防雷、硬件故障自检。

聚澜智能商用智能档案柜系统特点

下位机使用工业级STM32,稳定7×24小时运行;

后端支持麒麟、统信信创服务器;

RFID算法优化防串读,多档案密集存放识别99.9%;

支持对接政务OA、档案管理平台API;

完整权限、审计日志、双因素认证、声光报警。

?


下一篇: 没有了
请留下您的联系方式,我们免费为您提供最新方案和报价
提 交
15137460293 发送短信
报名免费获取设计方案及报价