梁民, 王建
(中國人民大學, 實驗室管理與教學條件保障處, 北京 100872)
中國人民大學圖書館自習區(qū)共2461個自習座位,各類在校生共計3萬多。由于自習區(qū)座位數(shù)量有限,在校學生數(shù)多,經(jīng)常會出現(xiàn)學生不排隊無序搶座的現(xiàn)象。同時,存在使用水杯、書包或者圖書等占座但又不使用的問題。為了解決以上問題,中國人民大學圖書館購置了座位管理系統(tǒng)并投入使用,提前預約座位的方式。較好地解決了無序搶座和占座不用等問題。
系統(tǒng)投入使用后,運維人員發(fā)現(xiàn)預約者選座成功后,有不到或者遲到早退現(xiàn)象,如果他們不主動地在管理系統(tǒng)釋放座位,即使為空座,其他用戶在座位管理系統(tǒng)中也無法選擇此座位,由此帶來了資源浪費。根據(jù)中國人民大學圖書館相關部門調研和統(tǒng)計發(fā)現(xiàn),約90%左右讀者預約時間未到提前離開,不會主動在系統(tǒng)里釋放座位,造成大量空座但又在系統(tǒng)無法被選,此現(xiàn)象在中午十一點到十二點之間以及下午四點到五點之間尤其普遍。
上述現(xiàn)象,在使用了座位管理系統(tǒng)的高校圖書館,具有普遍現(xiàn)性。為了解決此問題,使用了座位管理系統(tǒng)的各高校圖書館,如文獻[1]所述,采用了不同的管理制度和懲罰措施,約束預約者遲到或者提前離開時主動釋放座位,一定程度上降低了座位空置率。中國人民大學圖書館通過加強宣傳力度和增加運維人員巡檢頻次,通過及時釋放座位來解決此問題。
靠管理制度和增加運維人員來解決上述問題,增加了運維成本,同時,某些時候也不可避免會造成了管理人員和座位預約者之間的矛盾。“工欲善其事,必先利其器”,要提高管理效率、減少運維成本,同時也減少工作人員與學生之間的矛盾,就需要開發(fā)更符合實際工作需求的、經(jīng)濟可行的軟硬件系統(tǒng),提供更為智能的管理方式,建設高效、智能、自動化的管理體系。
基于以上情況,文章在原座位管理系統(tǒng)基礎上,進行了深入研究,對系統(tǒng)進行了如下優(yōu)化。
(1) 設計了一套硬件系統(tǒng),能夠采集座位有人/無人信息,并能把采集到的信息傳遞給軟件系統(tǒng)。
(2) 同時,對軟件系統(tǒng)進行了二次開發(fā),對遲到或者早退的座位預約者,系統(tǒng)自動發(fā)送短信,提醒用戶在系統(tǒng)中釋放座位操作;預約了座位而一定時間內無人的座位,后臺自動釋放此座位。
通過以上優(yōu)化研究方案,較好地解決了座位管理系統(tǒng)存在的遲到早退不在系統(tǒng)主動釋放座位,而使座位資源浪費這一問題。
圖書館座位管理系統(tǒng)優(yōu)化方案設計如下。
(1) 設計一套硬件系統(tǒng),對已預約的座位,通過探測座位區(qū)域的溫度(有人時,探測到的溫度為37±2 ℃,無人時,探測到的溫度<30 ℃),判斷座位上是否有人,從而達到采集座位狀態(tài)(有人/無人)信息的目的,并把座位狀態(tài)信息實時傳輸?shù)椒掌鞫恕?/p>
硬件系統(tǒng)主要包括傳感器模塊、控制模塊以及基站設備[2]。其中傳感器模塊主要功能為對座位狀態(tài)(有人/無人)進行監(jiān)測,然后傳送給控制單片機;控制模塊功能為接收各傳感器采集的座位狀態(tài)(有人/無人)信息,并將其傳送至基站;基站設備功能為對數(shù)據(jù)打包進行處理后傳輸?shù)缴衔粰C,即軟件系統(tǒng)。
(2) 對座位管理系統(tǒng)進行二次開發(fā),包括2部分,其一是開發(fā)短信提醒功能,提醒遲到早退者及時在座位管理系統(tǒng)進行操作或者釋放座位;其二是對硬件系統(tǒng)傳輸過來的數(shù)據(jù)進行分析,把座位狀態(tài)為“已預約”而一定時長內無人的座位,在系統(tǒng)后臺自動釋放,使其狀態(tài)改變?yōu)椤翱臻e”或者“可預約”狀態(tài)。
系統(tǒng)優(yōu)化方案總體架構圖如圖1所示。

