李 川, 劉洲洲, 李美蓉
(西安航空學院計算機學院,西安 710077)
現代物流不僅涉及原料的采購過程,還包括產品制造、銷售過程中的運輸、保管等環節[1],物流的目標是提高經濟效益和運行效率、滿足消費者的需求。現代物流朝著信息化、自動化、網絡化、智能化、柔性化、標準化、社會化和共同化的方向發展[2]。倉儲是現代物流的一個重要環節,倉儲管理的效率對整個物流效率影響比重很大。如何提升現代物流中倉庫管理水平是近年來一個研究熱點,隨著數據庫技術、互聯網技術、物聯網技術和人工智能等技術不斷發展,利用這些技術設計的智能倉庫系統應運而生。各大物流公司及電子商務公司都建立了物流系統及智能倉庫,這些系統標準化程度高、構建費用高,在很多中小型企業中并不適用[3]。中小型企業智能倉儲的應用需求一般包括:存儲物品的類型、廠商、單價和批次等信息,保證物品數據的采集效率和處理精度,及時準確獲取庫存信息,用戶數量少但安全性要求高,根據物品出入庫情況智能調整物品庫存[4],定期盤點物品庫存,根據需求進行數據統計,打印出、入庫單等報表[5]。
針對中小型企業倉儲應用需求,基于數據庫、互聯網、物聯網和人工智能等技術設計智能倉庫系統。系統選用32 bit 系列微控制器芯片(STMicroelectronics32,STM32)單片機作為核心控制模塊,搭載K210 人臉識別模塊鑒別用戶身份,使用多頻識別卡522 系列(Multi-Frequency Read Card 522,MFRC522)無線射頻身份識別(Radio Frequency Identification,RFID)的物品識別模塊完成物品出入庫管理;物品倉儲信息管理采用結構化查詢語言服務(Structured Query Language Server,SQL Server)數據庫技術,應用軟件系統采用C#.NET 技術設計窗體應用程序,實現用戶管理、物料類型管理、物品管理、庫存盤點、數據統計、智能決策和報表打印等功能;硬件平臺通過串口與應用系統全雙工通信,通過人體生物特征識別與口令技術雙重身份認證確保系統安全性。
智能倉庫硬件系統主要包括STM32 控制器、MFRC522 物品識別模塊、K210 人臉識別模塊和倉庫門禁電子鎖舵機等,其結構如圖1 所示。

圖1 智能倉庫硬件系統結構
采用STM32F103C8T6 作為智能倉庫的主控模塊,搭載其他應用模塊。該系統結構可分為Cortex-M3 內核總線矩陣[6]、直接內存讀取(Direct Memory Access,DMA)、先進的高性能總線(Advanced High _performance Bus,AHB)、高級外圍總線1(Advanced Peripheral Bus 1,APB1)以及高級外圍總線2(Advanced Peripheral Bus 2,APB2)上掛載的外設等部分,系統總線分為指令總線和數據總線,兩種總線的獨立設計提升了系統并行效率,具體系統結構如圖2所示。

圖2 STM32F103C8T6系統結構
MFRC522 射頻識別芯片用于智能倉庫系統RFID物品識別,該芯片用于非接觸式讀寫卡,具有集成度高、應用面廣等特點[7]。MFRC522 包括發送和接收,其中發送利用調制和解調的原理,驅動讀寫器天線與非接觸智能卡通信,可接收非接觸智能卡的應答信號并進行解碼處理[8]。MFRC522 還包括數據幀校驗、奇偶校驗、數據加密/解密。另外,MFRC522 包括多個寄存器,用于存儲數據及狀態控制。MFRC522 可相連串行外設接口(Serial Peripheral Interface,SPI)、集成電路總線(Inter-Integrated Circuit,I2C)和串行通用異步收發器(Universal Asynchronous Receiver Transmitter,UART)等微控制器接口,具有較強的兼容性,其體系結構如圖3 所示。

