章政煥,鄔楊波,謝建軍
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
隨著近代化工產業的發展,高等院校作為高新化工技術的研發場所,其化學藥品的使用量呈現增大趨勢[1].這些高校的化學實驗室中通常存放著種類繁多、性質復雜、有毒有害、易燃易揮發的化學藥品.同時,實驗室人員流動密集,化學藥品使用量較大,稍有不慎就會引起火災、爆炸以及有毒氣體泄漏,從而造成一定程度的人員傷亡和財產損失[2-3].所以,高校的化學實驗室在化學藥品使用與存放方面有著嚴格的要求[4].但鑒于多數實驗室缺乏高效的管理手段,高校現有的化學藥品管理方式難以滿足學生日常使用需求,也給管理人員帶來較大工作負擔.
傳統化學藥品管理方式從藥品使用的申請、審批到用戶的借用歸還依靠人工管理,大多還普遍使用計算機存儲管理數據.這種方式雖然簡單易行,但是存在管理方式落后、數據無法共享、監管精細度低、數據易丟失等問題,限制了化學藥品使用的效率.部分高校實驗室也使用由MCU 控制驅動電路的電子存儲柜,用戶需要刷校園卡或手動輸入密碼,但用戶一旦丟失校園卡或忘記密碼就會造成不便和管理難度[5-7].這種方式在一定程度上雖然提高了管理效率,但藥品存放安全性低,身份驗證流程繁瑣,在日常使用中仍存在管理漏洞.
針對現有管理方式精細度低、安全性低、智能化程度不高的缺點,本文結合目前熱門的物品識別、生物識別等物聯網技術,提出了一種基于RFID和指靜脈識別的化學藥品智能管理柜(簡稱智能柜).智能柜以Exynos4412 主控模塊為核心,借助指靜脈識別模塊驗證用戶身份,使用RFID 物品識別模塊來輔助完成藥品的借還操作和入庫記錄,通過網絡通信模塊向云端服務器發送智能柜運行數據,并接收云端服務器的控制指令,管理員可以根據智能柜反饋的運行數據對智能柜做出相應調整.智能柜應用了RFID、指靜脈識別等物聯網技術,具有很高的智能化程度,旨在推動實驗室化學藥品的規范化、精細化管理,應用前景廣闊.
基于RFID 和指靜脈識別的化學藥品智能管理柜主要功能是存儲和管理實驗室化學藥品,識別和監測藥品流動去向;采集用戶指靜脈特征值,識別并驗證用戶身份信息,記錄用戶操作,并存儲數據到智能柜本地數據庫;與配套的云端服務器通信,上傳智能柜運行數據,接收服務器控制指令.
智能柜對用戶的身份信息進行認證,給予通過認證的用戶操作權限,拒絕未通過認證的用戶,從而保證化學藥品的安全性.目前,生物識別技術已經成為最為便捷與安全的身份識別解決方案,常用生物識別技術主要有指紋識別、虹膜識別、人臉識別、手指靜脈識別等.手指靜脈識別是一種新興的生物特征識別技術,使用特定波長的光線對手指前端進行照射,獲得特殊的手指靜脈成像圖,再對圖像進行分析處理以獲取手指靜脈的生物特征.由于每個人的手指靜脈特征都是獨一無二的,經過算法比對,可通過此特征確定身份.該技術有活體識別、生物特征不易磨損的優點,相較于指紋識別和人臉識別,識別準確度和可靠性更高[8-9],因而本智能柜使用指靜脈識別技術作為身份識別方式.
在實際應用場景中,智能柜要能夠準確識別出柜內存放的化學藥品,達到簡化藥品管理流程,降低管理難度的目的.目前主流的物品識別方式,主要有NFC、藍牙信標識別、掃描二維碼、RFID等.RFID 是一種非接觸式的自動無線電射頻識別技術,它利用了射頻信號及其空間耦合的傳輸特性,實現對靜止或移動物品的自動化識別.一個RFID 系統由閱讀器、射頻天線、電子標簽三部分構成,其原理是由閱讀器通過射頻天線發送一定頻率的無線電波能量給電子標簽,喚醒電子標簽內部的微型芯片,芯片返回唯一的EPC 碼給閱讀器,從而完成物品識別.RFID 具有識別速度快,不易受環境干擾,可識別距離遠,數據安全性高等的優點[10-11],本智能柜使用RFID 來進行化學藥品的識別.

