吳瀧彬,謝宇飛,劉 森,李 彪,段曉輝,
(北京大學a.電子學院;b.電子信息科學基礎實驗中心,北京 100871)
隨著國內外高校對于電子信息類創新型人才培養,特別是需要不斷加強復雜工程能力的培養,在開放式實驗室中開展以學生為中心、項目驅動的系統創新、設計和實踐課程已成為一種重要的培養方式。在系統設計實踐中,學生自主設計、自主采購、自主開發和自主測試的學生自主開發模式日益得到廣泛應用,實驗室管理如何適應以學生為中心的特點也逐漸被重視。支持學生創新能力培養,提供學生自主開發所需要的高效、彈性和復雜等新型實驗室特性已成為開放實驗室日益重要的管理要求[1]。
對于電子系統設計類的實驗室管理系統不僅需要方便錄入和查找器件信息、高效獲取設計參考資料以及實驗器件的快速領用,同時應當記錄使用信息,以便對器件進行回收利用,減少器件浪費,降低開放實驗室運行成本[2-3]。傳統的器件管理一般采用紙筆進行登記和記錄,效率低下。計算機技術使實驗室的器件管理進入信息化管理時代[4-6],但仍然存在不足[7-8]。現有支持器件管理的實驗室管理信息系統基本可分為兩種:①器件信息登記系統。系統可錄入器件的信息與數量,使用者可在系統上查詢到所需的器件,之后再找管理員領用該器件[9-11]。這種系統構成簡單,但在器件實物的領用還需要管理員介入,增加人力負擔。②系統不僅登記器件的信息與數量,同時登記相應位置。使用者可在系統上登記并到相應位置直接領用該器件。但一般此類系統需要與硬件系統聯動,如元件盒[12]、鎖具[13]、RFID[14-15]等。此類系統雖然在實物的領用實現無人化,但需要增加硬件成本。同時由于硬件的限制,器件存儲位置需要集中在元件柜或設備柜。上述系統雖然均實現了小型元器件的登記管理,但如果同時實驗室還有較大尺寸的器件模塊,包括儀器、設備和工具也需要實現管理,則存在不適合或不方便放入存儲柜中,同時一般也只在固定地點使用,且登記使用的手續煩瑣[16-17]。
因此,提出一種基于手機的便捷式、輕量級彈性開放實驗室管理系統。教師或助教可以通過手機,在系統登記器件的信息,包括名稱、類別、數量和參考資料等,并采用拍照的方式錄入其位置信息。學生則可以通過手機查詢器件,并按照位置照片自行找到器件,并進行拍照領用。這樣使得器件的存放位置不需要集中和固定,也無須其他硬件成本即可實現管理。系統也可支持儀器和工具的登記、查詢、授權、領用和歸還管理。系統還將記錄學生器件和設備的詳細使用信息,以便監督歸還和回收。同時,對于自行購買的器件,學生可自行錄入相應的器件信息系統。系統同時支持手機簽到和簽出的實驗室出入考勤管理。
系統設計從開放實驗室現狀與需求出發,對分散的器件與設備儀器進行統一管理。①對儀器器件的詳細信息進行記錄,包括名稱、類別、位置以及數量等,方便使用者查找。②對于可回收利用的器件以及重復使用的儀器,應當做到監督回收。③系統使用方式應當盡可能簡便,減少額外的使用和管理工作量。系統考慮使用手機作為主要的學生客戶端和教師管理客戶端,后臺采用MySQL 數據庫和Web 網頁服務器來實現,具有方便、高效的特點。同時系統考慮采用拍照的方式進行位置登記和領用登記,直觀有效,輕便又無須額外硬件。系統設計還考慮采用動態令牌和動態二維碼實現安全管理。
圖1 表示了該系統的應用場景。教師、助教和學生通過無線網或移動網,使用手機掃描二維碼便可快速訪問開放實驗室管理系統。在開放實驗室管理系統,學生可以查詢和使用實驗室內的分散的元器件、設備儀器與工具。同時,學生通過掃描實驗室門口大屏上的二維碼來進行考勤。對于新購買的器件和設備,教師、助教和學生均可以在系統上通過填寫和拍照的方式進行入庫操作,而對具體的存儲位置不做詳細要求。

圖1 系統使用場景
開放實驗室管理系統根據業務需要進行模塊化設計。系統包含了4 個模塊,即系統管理、考勤管理、使用管理和器件設備管理。具體如圖2 所示。