圖3 MFRC522體系結構
智能倉庫系統選用SQL Server 作數據庫平臺,它是一種關系型數據庫系統,與Windows 系統具有良好的兼容性,具有較高性能及安全性[9],常用于客戶機/服務器(Client/Server,C/S)結構軟件。SQL Server 提供數據定義、數據存儲、數據操作、事務管理、數據維護和數據安全管理等功能[10]。
.NET是一種技術平臺,該平臺支持多種語言的運行,包括C#語言,選用C#. NET 技術作為智能倉庫系統的設計技術方案,是因為C#. NET 與Windows 系統、SQL Server 數據庫都具有良好兼容性,且采用C#.NET 技術可非常方便、高效地開發Windows 窗口(Windows Form,WinForm)程序。系統采用SQL Server設計智能倉儲系統數據庫,主要包括用戶表、物品表、物品類型表、入庫表及出庫表,使用C#.NET設計系統的相關功能。
系統需進行用戶身份鑒別(用戶人臉信息需要提前錄入),身份鑒別成功后開啟倉庫電子鎖,啟動智能倉庫應用軟件系統,使用用戶口令登錄系統,選擇出入庫操作,采用RFID識別物品信息,并將物品信息通過單片機串口傳輸到軟件應用系統,系統根據操作將數據保存在SQL Server 數據庫,還可根據需要選擇系統的其他功能,系統的總體流程如圖4 所示。

圖4 系統工作流程
系統采用人體生物特征——人臉識別進行用戶身份鑒別,人臉識別采用K210 芯片[11-12],并基于MaixPy對人臉識別過程進行優化,人臉識別流程如圖5 所示。

圖5 優化人臉識別流程
基于口令的用戶身份識別可采用靜態密碼和動態驗證碼的方式[13],動態驗證碼需云平臺支持,考慮到中小型企業實際情況,系統采用靜態密碼的方式,具體流程如圖6 所示。

圖6 用戶口令驗證流程
RFID 物品識別使用MFRC522 讀取集成電路(Integrated Circuit,IC)卡信息,該模塊支持串行I2C串口通信和串行UART 通信[14]。要識別的物品上配置M1非接觸式IC卡[15],每張卡上均有32 bit 唯一物品編號(Unit Identity Document,UID),卡內存儲器最大容量可以是每一個8 KByte的帶電可擦可編程只讀存儲器(Electrically Erasable Programmable Read Only Memory,EEPROM),MF RC522 與M1卡通信流程如圖7 所示。MFRC522 可讀取M1卡中的物品信息,但需區分入庫與出庫,才能將讀取的物品信息記錄到應用系統指定的數據表。通過STM32 及MFRC522 實現物品出入庫流程如圖8 所示。

圖7 MFRC522與M1卡通信流程

圖8 通過STM32及MFRC522實現物品出入庫流程
根據需求分析,設計數據模型,數據模型主要包括實體:用戶、物品、物品類型、出庫單和入庫單等,數據模型及聯系如圖9 所示。

圖9 智能倉庫數據模型及聯系
數據物理模型采用SQL Server 數據庫存儲,基于C#. NET 平臺設計WinForm 程序,采用. NET ActiveX數據對象(Activex Data Objects. NET,ADO. NET)技術訪問SQL Server 數據庫,通過串口與RFID通信,智能倉庫應用系統主要功能包括用戶管理、物品類別管理和物品管理等,功能結構如圖10 所示。
系統測試軟硬件環境見表1。

表1 智能倉庫系統測試環境
系統測試的主要功能包括人臉識別、物品識別、物品出入庫、物品管理、物品類型管理、用戶管理、庫存盤點、數據統計、智能決策和報表打印,具體測試情況見表2。

表2 系統功能測試
基于數據庫、互聯網、物聯網和人工智能等技術設計智能倉庫系統,系統分為硬件和軟件部分,硬件部分利用物聯網技術進行用戶身份及物品信息識別,采用STM32 單片機作為智能倉庫主控模塊,搭載人臉識別模塊鑒別用戶身份,RFID 模塊用于物品識別;軟件部分采用SQL Server 數據庫系統,應用軟件系統采用C#.NET技術設計Windows 窗體應用程序,主要功能包括用戶管理、物品類型管理、物品管理、庫存盤點、數據統計、智能決策和報表打印等;硬件平臺通過串口與應用系統全雙工通信,通過人體生物特征識別與口令技術雙重身份認證確保系統的安全性。系統通過人臉識別進行用戶身份鑒別,身份鑒別成功后開啟倉庫電子鎖,啟動智能倉庫應用軟件系統,使用用戶口令登錄系統,選擇出入庫操作,采用RFID 識別物品信息,并將物品信息通過單片機串口傳輸到軟件應用系統,系統根據操作將數據保存在SQL Server 數據庫中,另外還可根據需要選擇系統的其他功能。實驗測試結果表明,系統設計方案可行,各項功能正常,安全性較高,雖然物品識別距離有限,未達到額定范圍,但對功能的正常使用影響不大。系統具有靈活、智能、高效等優點,但智能決策模塊在系統期初運行時可能因為數據樣本小而存在決策結果偏差,另外系統并不適用大型連鎖倉儲系統。
·名人名言·
實驗上的失敗,可能成為發現的開端。
——巴甫洛夫