圖1 智能柜工作流程示意圖
智能柜的基本工作流程如圖1 所示.智能柜通過指靜脈模塊采集用戶指靜脈特征值,驗證通過用戶身份后,主控模塊發出信號驅動電控鎖開啟柜門.用戶在智能柜操作界面查詢要借用(歸還)藥品的存放信息,并在語音播報模塊指示下,找到取出待借用(歸還)的化學藥品,然后關閉柜門.智能柜使用RFID 閱讀器掃描識別待借用藥品,與開門用戶的身份信息對應生成借還記錄,存儲到本地數據庫中.智能柜每日定時通過以太網向云端服務器上傳用戶錄入的指靜脈特征值、化學藥品借還記錄以及智能柜運行狀態信息.
智能柜的硬件采用模塊化設計,每個硬件電路模塊負責實現智能柜的一些功能,主控模塊連接控制其他模塊,模塊化設計使智能柜硬件便于維護和更新.智能柜硬件總體架構如圖2 所示,主要包括主控模塊、化學藥品識別模塊、用戶身份認證模塊以及系統電源管理模塊、網絡通訊模塊、聲光提示模塊和電控鎖等外圍輔助模塊.

圖2 智能柜硬件總體架構
主控模塊是整個智能柜硬件系統的核心,具有數據采集、控制和通信功能.考慮到系統的龐大和功能的復雜度,控制器主芯片采用高性能嵌入式處理器Exynos4412,其運行頻率1.4 GHz,片內外設資源豐富,可以快速處理系統數據.主控模塊外接存儲芯片,具有2 GB 運行內存和16 GB 存儲空間,可以運行基于Linux 的智能柜控制系統.主控模塊通過串口2 控制指靜脈模塊,對用戶身份進行驗證;通過串口3 控制RFID 閱讀器,識別檢測化學藥品;通過串口1 控制語音模塊播報相應的語音信息.
用戶身份認證模塊由指靜脈數據處理器、觸覺傳感器、紅外圖像采集器和紅外光源組成,模塊硬件架構如圖3 所示.使用嵌入式指靜脈數據處理器V2019,最大存儲1 500 個指靜脈模板,具有指靜脈圖像處理、特征提取、數據匹配和ID 輸出的功能.V2019 通過串口與主控模塊通信,接收主控模塊的信息錄入、身份認證等指令,將指靜脈身份認證結果反饋給主控器.主控模塊根據認證結果與用戶ID 數據庫進行比對,驗證通過后驅動電控鎖開啟智能柜柜門.模塊中加入觸覺傳感器用來感應手指位置,并引導用戶調整手指角度,以獲得最佳的指靜脈圖像,進一步增加識別成功率.

圖3 身份認證模塊硬件架構圖
藥品識別模塊由主控單片機、RFID 讀卡模塊、射頻開關、射頻天線等組成,其硬件架構如圖4 所示.本文使用RF100 射頻識別芯片讀取RFID 標簽信息,可快速識別大量標簽,識別距離可達到2 m.主控模塊通過串口向主控單片機發送控制指令,主控單片機通過串口向讀卡模塊傳遞指令掃描柜中的藥品,返回已識別標簽的EPC 碼到主控模塊.主控模塊獲取數據后,與數據庫中的藥品清單進行比對,生成藥品借還記錄,然后通過網絡上傳到云端信息管理平臺.