圖2 系統功能
系統管理模塊處理用戶身份相關功能,分為登錄注冊、普通用戶和管理員。模塊具有注冊、登錄、修改用戶信息以及身份鑒權功能。管理員可以編輯普通用戶的信息。
考勤管理模塊處理出入考勤相關功能,分為簽到簽退與考勤記錄。簽到簽退應當足夠便捷方便;同時考勤記錄應當可以導出相關記錄,便于管理員存儲留檔。
使用管理模塊處理器件設備查詢借還相關功能。功能包括器件的查詢、使用、歸還、報損以及審批。對于需要審批的器件設備,管理員對該次使用記錄有審批功能。
器件設備管理模塊處理器件設備信息相關功能,包括入庫、編輯和智能庫存。器件設備的入庫在滿足對信息的完整錄入的同時,操作應當方便快捷。同時應當滿足開放實驗室的初衷,減少實驗室管理人員的介入。智能庫存功能實現了對庫存的智能清點,進一步減少人員負擔。
為了提高系統的可靠性和易維護性,系統使用瀏覽器/服務器(B/S,Browser/Server)模式。因為有手機和PC兩種顯示終端,采用前后端分離技術。前端服務器處理用戶交互和數據展示工作,后端服務器負責數據處理以及存儲。前后端間使用HTTP 進行通信,各個前端可以共用一套后端接口,簡化開發同時解耦功能使得系統便于維護(見圖3)。

圖3 系統架構
前端使用Vue框架。Vue是一套用于構建用戶界面的漸進式框架。與其他大型框架不同的是,Vue 被設計為可以自底向上逐層應用。利用Vue 框架,可以更加快速和便捷得開發前端頁面。
后端使用Python 語言。Python 大量的開源組件庫方便我們快速開發所需功能。Web 框架采用FastAPI。FastAPI 是一個用于構建API 的現代、快速、高性能的Web框架。
數據庫使用MySQL,同時使用Nginx 作為反向代理服務器。MySQL 是一個開源的關系型數據庫管理系統,支持大型數據庫。Nginx 是一個高性能的HTTP和反向代理Web服務器,具有高并發高可用特點。
表1 展示了用戶信息表存儲用戶的信息,包括用戶名、密碼和角色等。該表用于維護用戶信息、用戶登錄、用戶鑒權等功能。

表1 用戶信息表主要字段
表2 展示了器件設備信息表存儲器件設備的信息,包括器件設備名、位置和數量等。該表用于錄入、查詢器件設備信息、維護器件設備數量等功能。

表2 器件設備信息表主要字段
表3 展示了使用記錄主表存儲使用記錄的狀態信息,包括用戶ID、器件ID和數量等。該表用于維護使用記錄狀態、記錄使用數量等功能。

表3 使用記錄主表主要字段
表4 展示了使用記錄流水表存儲使用記錄的操作信息,包括使用記錄主表ID、操作類型和數量等。該表用于維護使用記錄操作信息、記錄使用記錄操作數量、存儲歸還位置等功能。

表4 使用記錄流水表主要字段
以上所有表除了主要字段外,還設有如編號ID、創建時間、創建用戶、更新時間、更新用戶、刪除標志位等技術字段,用于條件判斷等技術功能。
(1)身份驗證。接口是通過HTTP 協議來進行數據交換的,而HTTP 協議的特點是無狀態的。因此每次都需要重新驗證身份,既耗費了性能,也給留有安全隱患。解決辦法有cookie、session以及token等技術方案。我們采用更加方便的token令牌。
如圖4 所示,所有用戶在登錄后,會根據用戶名與密碼的MD5 值生成唯一的token 令牌,并緩存于內存上。之后的所有請求都要求帶上token,服務端會校驗并刷新token有效時間。當token無效或失效時,服務端會拒絕服務并返回信息。

圖4 令牌token校驗
(2)器件設備入庫。實驗室的器件和設備,一部分由實驗室統一安排購買,也有學生在開展自主設計時自行購買,還有學期末學生歸還的可復用器件、模塊和設備等。因此要求系統可以支持助教或教師管理員入庫或普通學生用戶自行入庫。如圖5 所示,用戶在入庫時,需要輸入器件設備基本信息、位置信息以及補充信息。下面簡要說明部分主要信息以及其輸入方式:①器件設備名。由用戶自行輸入。②類別。耐用品/消耗品,選擇項。③是否審批。選擇項。④種類。所屬的類別,如電阻、電容、示波器等,提供可選建議項或由用戶輸入。⑤使用項目。可用于的項目,提供可選建議項或由用戶輸入。⑥總數。入庫的器件總數。⑦簡介。器件設備的簡單描述。⑧一級位置圖片。用戶對存儲的粗略位置進行拍照,同時在圖片上標記出位置。⑨二級位置圖片。用戶對更詳細的位置進行拍照,同時在圖片上標記出位置。○10 圖片。器件設備本身的圖片。○1 文件。可上傳器件設備相關的文檔,包括使用說明、范例等。

