王進(jìn)康,吳培鑫,李東陽,胡文文
(河南科技大學(xué),河南 洛陽 471023)
對于高校大學(xué)生來說,圖書館是在校學(xué)生重要的學(xué)習(xí)場所之一。然而,由于圖書館座位數(shù)量有限,圖書館座位缺乏合理且有效的管理,從而出現(xiàn)讀者排隊(duì)搶座、長期占座而不使用等現(xiàn)象,這已成為高校圖書館座位管理的一大難題[1]。針對圖書館座位的使用問題,一些高校采用線上座位預(yù)約系統(tǒng),支持查詢和預(yù)約,這在一定程度上解決了占座問題。但這種線上座位預(yù)約系統(tǒng)無法動(dòng)態(tài)監(jiān)測座位狀態(tài),也會(huì)出現(xiàn)一種問題:選座者預(yù)約成功后但由于種種原因不到或者提前離開,如果不及時(shí)監(jiān)測座位使用情況,即使該座位沒人,在座位預(yù)約管理系統(tǒng)中也無法選擇該座位,帶來了資源浪費(fèi)[2]。本文所述的基于STM32F103單片機(jī)的圖書館座位狀態(tài)監(jiān)測系統(tǒng)與線上座位預(yù)約系統(tǒng)配合使用可以很好地解決上述存在的問題,為解決占座問題提供了一個(gè)科學(xué)的解決方案,為入館學(xué)習(xí)的學(xué)生帶來了便利。
本研究綜合利用傳感器對物體的識別功能和單片機(jī)的控制功能,設(shè)計(jì)了一種基于單片機(jī)控制的圖書館座位管理系統(tǒng)[3]。系統(tǒng)設(shè)計(jì)不僅要實(shí)現(xiàn)自動(dòng)監(jiān)測座位狀態(tài),及時(shí)將座位狀態(tài)發(fā)送至上位機(jī),而且還要考慮實(shí)際情況,保證其工作穩(wěn)定、易于安裝維護(hù)和具有經(jīng)濟(jì)推廣價(jià)值。
圖書館座位監(jiān)測系統(tǒng)可分為:紅外反射式傳感器模塊、STM32F103單片機(jī)模塊、NB-IOT物聯(lián)網(wǎng)模塊、電源處理模塊等。整體設(shè)計(jì)圖如圖1。
圖1 整體設(shè)計(jì)圖
根據(jù)實(shí)際情況,考慮系統(tǒng)實(shí)際運(yùn)用的場所,保證系統(tǒng)的可實(shí)施性,該設(shè)計(jì)方案利用市面上成熟的電氣元件。例如,監(jiān)測座位狀態(tài)的傳感器應(yīng)該穩(wěn)定固定在桌子底下,這種場所一般光線較弱,可以采用價(jià)格較為便宜的紅外反射式傳感器,節(jié)約成本。考慮到桌子擺放靈活,所以電源處理部分采用鋰電池或者可充電電池。為了防止斷電,系統(tǒng)停止工作,在電壓低的時(shí)候,通過蜂鳴器及時(shí)提醒圖書館管理員及時(shí)更換電池或充電。
紅外反射式傳感器TCRT5000 的紅外發(fā)射二極管不斷地發(fā)射紅外線,當(dāng)模塊檢測遇到前方障礙物時(shí),紅外線反射到光電三極管上,光電三極管導(dǎo)通,LM393電壓比較器輸出低電平;在沒有遇到障礙物時(shí),LM393電壓比較器則輸出高點(diǎn)平。STM32F103單片機(jī)根據(jù)LM393電壓比較器的輸出電平即可判斷座位的狀態(tài)。
STM32 單片機(jī)最小系統(tǒng)的構(gòu)成元素包括STM32F103ZET6單片機(jī)、時(shí)鐘電路、復(fù)位電路、I/O 擴(kuò)展接口以及調(diào)試接口共同組成[4]。STM32F103ZET6能夠接收J(rèn)TAG與SWD的調(diào)試;時(shí)鐘電路的晶振頻率是8MHz;復(fù)位電路中具有按鍵復(fù)位與上電復(fù)位;I/O 擴(kuò)展接口負(fù)責(zé)將閑置的 I/O 口進(jìn)行引出,便于與其他設(shè)備的連接;調(diào)試接口的作用是為 STM32 單片機(jī)下載固件,同時(shí)也能對程序進(jìn)行調(diào)試。
意法半導(dǎo)體公司生產(chǎn)的STM32F103ZET6芯片,它共有112個(gè)I/O口(PA-PG)。相比其它類型的單片機(jī),在相對便宜的情況下,如此多的I/O口使該系統(tǒng)更加容易推廣。
WH-NB71物聯(lián)網(wǎng)模塊芯片是上海穩(wěn)恒電子 2017 年推出的 M2M 產(chǎn)品,其支持移動(dòng)、聯(lián)通、電信 NB-IoT 網(wǎng)絡(luò)接入。該產(chǎn)品軟件功能完善,支持CoAP協(xié)議,通過簡單配置既可以實(shí)現(xiàn)串口到網(wǎng)絡(luò)的雙向數(shù)據(jù)透明傳輸,又很方便用戶快速的搭建服務(wù)器平臺。
目前該物聯(lián)網(wǎng)模塊開放的接口包括:電源輸入,復(fù)位重啟控制、恢復(fù)出廠設(shè)置控制、UART、SIM、射頻接口。WH-NB71外圍電路劃分為電源引腳、天線引腳、Reload、Reset、SIM卡槽、UART、ADC七部分。分別對外圍電路進(jìn)行設(shè)計(jì)。
圖2 NB-IOT物聯(lián)網(wǎng)模塊電路
圖3 3.8 V電源處理模塊
物聯(lián)網(wǎng)模塊與STM32F103單片機(jī)進(jìn)行串口通訊,其UART_RX引腳接STM32F03的RX引腳,UART_TX引腳接STM32F103的TX引腳。物聯(lián)網(wǎng)模塊將單片機(jī)處理得到的座位狀態(tài)發(fā)送至云端,從而方便用戶通過手機(jī)移動(dòng)端及時(shí)查看座位狀態(tài),進(jìn)行查詢、預(yù)約等操作。
為便于物聯(lián)網(wǎng)模塊及時(shí)調(diào)試和進(jìn)行更新升級,需要設(shè)計(jì)NB-IOT調(diào)試接口電路,為后續(xù)調(diào)試及模塊初始化做準(zhǔn)備。調(diào)試接口電路采用MAX3232芯片,MAX3232采用專有的低壓差發(fā)送器輸出級,利用雙電荷泵在3.0 V~5.5 V電源供電時(shí)能夠?qū)崿F(xiàn)真正的RS-232性能。其在最差工作條件下也能夠保證120 kbps的數(shù)據(jù)速率。通過一對DB9口,可輕松建立起模塊與上位機(jī)之間的通訊。
系統(tǒng)需要兩路電源,分別為各個(gè)模塊供電,其中一路為3.8 V電源,為NB-IOT物聯(lián)網(wǎng)模塊供電;另一路5 V電源,為STM32F103單片機(jī)和反射式紅外傳感器供電。兩路電源模塊采用常見的MP1482電平轉(zhuǎn)換芯片,同時(shí)加入由STS3415防反接電路,防止電源接反時(shí)給電路帶來損壞。
5 V電源與3.8 V電源電路原理圖類似,根據(jù)以下公式只需改變電阻的比值就可得到5 V電壓。
輸出電壓公式:Vout=0.923*(1+R29/R31)
3.8 V電源模塊:取R15=31.2 k,R17=10 k,Vout=0.923*(1+31.2/10)=3.0276 V
為了防止電源電量不足,系統(tǒng)停止工作,需在系統(tǒng)中設(shè)計(jì)電源電壓測量電路,及時(shí)地測量電源的電壓。系統(tǒng)電壓一旦低過某個(gè)設(shè)定值,蜂鳴器就會(huì)發(fā)出警報(bào),以提醒圖書館管理人員及時(shí)更換電源或充電,從而避免座位狀態(tài)監(jiān)測系統(tǒng)停止工作。
電源監(jiān)測電路采用兩個(gè)100 k的電阻串聯(lián)分壓,分壓后與電壓跟隨器LM324的3腳連接,電壓跟隨器的1腳接STM32F103單片機(jī)的PA0腳。通過以下算式計(jì)算當(dāng)前的電壓。
電源電壓=(3.3/4 096*AINO通道采集的數(shù)值)*2
當(dāng)電源電壓小于設(shè)定時(shí),BEEP輸出3.3 V電壓,三極管導(dǎo)通,蜂鳴器通電,發(fā)出警報(bào)。電路設(shè)計(jì)圖如圖4所示。
圖4 電源電壓測量部分
該座位狀態(tài)監(jiān)測系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方法,使用C語言編程。根據(jù)不同功能,將軟件分為4個(gè)模塊,即主程序模塊、參數(shù)設(shè)置模塊、座位狀態(tài)數(shù)據(jù)采集模塊和數(shù)據(jù)上傳模塊。其中每個(gè)模塊又可分為多個(gè)子模塊,既相互獨(dú)立又相互聯(lián)系[5]。
系統(tǒng)工作流程如下:
1) 系統(tǒng)上電,各模塊開始工作,此時(shí)電源指示燈亮起,通訊指示燈閃爍。
2) 反射式紅外傳感器實(shí)時(shí)監(jiān)測座位狀態(tài),將座位狀態(tài)通過電信號傳遞給單片機(jī)。
3) 單片機(jī)將收集各個(gè)反射式紅外傳感器實(shí)時(shí)監(jiān)測座位狀態(tài),將I/O口與實(shí)際座位一一對應(yīng),將座位狀態(tài)信息傳遞給NB-IOT模塊。
4) NB-IOT模塊通過CoAP協(xié)議將座位狀態(tài)信息上傳至云端。
5) 線上座位預(yù)約系統(tǒng)可查詢云端數(shù)據(jù),用戶通過手機(jī)移動(dòng)端查詢座位狀態(tài),進(jìn)行預(yù)約操作等。
6) 預(yù)約成功后,如果系統(tǒng)在30 min內(nèi)查詢云端數(shù)據(jù),此座位無人,則釋放座位,使座位處于可被預(yù)約狀態(tài)。
7) 讀者離開座位后,如果系統(tǒng)在20 min內(nèi)查詢云端數(shù)據(jù),此座位無人,則釋放座位,使座位處于可被預(yù)約狀態(tài)。
8) 電源電壓過低時(shí),蜂鳴器發(fā)出警報(bào)。
系統(tǒng)工作流程圖如圖5。
圖5 系統(tǒng)工作流程圖
圖書館對每個(gè)高校來說都是十分重要且必備的,所以要對此引起足夠的重視。我們要清楚知道目前圖書館座位預(yù)約系統(tǒng)存在的利弊,不斷加強(qiáng)圖書館座位的管理,從而提高座位的使用率[6]。本系統(tǒng)的創(chuàng)新點(diǎn)是利用STM32F103和物聯(lián)網(wǎng)模塊可以實(shí)時(shí)監(jiān)測座位狀態(tài),使座位預(yù)約系統(tǒng)更加靈活,有效,注意到了座位的利用率和預(yù)約者能否及時(shí)入座及預(yù)約者離開時(shí)間有很大關(guān)系。本文介紹了該圖書館座位監(jiān)測系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)的大致思路。最終,將逐個(gè)擊破每一部分,組合成一個(gè)合理、有效的可行性方案,達(dá)到設(shè)計(jì)目的。