圖1 系統(tǒng)總體架構圖
根據(jù)實際需要,本硬件系統(tǒng)主要功能是采集座位狀態(tài)(有人/無人),并把信息傳輸?shù)阶还芾硐到y(tǒng)。除滿足基本需求外,還應該盡量保證方便安裝和布線,造價低廉,具有實際應用和推廣價值。
本硬件設計方案主要功能是采集座位狀態(tài)(有人/無人),只涉及到單片機、外圍電路及傳感器電路等,基站設備選用北京普諾興科技有限公司的成熟的市場量產產品PS-DCA900-P1型邊緣計算盒子。此設備支持BLE藍牙連接, 并支持WIFI/ETH/4G 3種方式將數(shù)據(jù)傳輸云端。
(1) 單片機最小電路
系統(tǒng)采用意法半導體STM32L051K8U6芯片作為控制單元。此低功耗單片機在standby模式下電流大小為0.27 μA,芯片數(shù)據(jù)總線寬度為32位,最大主頻32 MHz,芯片ROM大小為64 kB,RAM大小為8 kB, 有27個I/O口。工作電源電壓范圍從1.8 V至3.6 V,工作溫度范圍為-40 ℃至85 ℃。單片機最小系統(tǒng)部分包含電源、外部晶振和SWD調試下載接口等。此系統(tǒng)中,電源部分采用CR2032紐扣電池。圖2為單片機最小電路[3]電路圖。

圖2 單片機最小電路圖
(2) 溫濕度傳感器部分
系統(tǒng)采用Sensirion SHT3x溫濕度傳感器來采集座位附近環(huán)境溫度。SHT3X是瑞士SENSIRION公司的一種新型溫濕度傳感器,體積小、精讀高、采樣快,溫度測量精度可達±0.1 ℃,使用數(shù)字I2C通信接口。
SHT3x傳感器將采集到的環(huán)境值經(jīng)內部ADC模數(shù)轉換后,得到原始的溫濕度量。這個數(shù)字值經(jīng)過Calibration Memory工廠校準、Data processing &Linearization線性化模塊進行補償,減小誤差后,通過I2C接口(包含SCL和SDA引腳)輸出給STM32控制芯片。
SHT3x溫濕度傳感器的引腳1(SDA) 和引腳4(SDA)作為I2C總線外接STM32L051K8U6芯片引腳的PB6和PB7,SHT3x溫濕度傳感器的引腳6(nRESET復位)接STM32L051K8U6芯片引腳的PB5,SHT3x溫濕度傳感器的引腳3(中斷輸出)接STM32L051K8U6芯片引腳的PB4。
式(1)是溫度計算方法,其中,ST是實際測量值,-45和175是傳感器廠家根據(jù)實際環(huán)境溫度和實際測量值對應的曲線關系,得出的一個基本常量,經(jīng)式(1)轉換后,可以得到真實的溫度(單位是℃)。
T=-45+175×ST/(216-1)
(1)
傳感器部分電路圖如圖3所示。

圖3 溫濕度傳感器設計電路圖
(3) 低功耗2.4 GHz無線收發(fā)芯片部分
無線收發(fā)模塊采用南京中科微SI24R1芯片,此2.4 GHz無線收發(fā)芯片(關斷模式下≤0.7 μA電流,通信距離≤350 m)工作在2.4 GHz ISM頻段,專為低功耗無線場合設計,集成嵌入式ARQ基帶協(xié)議引擎的無線收發(fā)器芯片。SI24R1芯片工作頻率范圍為2400-2525 MHz,共有126個1 MHz帶寬的信道,使用SPI通信。接口電路如圖4所示。

