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

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

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

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

圖4 低功耗2.4 GHz無線收發(fā)芯片電路圖
SI24R1無線收發(fā)模塊的模塊控制引腳3接STM32L051K8U6芯片的引腳PB0,SI24R1無線收發(fā)模塊的模塊片選引腳4接STM32L051K8U6芯片的引腳PA4,SI24R1無線收發(fā)模塊的模塊SPI總線時(shí)鐘引腳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)采側(cè)按按鍵。為指示明顯,系統(tǒng)采用綠色LED指示燈。此部分電路如圖5所示。

圖5 按鍵和指示燈部分電路圖
(5) 電源檢測系統(tǒng)部分
由于尺寸、功耗因素,使用STM32L051K8U6芯片的內(nèi)部模數(shù)轉(zhuǎn)換器,采集DET與LOW的數(shù)值,12位AD數(shù)值范圍為0至4095。電路方面,串聯(lián)2個(gè)100 K的電阻,其BAT_DET引腳接STM32L051K8U6的PA0引腳,BAT_LOW引腳接STM32L051K8U62的PA1引腳。通過以下算式計(jì)算當(dāng)前的電壓:
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芯片的時(shí)鐘初始化、中斷初始化、串口初始化以及LED、按鍵初始化等。接著對2.4 GHz無線收發(fā)芯片進(jìn)行初始化,包括對SPI初始化和模塊的初始化。然后對SHT3x溫濕度傳感器進(jìn)行初始化,包含I2C總線初始化及傳感器初始化。最后對外圍設(shè)備進(jìn)行初始化。初始化是通過調(diào)用不同的子函數(shù)方式實(shí)現(xiàn)[4]。初始化完成后,系統(tǒng)會循環(huán)執(zhí)行以下過程,單片機(jī)首先讀取并計(jì)算溫濕度傳感器數(shù)據(jù),然后進(jìn)行協(xié)議格式填充、溫濕度數(shù)據(jù)填充、CRC校驗(yàn)值計(jì)算填充、數(shù)據(jù)封包處理,并將數(shù)據(jù)包發(fā)送給基站設(shè)備。最后進(jìn)入系統(tǒng)休眠。

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

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

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