151 3746 0293

行业动态

智能书柜是以RFID 射频识别技术为核心,结合单片机 / 工控主板、触控屏幕、扫码模块、电控锁、云端管理后台打造的 24 小时自助图书借阅设备,读者可自助完成借书、还书、图书查询、一键盘点,管理员远程管理图书数据。聚澜智能智能书柜软硬件一体化方案,广泛用于校园书屋、社区城市书房、企事业单位职工图书室。聚澜
智能书柜项目介绍-能书柜软硬件一体化方案
时间:2026-08-27 14:29:24
<p><span data-cke-copybin-start="1"></span></p><h3><span id="cke_bm_412S" style="display:none">&nbsp;</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&#39;name&#39;%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&#39;name&#39;%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&#39;name&#39;%5D%7D%20%20%E7%8A%B6%E6%80%81%3A%7Binfo%5B&#39;status&#39;%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&nbsp;time import&nbsp;json #&nbsp;==========&nbsp;模拟数据库&nbsp;========== book_list&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&quot;B001&quot;:{&quot;name&quot;:&quot;人工智能基础&quot;,&quot;status&quot;:&quot;在架&quot;}, &nbsp;&nbsp;&nbsp;&nbsp;&quot;B002&quot;:{&quot;name&quot;:&quot;全民阅读读本&quot;,&quot;status&quot;:&quot;在架&quot;}, &nbsp;&nbsp;&nbsp;&nbsp;&quot;B003&quot;:{&quot;name&quot;:&quot;乡土文学选集&quot;,&quot;status&quot;:&quot;借出&quot;} } borrow_record&nbsp;=&nbsp;[] #&nbsp;==========&nbsp;RFID模拟读取函数&nbsp;========== def&nbsp;read_rfid_tag(): &nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;模拟RFID读到图书标签编号&quot;&quot;&quot; &nbsp;&nbsp;&nbsp;&nbsp;tag_id&nbsp;=&nbsp;input(&quot;请扫描图书标签(输入图书编号如B001):&quot;) &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;tag_id.strip() #&nbsp;==========&nbsp;电控锁控制模拟&nbsp;========== def&nbsp;control_door_lock(open_flag:bool): &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;open_flag: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;【锁具控制】柜门已打开,请存取图书&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time.sleep(3) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;【锁具控制】柜门自动关闭并上锁&quot;) &nbsp;&nbsp;&nbsp;&nbsp;else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;【锁具控制】柜门保持锁定&quot;) #&nbsp;==========&nbsp;借书流程&nbsp;========== def&nbsp;borrow_book(user_id): &nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;=&nbsp;read_rfid_tag() &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;tag&nbsp;not&nbsp;in&nbsp;book_list: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;图书不存在!&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;book&nbsp;=&nbsp;book_list[tag] &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;book[&quot;status&quot;]&nbsp;==&nbsp;&quot;借出&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;该书已被借出,无法借阅&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;执行借书 &nbsp;&nbsp;&nbsp;&nbsp;book[&quot;status&quot;]&nbsp;=&nbsp;&quot;借出&quot; &nbsp;&nbsp;&nbsp;&nbsp;borrow_record.append({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;user&quot;:user_id, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;book_id&quot;:tag, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;opt&quot;:&quot;borrow&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;time&quot;:time.ctime() &nbsp;&nbsp;&nbsp;&nbsp;}) &nbsp;&nbsp;&nbsp;&nbsp;control_door_lock(True) &nbsp;&nbsp;&nbsp;&nbsp;print(f&quot;借书成功!《{book[&#39;name&#39;]}》&quot;) #&nbsp;==========&nbsp;还书流程&nbsp;========== def&nbsp;return_book(): &nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;=&nbsp;read_rfid_tag() &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;tag&nbsp;not&nbsp;in&nbsp;book_list: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;图书不存在!&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;book&nbsp;=&nbsp;book_list[tag] &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;book[&quot;status&quot;]&nbsp;==&nbsp;&quot;在架&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;该书本来就在书柜内,无需归还&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;book[&quot;status&quot;]&nbsp;=&nbsp;&quot;在架&quot; &nbsp;&nbsp;&nbsp;&nbsp;borrow_record.append({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;book_id&quot;:tag, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;opt&quot;:&quot;return&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;time&quot;:time.ctime() &nbsp;&nbsp;&nbsp;&nbsp;}) &nbsp;&nbsp;&nbsp;&nbsp;control_door_lock(True) &nbsp;&nbsp;&nbsp;&nbsp;print(f&quot;还书成功!《{book[&#39;name&#39;]}》&quot;) #&nbsp;==========&nbsp;盘点功能&nbsp;========== def&nbsp;inventory_books(): &nbsp;&nbsp;&nbsp;&nbsp;print(&quot;\n=====开始RFID批量盘点====&quot;) &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;bid,info&nbsp;in&nbsp;book_list.items(): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(f&quot;{bid}&nbsp;&nbsp;{info[&#39;name&#39;]}&nbsp;&nbsp;状态:{info[&#39;status&#39;]}&quot;) &nbsp;&nbsp;&nbsp;&nbsp;print(&quot;盘点完成,数据上传云端\n&quot;) #&nbsp;==========&nbsp;主菜单&nbsp;========== def&nbsp;main(): &nbsp;&nbsp;&nbsp;&nbsp;print(&quot;=====聚澜智能‑智能书柜自助系统=====&quot;) &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;True: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;\n1.借书&nbsp;&nbsp;2.还书&nbsp;&nbsp;3.图书盘点&nbsp;&nbsp;0.退出&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;choice&nbsp;=&nbsp;input(&quot;请选择功能:&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;choice&nbsp;==&nbsp;&quot;1&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uid&nbsp;=&nbsp;input(&quot;输入读者编号:&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;borrow_book(uid) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif&nbsp;choice&nbsp;==&nbsp;&quot;2&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return_book() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif&nbsp;choice&nbsp;==&nbsp;&quot;3&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inventory_books() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif&nbsp;choice&nbsp;==&nbsp;&quot;0&quot;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;系统退出&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&quot;无效选项&quot;) if&nbsp;__name__&nbsp;==&nbsp;&quot;__main__&quot;: &nbsp;&nbsp;&nbsp;&nbsp;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&#39;__main__&#39;%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&nbsp;flask&nbsp;import&nbsp;Flask,request,jsonify app&nbsp;=&nbsp;Flask(__name__) #&nbsp;借阅提交接口 @app.route(&quot;/api/borrow&quot;,methods=[&quot;POST&quot;]) def&nbsp;api_borrow(): &nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;=&nbsp;request.get_json() &nbsp;&nbsp;&nbsp;&nbsp;user_id&nbsp;=&nbsp;data.get(&quot;user_id&quot;) &nbsp;&nbsp;&nbsp;&nbsp;book_id&nbsp;=&nbsp;data.get(&quot;book_id&quot;) &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;jsonify({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;code&quot;:200, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;msg&quot;:&quot;借阅成功&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;data&quot;:{&quot;user&quot;:user_id,&quot;book&quot;:book_id} &nbsp;&nbsp;&nbsp;&nbsp;}) if&nbsp;__name__&nbsp;==&nbsp;&#39;__main__&#39;: &nbsp;&nbsp;&nbsp;&nbsp;app.run(host=&quot;0.0.0.0&quot;,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>
请留下您的联系方式,我们免费为您提供最新方案和报价
提 交
15137460293 发送短信
报名免费获取设计方案及报价