圖4 低功耗2.4 GHz無線收發(fā)芯片電路圖
SI24R1無線收發(fā)模塊的模塊控制引腳3接STM32L051K8U6芯片的引腳PB0,SI24R1無線收發(fā)模塊的模塊片選引腳4接STM32L051K8U6芯片的引腳PA4,SI24R1無線收發(fā)模塊的模塊SPI總線時鐘引腳5接STM32L051K8U6芯片的引腳PA5,SI24R1無線收發(fā)模塊的模塊SPI數(shù)據(jù)輸入引腳6和模塊SPI數(shù)據(jù)輸出引腳7分別接STM32L051K8U6芯片的引腳PA7和PA6, SI24R1無線收發(fā)模塊的IRQ引腳5接STM32L051K8U6芯片的引腳PB1。
(4) 按鍵和指示燈部分
為方便交互,系統(tǒng)采側按按鍵。為指示明顯,系統(tǒng)采用綠色LED指示燈。此部分電路如圖5所示。

圖5 按鍵和指示燈部分電路圖
(5) 電源檢測系統(tǒng)部分
由于尺寸、功耗因素,使用STM32L051K8U6芯片的內部模數(shù)轉換器,采集DET與LOW的數(shù)值,12位AD數(shù)值范圍為0至4095。電路方面,串聯(lián)2個100 K的電阻,其BAT_DET引腳接STM32L051K8U6的PA0引腳,BAT_LOW引腳接STM32L051K8U62的PA1引腳。通過以下算式計算當前的電壓:
BAT_DET電壓=3.3/4096×AIN0通道采集的數(shù)值。
BAT_LOW電壓=3.3/4096×AIN1通道采集的數(shù)值。
電池電壓=BAT_DET+((BAT_DET-BAT_LOW)/100 000) × 100 000
圖6為此部分電路圖。

圖6 電源檢測電路圖
系統(tǒng)流程如圖7所示。首先是系統(tǒng)上電,對STM32的初始化,該初始化有STM32芯片的時鐘初始化、中斷初始化、串口初始化以及LED、按鍵初始化等。接著對2.4 GHz無線收發(fā)芯片進行初始化,包括對SPI初始化和模塊的初始化。然后對SHT3x溫濕度傳感器進行初始化,包含I2C總線初始化及傳感器初始化。最后對外圍設備進行初始化。初始化是通過調用不同的子函數(shù)方式實現(xiàn)[4]。初始化完成后,系統(tǒng)會循環(huán)執(zhí)行以下過程,單片機首先讀取并計算溫濕度傳感器數(shù)據(jù),然后進行協(xié)議格式填充、溫濕度數(shù)據(jù)填充、CRC校驗值計算填充、數(shù)據(jù)封包處理,并將數(shù)據(jù)包發(fā)送給基站設備。最后進入系統(tǒng)休眠。

圖7 系統(tǒng)運行流程圖
根據(jù)需求分析,座位管理系統(tǒng)二次開發(fā)主要完成2個功能。一是短信提醒功能:短信提醒遲到者,規(guī)定時間內到館簽到,否則座位會被釋放;短信提醒早退者,及時返回或者主動在系統(tǒng)釋放座位,否則規(guī)定時間后座位會被自動釋放。第二個新增功能是對于遲到或者早退者,如果一定時間沒有返回,座位管理系統(tǒng)在后臺自動釋放座位。
為實現(xiàn)以上功能需求,需要對原數(shù)據(jù)庫表進行重新設計以及對業(yè)務進行邏輯分析,增加部分代碼實現(xiàn)。
和座位相關的表有座位基礎信息表Seats_Inf,存儲每個座位的座位號、所屬樓宇、樓層等相關信息,還有座位預約登記表Seats_Reserve,存儲了被預約的座位一些信息,座位預約登記表Seats_Reserve結構[5]如表1所示。

表1 座位基礎信息表Seats_Inf
為實現(xiàn)新功能,需要新設計一表,把每次硬件系統(tǒng)探測到的座位為“已預約”且座位無人的座位的當前時間,存放進來。新設計的表Seats_Status主要字段如表2所示。
另外,還需要在預約者信息表中增加一個預約者手機號碼字段,以便于發(fā)送短信提醒信息。

