<p><span data-cke-copybin-start="1"></span></p><h3><span id="cke_bm_412S" style="display:none"> </span>智能书柜是以<strong>RFID 射频识别技术</strong>为核心,结合单片机 / 工控主板、触控屏幕、扫码模块、电控锁、云端管理后台打造的 24 小时自助图书借阅设备,读者可自助完成借书、还书、图书查询、一键盘点,管理员远程管理图书数据。聚澜智能智能书柜软硬件一体化方案,广泛用于校园书屋、社区城市书房、企事业单位职工图书室。</h3><h2>聚澜智能智能书柜核心硬件组成</h2><ol class=" list-paddingleft-2"><li><p></p></li><li><p>工控主板(主控制器)</p></li><li><p></p></li><li><p>RFID 超高频读写器 + 天线(识别图书电子标签)</p></li><li><p></p></li><li><p>10‑21.5 寸触控显示屏</p></li><li><p></p></li><li><p>二维码扫码模块</p></li><li><p></p></li><li><p>电控锁 / 电磁锁</p></li><li><p></p></li><li><p>人体感应传感器</p></li><li><p></p></li><li><p>电源模块</p></li><li><p></p></li><li><p>4G / 以太网通信模块</p></li><li><p></p></li><li><p>柜体</p></li></ol><h2>聚澜智能智能书柜主要功能</h2><ul class=" list-paddingleft-2"><li><p></p></li><li><p>扫码 / 刷卡 / 人脸登录借阅</p></li><li><p></p></li><li><p>自助借书、还书</p></li><li><p></p></li><li><p>RFID 批量图书盘点</p></li><li><p></p></li><li><p>图书信息查询</p></li><li><p></p></li><li><p>借阅记录上传云端</p></li><li><p></p></li><li><p>锁具开关控制、异常报警</p></li><li><p></p></li><li><p>后台数据统计、报表导出</p></li></ul><h1>二、简易演示代码(Python,模拟书柜主控程序)</h1><blockquote><p>说明:下面代码为<strong>仿真演示代码</strong>,不能直接驱动真实 RFID 硬件;真实聚澜智能设备采用自研嵌入式程序 + 云端后台,硬件驱动需搭配厂商 SDK。</p></blockquote><pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22import%20time%5Cnimport%20json%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E6%A8%A1%E6%8B%9F%E6%95%B0%E6%8D%AE%E5%BA%93%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cnbook_list%20%3D%20%7B%5Cn%20%20%20%20%5C%22B001%5C%22%3A%7B%5C%22name%5C%22%3A%5C%22%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%9F%BA%E7%A1%80%5C%22%2C%5C%22status%5C%22%3A%5C%22%E5%9C%A8%E6%9E%B6%5C%22%7D%2C%5Cn%20%20%20%20%5C%22B002%5C%22%3A%7B%5C%22name%5C%22%3A%5C%22%E5%85%A8%E6%B0%91%E9%98%85%E8%AF%BB%E8%AF%BB%E6%9C%AC%5C%22%2C%5C%22status%5C%22%3A%5C%22%E5%9C%A8%E6%9E%B6%5C%22%7D%2C%5Cn%20%20%20%20%5C%22B003%5C%22%3A%7B%5C%22name%5C%22%3A%5C%22%E4%B9%A1%E5%9C%9F%E6%96%87%E5%AD%A6%E9%80%89%E9%9B%86%5C%22%2C%5C%22status%5C%22%3A%5C%22%E5%80%9F%E5%87%BA%5C%22%7D%5Cn%7D%5Cnborrow_record%20%3D%20%5B%5D%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20RFID%E6%A8%A1%E6%8B%9F%E8%AF%BB%E5%8F%96%E5%87%BD%E6%95%B0%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20read_rfid_tag()%3A%5Cn%20%20%20%20%5C%22%5C%22%5C%22%E6%A8%A1%E6%8B%9FRFID%E8%AF%BB%E5%88%B0%E5%9B%BE%E4%B9%A6%E6%A0%87%E7%AD%BE%E7%BC%96%E5%8F%B7%5C%22%5C%22%5C%22%5Cn%20%20%20%20tag_id%20%3D%20input(%5C%22%E8%AF%B7%E6%89%AB%E6%8F%8F%E5%9B%BE%E4%B9%A6%E6%A0%87%E7%AD%BE(%E8%BE%93%E5%85%A5%E5%9B%BE%E4%B9%A6%E7%BC%96%E5%8F%B7%E5%A6%82B001)%3A%5C%22)%5Cn%20%20%20%20return%20tag_id.strip()%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E7%94%B5%E6%8E%A7%E9%94%81%E6%8E%A7%E5%88%B6%E6%A8%A1%E6%8B%9F%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20control_door_lock(open_flag%3Abool)%3A%5Cn%20%20%20%20if%20open_flag%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E3%80%90%E9%94%81%E5%85%B7%E6%8E%A7%E5%88%B6%E3%80%91%E6%9F%9C%E9%97%A8%E5%B7%B2%E6%89%93%E5%BC%80%EF%BC%8C%E8%AF%B7%E5%AD%98%E5%8F%96%E5%9B%BE%E4%B9%A6%5C%22)%5Cn%20%20%20%20%20%20%20%20time.sleep(3)%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E3%80%90%E9%94%81%E5%85%B7%E6%8E%A7%E5%88%B6%E3%80%91%E6%9F%9C%E9%97%A8%E8%87%AA%E5%8A%A8%E5%85%B3%E9%97%AD%E5%B9%B6%E4%B8%8A%E9%94%81%5C%22)%5Cn%20%20%20%20else%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E3%80%90%E9%94%81%E5%85%B7%E6%8E%A7%E5%88%B6%E3%80%91%E6%9F%9C%E9%97%A8%E4%BF%9D%E6%8C%81%E9%94%81%E5%AE%9A%5C%22)%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E5%80%9F%E4%B9%A6%E6%B5%81%E7%A8%8B%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20borrow_book(user_id)%3A%5Cn%20%20%20%20tag%20%3D%20read_rfid_tag()%5Cn%20%20%20%20if%20tag%20not%20in%20book_list%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E5%9B%BE%E4%B9%A6%E4%B8%8D%E5%AD%98%E5%9C%A8%EF%BC%81%5C%22)%5Cn%20%20%20%20%20%20%20%20return%5Cn%20%20%20%20book%20%3D%20book_list%5Btag%5D%5Cn%20%20%20%20if%20book%5B%5C%22status%5C%22%5D%20%3D%3D%20%5C%22%E5%80%9F%E5%87%BA%5C%22%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E8%AF%A5%E4%B9%A6%E5%B7%B2%E8%A2%AB%E5%80%9F%E5%87%BA%EF%BC%8C%E6%97%A0%E6%B3%95%E5%80%9F%E9%98%85%5C%22)%5Cn%20%20%20%20%20%20%20%20return%5Cn%20%20%20%20%23%20%E6%89%A7%E8%A1%8C%E5%80%9F%E4%B9%A6%5Cn%20%20%20%20book%5B%5C%22status%5C%22%5D%20%3D%20%5C%22%E5%80%9F%E5%87%BA%5C%22%5Cn%20%20%20%20borrow_record.append(%7B%5Cn%20%20%20%20%20%20%20%20%5C%22user%5C%22%3Auser_id%2C%5Cn%20%20%20%20%20%20%20%20%5C%22book_id%5C%22%3Atag%2C%5Cn%20%20%20%20%20%20%20%20%5C%22opt%5C%22%3A%5C%22borrow%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%5C%22time%5C%22%3Atime.ctime()%5Cn%20%20%20%20%7D)%5Cn%20%20%20%20control_door_lock(True)%5Cn%20%20%20%20print(f%5C%22%E5%80%9F%E4%B9%A6%E6%88%90%E5%8A%9F%EF%BC%81%E3%80%8A%7Bbook%5B'name'%5D%7D%E3%80%8B%5C%22)%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E8%BF%98%E4%B9%A6%E6%B5%81%E7%A8%8B%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20return_book()%3A%5Cn%20%20%20%20tag%20%3D%20read_rfid_tag()%5Cn%20%20%20%20if%20tag%20not%20in%20book_list%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E5%9B%BE%E4%B9%A6%E4%B8%8D%E5%AD%98%E5%9C%A8%EF%BC%81%5C%22)%5Cn%20%20%20%20%20%20%20%20return%5Cn%20%20%20%20book%20%3D%20book_list%5Btag%5D%5Cn%20%20%20%20if%20book%5B%5C%22status%5C%22%5D%20%3D%3D%20%5C%22%E5%9C%A8%E6%9E%B6%5C%22%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E8%AF%A5%E4%B9%A6%E6%9C%AC%E6%9D%A5%E5%B0%B1%E5%9C%A8%E4%B9%A6%E6%9F%9C%E5%86%85%EF%BC%8C%E6%97%A0%E9%9C%80%E5%BD%92%E8%BF%98%5C%22)%5Cn%20%20%20%20%20%20%20%20return%5Cn%20%20%20%20book%5B%5C%22status%5C%22%5D%20%3D%20%5C%22%E5%9C%A8%E6%9E%B6%5C%22%5Cn%20%20%20%20borrow_record.append(%7B%5Cn%20%20%20%20%20%20%20%20%5C%22book_id%5C%22%3Atag%2C%5Cn%20%20%20%20%20%20%20%20%5C%22opt%5C%22%3A%5C%22return%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%5C%22time%5C%22%3Atime.ctime()%5Cn%20%20%20%20%7D)%5Cn%20%20%20%20control_door_lock(True)%5Cn%20%20%20%20print(f%5C%22%E8%BF%98%E4%B9%A6%E6%88%90%E5%8A%9F%EF%BC%81%E3%80%8A%7Bbook%5B'name'%5D%7D%E3%80%8B%5C%22)%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E7%9B%98%E7%82%B9%E5%8A%9F%E8%83%BD%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20inventory_books()%3A%5Cn%20%20%20%20print(%5C%22%5C%5Cn%3D%3D%3D%3D%3D%E5%BC%80%E5%A7%8BRFID%E6%89%B9%E9%87%8F%E7%9B%98%E7%82%B9%3D%3D%3D%3D%5C%22)%5Cn%20%20%20%20for%20bid%2Cinfo%20in%20book_list.items()%3A%5Cn%20%20%20%20%20%20%20%20print(f%5C%22%7Bbid%7D%20%20%7Binfo%5B'name'%5D%7D%20%20%E7%8A%B6%E6%80%81%3A%7Binfo%5B'status'%5D%7D%5C%22)%5Cn%20%20%20%20print(%5C%22%E7%9B%98%E7%82%B9%E5%AE%8C%E6%88%90%EF%BC%8C%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0%E4%BA%91%E7%AB%AF%5C%5Cn%5C%22)%5Cn%5Cn%23%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%E4%B8%BB%E8%8F%9C%E5%8D%95%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cndef%20main()%3A%5Cn%20%20%20%20print(%5C%22%3D%3D%3D%3D%3D%E8%81%9A%E6%BE%9C%E6%99%BA%E8%83%BD%E2%80%91%E6%99%BA%E8%83%BD%E4%B9%A6%E6%9F%9C%E8%87%AA%E5%8A%A9%E7%B3%BB%E7%BB%9F%3D%3D%3D%3D%3D%5C%22)%5Cn%20%20%20%20while%20True%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%5C%5Cn1.%E5%80%9F%E4%B9%A6%20%202.%E8%BF%98%E4%B9%A6%20%203.%E5%9B%BE%E4%B9%A6%E7%9B%98%E7%82%B9%20%200.%E9%80%80%E5%87%BA%5C%22)%5Cn%20%20%20%20%20%20%20%20choice%20%3D%20input(%5C%22%E8%AF%B7%E9%80%89%E6%8B%A9%E5%8A%9F%E8%83%BD%EF%BC%9A%5C%22)%5Cn%20%20%20%20%20%20%20%20if%20choice%20%3D%3D%20%5C%221%5C%22%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20uid%20%3D%20input(%5C%22%E8%BE%93%E5%85%A5%E8%AF%BB%E8%80%85%E7%BC%96%E5%8F%B7%EF%BC%9A%5C%22)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20borrow_book(uid)%5Cn%20%20%20%20%20%20%20%20elif%20choice%20%3D%3D%20%5C%222%5C%22%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20return_book()%5Cn%20%20%20%20%20%20%20%20elif%20choice%20%3D%3D%20%5C%223%5C%22%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20inventory_books()%5Cn%20%20%20%20%20%20%20%20elif%20choice%20%3D%3D%20%5C%220%5C%22%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20print(%5C%22%E7%B3%BB%E7%BB%9F%E9%80%80%E5%87%BA%5C%22)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20break%5Cn%20%20%20%20%20%20%20%20else%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20print(%5C%22%E6%97%A0%E6%95%88%E9%80%89%E9%A1%B9%5C%22)%5Cn%5Cnif%20__name__%20%3D%3D%20%5C%22__main__%5C%22%3A%5Cn%20%20%20%20main()%5Cn%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet">import time
import json
# ========== 模拟数据库 ==========
book_list = {
"B001":{"name":"人工智能基础","status":"在架"},
"B002":{"name":"全民阅读读本","status":"在架"},
"B003":{"name":"乡土文学选集","status":"借出"}
}
borrow_record = []
# ========== RFID模拟读取函数 ==========
def read_rfid_tag():
"""模拟RFID读到图书标签编号"""
tag_id = input("请扫描图书标签(输入图书编号如B001):")
return tag_id.strip()
# ========== 电控锁控制模拟 ==========
def control_door_lock(open_flag:bool):
if open_flag:
print("【锁具控制】柜门已打开,请存取图书")
time.sleep(3)
print("【锁具控制】柜门自动关闭并上锁")
else:
print("【锁具控制】柜门保持锁定")
# ========== 借书流程 ==========
def borrow_book(user_id):
tag = read_rfid_tag()
if tag not in book_list:
print("图书不存在!")
return
book = book_list[tag]
if book["status"] == "借出":
print("该书已被借出,无法借阅")
return
# 执行借书
book["status"] = "借出"
borrow_record.append({
"user":user_id,
"book_id":tag,
"opt":"borrow",
"time":time.ctime()
})
control_door_lock(True)
print(f"借书成功!《{book['name']}》")
# ========== 还书流程 ==========
def return_book():
tag = read_rfid_tag()
if tag not in book_list:
print("图书不存在!")
return
book = book_list[tag]
if book["status"] == "在架":
print("该书本来就在书柜内,无需归还")
return
book["status"] = "在架"
borrow_record.append({
"book_id":tag,
"opt":"return",
"time":time.ctime()
})
control_door_lock(True)
print(f"还书成功!《{book['name']}》")
# ========== 盘点功能 ==========
def inventory_books():
print("\n=====开始RFID批量盘点====")
for bid,info in book_list.items():
print(f"{bid} {info['name']} 状态:{info['status']}")
print("盘点完成,数据上传云端\n")
# ========== 主菜单 ==========
def main():
print("=====聚澜智能‑智能书柜自助系统=====")
while True:
print("\n1.借书 2.还书 3.图书盘点 0.退出")
choice = input("请选择功能:")
if choice == "1":
uid = input("输入读者编号:")
borrow_book(uid)
elif choice == "2":
return_book()
elif choice == "3":
inventory_books()
elif choice == "0":
print("系统退出")
break
else:
print("无效选项")
if __name__ == "__main__":
main()</pre><p><span class="cke_reset cke_widget_drag_handler_container" style="background:rgba(220,220,220,0.5);background-image:url(https://csdnimg.cn/release/blog_editor_html/release2.4.6/ckeditor/plugins/widget/images/handle.png);display:none;"></span></p><h1>三、后端接口示例(Flask 简易借阅 API)</h1><p>用于智能书柜设备和云端后台数据交互</p><pre class="cke_widget_element" data-cke-widget-data="%7B%22code%22%3A%22from%20flask%20import%20Flask%2Crequest%2Cjsonify%5Cnapp%20%3D%20Flask(__name__)%5Cn%5Cn%23%20%E5%80%9F%E9%98%85%E6%8F%90%E4%BA%A4%E6%8E%A5%E5%8F%A3%5Cn%40app.route(%5C%22%2Fapi%2Fborrow%5C%22%2Cmethods%3D%5B%5C%22POST%5C%22%5D)%5Cndef%20api_borrow()%3A%5Cn%20%20%20%20data%20%3D%20request.get_json()%5Cn%20%20%20%20user_id%20%3D%20data.get(%5C%22user_id%5C%22)%5Cn%20%20%20%20book_id%20%3D%20data.get(%5C%22book_id%5C%22)%5Cn%20%20%20%20return%20jsonify(%7B%5Cn%20%20%20%20%20%20%20%20%5C%22code%5C%22%3A200%2C%5Cn%20%20%20%20%20%20%20%20%5C%22msg%5C%22%3A%5C%22%E5%80%9F%E9%98%85%E6%88%90%E5%8A%9F%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%5C%22data%5C%22%3A%7B%5C%22user%5C%22%3Auser_id%2C%5C%22book%5C%22%3Abook_id%7D%5Cn%20%20%20%20%7D)%5Cn%5Cnif%20__name__%20%3D%3D%20'__main__'%3A%5Cn%20%20%20%20app.run(host%3D%5C%220.0.0.0%5C%22%2Cport%3D8080%2Cdebug%3DTrue)%5Cn%22%2C%22classes%22%3Anull%7D" data-cke-widget-keep-attr="0" data-cke-widget-upcasted="1" data-widget="codeSnippet">from flask import Flask,request,jsonify
app = Flask(__name__)
# 借阅提交接口
@app.route("/api/borrow",methods=["POST"])
def api_borrow():
data = request.get_json()
user_id = data.get("user_id")
book_id = data.get("book_id")
return jsonify({
"code":200,
"msg":"借阅成功",
"data":{"user":user_id,"book":book_id}
})
if __name__ == '__main__':
app.run(host="0.0.0.0",port=8080,debug=True)</pre><p><span class="cke_reset cke_widget_drag_handler_container" style="background:rgba(220,220,220,0.5);background-image:url(https://csdnimg.cn/release/blog_editor_html/release2.4.6/ckeditor/plugins/widget/images/handle.png);display:none;"></span></p><h1>四、技术拓展说明</h1><ol class=" list-paddingleft-2"><li><p></p></li><li><p>真实 RFID 硬件开发:需要厂商提供 RFID 读写器 SDK(C#/C++),读取 EPC 标签数据;</p></li><li><p></p></li><li><p>网页管理后台:可采用 Vue+SpringBoot / ThinkPHP 开发,实现书柜远程监控、借阅报表、设备管理;</p></li><li><p></p></li><li><p>聚澜智能成品智能书柜已完成全部软硬件开发,客户无需从零编写底层代码,设备可直接对接用户现有图书馆系统。</p></li></ol><p><span data-cke-copybin-end="1"></span></p><p><br/></p>