圖5 器件設備入庫流程
(3)器件設備使用。對器件設備的使用、消耗和審批操作均會留下相應記錄以及流水。圖6 展示了器件設備使用流程,其使用記錄的生命周期如下:①首先由用戶的創建動作開始,進入開始狀態,開始該次使用記錄生命周期。②若選擇的器件設備為消耗品,進入消耗結束狀態。③若選擇的器件設備需要審批,則進入待審批狀態。④若審批不通過則進入審批未通過結束狀態。⑤若選擇的器件設備不需要審批或審批通過則進入待歸還狀態。⑥在待歸還狀態時,可以進行多次報損和歸還動作,并減少相應待歸還數量。⑦待歸還數量為0 為后進入結束狀態,該次使用記錄生命周期結束。

圖6 器件設備使用流程
(4)考勤管理。為了實現無紙化,同時滿足實際制度要求,考勤的簽到簽出采用二維碼掃碼實現。在實驗室的大屏上展示簽到簽出二維碼,同時二維碼為定時刷新。使用者直接掃描二維碼將會彈出簽字頁,署名后保存即可保存記錄。管理員可在系統中選擇導出確定時段的考勤記錄文檔。文檔實現自動格式化,保存時間、考勤類別以及簽字,以便打印留檔。
為了便于使用,系統將同時部署適配PC 與手機的頁面。得益于前后端分離的架構,API 無須重新適配。手機頁面采用Icon式的設計,符合人們的使用習慣。同時盡可能減少文字輸入的操作,改為選擇或點擊式,方便在手機上進行操作。PC 頁面采用側邊菜單。在PC以及手機的頁面展示上,對不同角色權限展示相應權限的菜單以及功能,避免越權。
系統服務器為Ubuntu 20.04.6,測試手機平臺為iphone8,測試PC 平臺為Windows10。主要的軟件組件:Nginx-1.18.0、Vue-2.6.1、Python-3.8.13、FastAPI-0.85.0、MySQL-8.0.33。
學生、助教或教師使用手機掃描實驗室簽到屏幕中、實驗室墻上或元器件柜上的開放實驗室二維碼,如圖7(b)中的便可快速進入系統主頁,若處于未登錄狀態則進入登錄頁。登錄進入手機首頁,如圖7(a)所示,可以看到輪播圖以及Icon 菜單。學生需要簽到簽退時,手機掃描圖7(b)中的簽到或簽退二維碼,便可快速進入簽字頁。

圖7 系統首頁
學生在手機首頁點擊添加器件可以看到需要填寫器件信息。填入或選擇器件設備名、類別、是否審批、種類、使用項目、總數、簡介、價格、購買鏈接、文檔鏈接等信息,如圖8(a)所示。而位置信息是通過拍照后點擊器件所在相應位置,便可以快速標注出器件的一二級位置,如圖8(b)所示。同時對于上傳文件這類不方便于手機頁面的操作,用戶也可以在手機上先直接保存其他器件信息后,在PC 頁面上對該器件信息進行編輯操作時補充上傳。

圖8 器件設備錄入
學生在手機首頁點擊器件查詢,便可以看到器件列表,如圖9(a)所示。點擊需要的器件后可以看到器件詳情,如圖9(b)所示。點擊使用,選擇相應數量就可以使用該器件。同時在使用記錄中可以查詢到相應記錄,如圖9(c)所示。對于需要操作的使用記錄,點擊進入后便可以看到詳情并進行相應操作,包括歸還、報損、審批等操作,如圖9(d)所示。

圖9 器件設備領用
用戶也可在PC頁面上進行器件信息錄入或修改補充。管理員在PC登錄系統后,可在PC 頁面上看到管理界面。管理員可在系統上進行包括修改用戶信息、重置用戶密碼、查詢導出考勤記錄、修改大屏二維碼等管理功能。
為了滿足以學生為中心的實驗教學方式,本文構建一種新式彈性的開放實驗室器件管理系統。系統可在脫離硬件系統的條件下,實現對器件設備的信息、位置以及數量等要素的登記錄入。同時對存放方式以及物品類別不做要求,可以分散存放以及錄入儀器、工具等,也可以由學生自主錄入,使得該系統具有更加靈活彈性的使用條件。同時系統記錄了使用流水,以便監督器件設備的使用以及回收。系統可以方便地擴展到實現手機對實驗室自主出入管理、實驗臺自主實驗管理等。未來系統還可引入人工智能技術,使得拍照即可獲得器件信息,更加方便器件的錄入,包括基于圖片的查詢、基于圖片的智能庫存盤點、ChatGPT人機交互等智能化管理功能。