圖4 藥品識別模塊硬件架構圖
系統為提高藥品識別的準確度,使用多個天線掃描標簽,但多個天線收到的數據若同時返回會導致數據沖突,影響識別效果.因此加入射頻開關RF1450,由主控單片機控制開關按時間順序先后開啟各個天線通道采集射頻數據,避免了數據沖突.
為了使藥品柜處于最佳工作狀態,系統需要多種不同電壓為各模塊供電,選用電源管理芯片S5M8767 和DC/DC 芯片RT8065,將5 V 的輸入電壓轉化為模塊需要的電壓.S5M8767 為主控模塊供電,5 V 電源為RFID 模塊、電控鎖供電,指靜脈模塊和語音模塊由5 V 電源經降壓電路降壓為3.3 V供電.
網絡通信采用有線以太網連接方式,網絡接口芯片采用DM9621,是一種USB 轉10/100 Mbps的高速以太網控制器,實現了基于IEEE 802.3 及IEEE 802.3u 標準的10/100 Mbps 以太網LAN 功能.主控模塊通過USB 接口與DM9621 通信,將數據包通過以太網傳輸給云端平臺.
此外,智能柜使用LED 指示燈、蜂鳴器、語音播報、觸摸液晶屏等電路模塊指示系統狀態,幫助用戶更方便地使用智能柜.
智能柜控制系統(以下簡稱控制系統)運行在智能柜的主控模塊上,控制系統使用Linux 3.0.15版本的Linux 內核,內核加載控制柜子設備的驅動模塊;基于QT 架構開發智能柜終端應用軟件,方便用戶使用智能柜的各項功能.
圖5 為控制系統整體架構,控制系統分為4 層,系統最底層是硬件驅動層,加載柜子外設各類驅動程序,還包括引導Linux 內核啟動的BootLoader,上電后,系統具備控制柜子外設的能力.操作系統層采用嵌入式Linux 內核,注冊驅動模塊生成相應外設的設備節點.功能模塊層包含一系列功能子模塊,這些子模塊打開操作系統層的設備節點,調用驅動模塊提供的API 接口控制智能柜外設電路完成智能柜的身份認證、物品識別等功能.智能柜終端應用軟件構成控制系統的應用層,QT 提供簡潔美觀的用戶操作界面,用戶可以快速了解智能柜的使用方法;QT 獨特的信號與槽機制可將界面組件與功能模塊控制函數綁定,用戶在界面上簡單操作即可完成身份認證、藥品的查詢和借還.

圖5 智能柜控制系統整體架構圖
不同于其他嵌入式控制系統,本文所設計的智能柜控制系統具有良好人機交互設計,使用者通過用戶操作界面可像手機一樣方便地使用藥品柜.控制系統基于嵌入式Linux 內核設計,有良好的內存管理和進程控制機制,在保證系統穩定運行的同時,讓系統小型化.控制系統各項功能采用模塊化設計,每個模塊對應藥品柜的一項功能,掛載到系統的功能模塊層,使用者可根據實際情況增減功能模塊,從而滿足不同使用場景的需要.
用QT 編寫智能柜終端應用軟件,MySQL 數據庫存儲用戶、化學藥品及智能柜狀態信息.用戶使用指靜脈驗證身份后,可進行智能柜開啟、化學藥品查詢和借還等操作.具體智能柜終端應用軟件流程如圖6 所示.

圖6 智能柜終端應用軟件流程圖
基于http 數據包結構,在控制系統部分設計了如圖7 所示的智能柜狀態數據包用于本地智能柜與云端服務器通信.包開頭若干字節為請求行,包含請求方法、請求URL 和http 協議版本.請求行之后是由鍵值對構成的包請求頭,標注了請求主機的IP 地址以及請求數據大小等信息,占用若干字節.請求頭之后是空行,占用2 個字節,通知服務器以下不再有請求頭信息.空行之后是請求數據,包含智能柜向云端上傳的數據,智能柜設備名占用6 字節,上傳時間占4 字節,智能柜狀態數據占4 字節,藥品借還記錄占120 字節,用戶身份驗證記錄占80 字節,指靜脈錄入數據占1 500 字節.服務器收到數據包后,根據請求頭信息,將數據包分割解析出智能柜數據,存入云端數據庫中,管理員可根據數據統計結果對智能柜進行調整.