表2 座位狀態(tài)表Seats_Nowtime
為便于描述,做如下2個量化規(guī)定。
硬件系統(tǒng)每間隔N1分鐘采集一次座位狀態(tài)信息,傳遞給軟件系統(tǒng);已預約座位如果連續(xù)N2分鐘狀態(tài)為“無人” ,則發(fā)送提醒短信;已預約座位如果連續(xù)N3分鐘狀態(tài)為“無人” ,則在系統(tǒng)后臺釋放此座位,使其狀態(tài)改變?yōu)椤翱深A約”,其中N1 (1) 功能設計 更改座位狀態(tài)的邏輯過程如下:對硬件系統(tǒng)傳輸過來的座位狀態(tài)數(shù)據(jù),軟件系統(tǒng)先拆分數(shù)據(jù)包,得到座位編號和座位狀態(tài)信息,首先判斷座位狀態(tài)是有人還是無人,接著判斷是“已預約”還是“可預約”,如果是可預約,則不做任何處理,如果是“已預約且無人”,則把此當時時間和座位狀態(tài)(有人/無人)信息寫入數(shù)據(jù)庫Seats_Status中,接著判斷連續(xù)無人時間是否{N1-1,N1+1}分鐘范圍內,如果是,則發(fā)送短信提醒,連續(xù)無人時間大于N2分鐘,就在后臺釋放此座位,使其狀態(tài)變?yōu)椤翱深A約”。 更改座位狀態(tài)流程圖[6]如圖8所示。 圖8 更改座位狀態(tài)流程圖 (2) 功能實現(xiàn) 發(fā)送短信提醒功能可以使用中國移動、中國電信或者中國聯(lián)通的企業(yè)短信平臺,其可以實現(xiàn)與客戶指定號碼進行短信批量發(fā)送和自定義發(fā)送業(yè)務,能夠滿足系統(tǒng)的需求。使用企業(yè)短信平臺,用戶可以根據(jù)需求自主撰寫相關的文字內容,操作簡便,修改方便。同時,統(tǒng)一的發(fā)送也確保了告知信息的精確度。這種方式不需要任何的硬件支持,只須向運營商申請網(wǎng)關和進行簡單的API配置,設置好短信發(fā)送觸發(fā)規(guī)則,即可實現(xiàn)短信自動發(fā)送。 在本系統(tǒng),座位已預約&&座位狀態(tài)為無人&&連續(xù)無人時間在(N2-1,N2+1)分鐘內為觸發(fā)短信發(fā)送的條件。其中座位是否已預約可根據(jù)座位ID查詢獲得結果,座位有人/無人狀態(tài)可根據(jù)硬件系統(tǒng)傳輸過來的數(shù)據(jù)獲取。判斷某個座位連續(xù)無人時間在(N2-1,N2+1)分鐘內的方法可以使用表Seats_Nowtime里面的某個座位的當前記錄時間減去前N2/N1條記錄的時間值(單位為分鐘),如果差值在N2±1范圍內,說明該座位為連續(xù)無人。 更改座位狀態(tài),使其從“已預約”更改為“可預約”,可通過數(shù)據(jù)庫的Update()函數(shù)實現(xiàn),只需一個查詢語句,即可把符合條件的座位狀態(tài)進行批量更改。 對該系統(tǒng)硬件做出了實物并進行了功能測試。測試方法及結果如下: 1) 斷開STM32L051K8U6的引腳2和3,使晶振模塊工作不正常,LED燈閃爍; 2) 斷開SHT3x溫濕度傳感器的引腳1和和引腳4,使溫濕度傳感器模塊工作不正常,LED燈閃爍; 同時,在基站設備PS-DCA900-P1型邊緣計算盒子上了設置,當收到STM32L051K8U6單片機系統(tǒng)發(fā)送的數(shù)據(jù)包后,基站數(shù)據(jù)燈閃爍。實際測試,當系統(tǒng)實物動、靜狀態(tài)發(fā)生改變時,PS-DCA900-P1型邊緣計算盒子數(shù)據(jù)燈會閃爍,證明監(jiān)測到了狀態(tài)變化,并傳送到了基站。 針對現(xiàn)在圖書館座位預約管理系統(tǒng)使用中普遍存在的預約座位后不去或者遲到早退而使座位空置,浪費座位資源這一問題,進行了深入研究,設計了硬件系統(tǒng)和對軟件系統(tǒng)二次開發(fā),很好地解決了問題。系統(tǒng)的實際應用,能夠提高圖書館信息化管理水平,有效減少管理者和學生之間矛盾,有較高的社會效益,具備較好的推廣價值。
4 系統(tǒng)測試
5 總結