圖7 智能柜與云端通信數據包格式
通過上述智能柜的軟硬件設計,實現智能柜的功能,現對智能柜的身份識別、物品識別和網絡通信等基本功能進行測試.
由于指靜脈識別的速度和準確度通常與模板庫的大小相關,本次測試分別取10~50 個指靜脈模板構成模板庫,對1 個模板認證10 次,測算平均認證時間和認證準確度.測試結果見表1,從表中數據可見,認證時間隨著指靜脈模板數量的增多而加長,但是認證時間不超過0.2 s,且識別準確度均為100%,最終結果表明指靜脈識別方式快速準確,適合智能柜使用.

表1 不同模板數的指靜脈識別效果
RFID 藥品識別的準確度與藥品容器外殼材質以及藥品數量有關.本次測試選用玻璃、塑料兩種材質的容器,將容器按5 個、10 個、20 個的不同數量分批次進行測試.放置的容器之間無遮擋,均勻分布在儲物柜中,容器與柜壁保留15 cm 間隔.多個天線布置在側面,每次進行50 次盤存.測試方式如圖8 所示,并可從表2 測試識別結果可見,對于不同非金屬材質的容器,識別準確度有所不同,藥品數量對RFID 識別準確度也沒有影響,塑料和玻璃材質的容器都有著較高的識別準確度,完全能滿足日常使用.

圖8 藥品識別測試示意圖

表2 不同材質和數量容器的RFID 識別效果
RFID 藥品識別的準確度還與天線的位置和數量有關,在實際測試中分別使用單天線、雙天線和四天線進行測試,天線放置在柜內不同位置.柜內放置一定數量藥品,每次進行50 次盤存來測試對藥品的識別準確度.從表3 測試結果來看,天線布置在側面的識別準確度遠高于頂部,而柜內側面是最佳的天線位置,天線在正對標簽時能減少信號的能量損耗,而且天線數量越多,識別準確度越高.
在實際使用中,為獲得最好的藥品識別效果,一方面系統應使用多天線模式,并將天線安裝在柜內側面,以提高盤存功率和增加盤存次數;另一方面藥品存放應選用非金屬材質的容器,并盡量將標簽正對RFID 天線.

表3 不同數量天線的RFID 識別效果
智能柜通過以太網連接到互聯網,從而與云端服務器通信.智能柜每日定時通過網絡鏈路將http 通信數據包發送到云端服務器,同時接收來自云端的控制指令.本次測試將智能柜連入互聯網,與云端服務器建立連接,分別將1 000、2 000、3 000、4 000、5 000 字節的數據包發送到服務器,每種包各發送20 次,記錄平均包傳輸時間與丟包率.從表4 測試結果可見,隨著包數據量的增大,數據包的平均傳輸時間也相應增大,均未發生數據包丟失.結果表明智能柜與服務器通信鏈路正常,數據傳輸快速而且穩定,符合智能柜網絡通信的設計要求.

表4 智能柜與云端服務器通信測試
當今社會是物聯網時代,化學藥品管理系統參照物聯網架構設計,運用物聯網技術,并搭建云端平臺輔助管理,這種全新的管理方式是現代實驗室化學藥品管理系統的發展趨勢.本文針對目前實驗室化學藥品管理精細度低、安全性不高的現狀,研究設計了一種基于RFID 和指靜脈識別的化學藥品智能管理柜.用戶利用指靜脈識別身份,智能柜通過RFID 識別監管化學藥品,管理數據存到云端用以核驗.對智能柜的指靜脈識別模塊、RFID物品識別模塊、網絡通信模塊等一系列外圍輔助模塊分別進行功能測試.指靜脈識別認證時間小于0.2 s,認證成功率100%.RFID 物品識別使用塑料容器的準確度為100%,使用玻璃容器的準確度可達97%,識別時間小于0.1 s.網絡通信丟包率0%,傳輸時間小于0.01 s,數據吞吐量滿足智能柜日常使用需求.用戶通過液晶屏可以方便地使用智能柜,人機交互設計完備.系統實驗結果表明,本智能柜具有安全可靠、精細度高、使用方便等優點,將會大大提升實驗室中化學藥品管理的便捷性、智能性、安全性和信息化程度.