趙遠(yuǎn)超,趙建平,徐 娟,楊 君,許林青
(曲阜師范大學(xué)物理工程學(xué)院,山東 曲阜 273165)
隨著社會(huì)經(jīng)濟(jì)迅速發(fā)展,現(xiàn)代物流與倉(cāng)儲(chǔ)的重要性日益凸顯。特別是倉(cāng)儲(chǔ)管理,它對(duì)物資保管和養(yǎng)護(hù),防止產(chǎn)品腐蝕和霉變顯得尤為重要[1]。因此,設(shè)計(jì)一款對(duì)倉(cāng)庫(kù)內(nèi)環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測(cè)和遠(yuǎn)程控制的系統(tǒng)具有現(xiàn)實(shí)意義。
低功耗廣域網(wǎng)(low power wide area network,LPWAN)通信技術(shù),作為蜂窩機(jī)器到機(jī)器(machine to machine,M2M)連接的有效補(bǔ)充方案,加快了物聯(lián)網(wǎng)在低功耗、大連接、廣覆蓋方面的發(fā)展[2]。窄帶物聯(lián)網(wǎng)(narrow band-internet of things,NB-IoT)作為L(zhǎng)PWAN的一種長(zhǎng)距離通信技術(shù),解決了傳統(tǒng)無(wú)線傳感網(wǎng)絡(luò)傳輸中廣覆蓋與低功耗不能兼得的問(wèn)題[3]。NB-IoT技術(shù)定位于運(yùn)營(yíng)商級(jí),工作在授權(quán)頻譜,可直接部署于長(zhǎng)期演進(jìn)(long term evolution,LTE)網(wǎng)絡(luò)或基于運(yùn)營(yíng)商現(xiàn)有的2G、3G網(wǎng)絡(luò),是一種可在全球范圍內(nèi)廣泛使用的物聯(lián)網(wǎng)新興技術(shù)[4]。同時(shí),NB-IoT技術(shù)在LTE系統(tǒng)的非連續(xù)接收(discontinuous reception,DRX)的基礎(chǔ)上進(jìn)行優(yōu)化,采用功耗節(jié)省模式(power saving mode,PSM)和增強(qiáng)型非連續(xù)接收(enhanced discontinuous reception,eDR)兩種模式。用戶可根據(jù)特定場(chǎng)景選擇,從而實(shí)現(xiàn)設(shè)備超低功耗[5]。
為解決傳統(tǒng)倉(cāng)儲(chǔ)環(huán)境監(jiān)測(cè)系統(tǒng)功耗高、無(wú)法遠(yuǎn)程控制等問(wèn)題,本文將STM32L476超低功耗控制器、NB-IoT技術(shù)和Java Web技術(shù)應(yīng)用到倉(cāng)儲(chǔ)環(huán)境遠(yuǎn)程監(jiān)測(cè)系統(tǒng)中,解決了傳統(tǒng)設(shè)備功耗高、傳輸距離短和無(wú)法遠(yuǎn)程控制的問(wèn)題,在保證設(shè)備處于低功耗模式仍可以正常工作的同時(shí),實(shí)現(xiàn)了倉(cāng)儲(chǔ)環(huán)境內(nèi)參數(shù)實(shí)時(shí)監(jiān)測(cè)和遠(yuǎn)程控制。
為便于倉(cāng)庫(kù)管理人員實(shí)時(shí)監(jiān)測(cè)倉(cāng)庫(kù)環(huán)境、遠(yuǎn)程控制溫濕度,本文設(shè)計(jì)了一種基于NB-IoT技術(shù)的倉(cāng)儲(chǔ)環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)。該系統(tǒng)主要由感知層、網(wǎng)絡(luò)層和應(yīng)用層三部分組成[6]。系統(tǒng)設(shè)計(jì)架構(gòu)如圖1所示。
感知層主要實(shí)現(xiàn)多傳感器節(jié)點(diǎn)信息的收集與處理,并采用冗余檢查和軟件濾波方法對(duì)數(shù)據(jù)進(jìn)行優(yōu)化處理,保證其準(zhǔn)確性和完整性。同時(shí),控制器向底層設(shè)備發(fā)送動(dòng)作執(zhí)行信號(hào),控制其工作。
網(wǎng)絡(luò)層主要包括NB-IoT模塊和IoT平臺(tái)兩部分。其中,NB-IoT作為無(wú)線通信模塊,通過(guò)基站將數(shù)據(jù)轉(zhuǎn)發(fā)至IoT平臺(tái),或從IoT平臺(tái)轉(zhuǎn)發(fā)至感知層。IoT平臺(tái)負(fù)責(zé)用戶設(shè)備的注冊(cè)、刪除和設(shè)備異常情況監(jiān)測(cè)等。同時(shí),開發(fā)者上傳設(shè)備描述性文件和編解碼插件至平臺(tái)后,平臺(tái)對(duì)上行數(shù)據(jù)碼流解碼和下行數(shù)據(jù)編碼,并在數(shù)據(jù)變化時(shí),通知應(yīng)用服務(wù)器。
應(yīng)用層實(shí)現(xiàn)人機(jī)交互,主要包括服務(wù)器端和客戶端。服務(wù)器端通過(guò)逐次比較IoT平臺(tái)推送的消息和系統(tǒng)設(shè)定閾值的方式作出決策,并根據(jù)決策結(jié)果決定是否發(fā)出煙霧報(bào)警信號(hào)或排風(fēng)動(dòng)作。同時(shí),設(shè)備數(shù)據(jù)庫(kù)存儲(chǔ)設(shè)備注冊(cè)信息,環(huán)境監(jiān)測(cè)數(shù)據(jù)庫(kù)儲(chǔ)存當(dāng)前時(shí)刻各傳感器的參數(shù)值,便于在客戶端進(jìn)行歷史數(shù)據(jù)查詢和實(shí)時(shí)顯示。
圖1 系統(tǒng)設(shè)計(jì)架構(gòu)圖Fig.1 System design architecture
為了便于部署和擴(kuò)展,系統(tǒng)采用模塊化設(shè)計(jì)。系統(tǒng)硬件由電源供電模塊、數(shù)據(jù)采集模塊、控制器模塊、NB-IoT模塊和動(dòng)作執(zhí)行模塊五部分組成[7]。其中,電源供電模塊由鋰電池和電壓轉(zhuǎn)換電路組成,為各模塊提供3.3 V或5 V工作電壓;數(shù)據(jù)采集模塊包括各類傳感器、A/D轉(zhuǎn)換器和信號(hào)調(diào)整電路;動(dòng)作執(zhí)行模塊由繼電器、排風(fēng)扇和煙霧報(bào)警等裝置組成,分別響應(yīng)用戶給出的降溫、干燥操作和系統(tǒng)煙霧報(bào)警。
硬件結(jié)構(gòu)框圖如圖2所示。
圖2 硬件結(jié)構(gòu)框圖Fig.2 Block diagram of hardware structure
考慮到本系統(tǒng)針對(duì)的是長(zhǎng)距離無(wú)線通信,設(shè)備需要低功耗的特點(diǎn),控制器模塊選用意法半導(dǎo)體公司生產(chǎn)的工業(yè)級(jí)控制器STM32L476。作為工業(yè)級(jí)控制器,該芯片主頻可達(dá)80 MHz,自帶1 MB的Flash和128 KB的SRAM,56個(gè)可編程通用輸入輸出口,支持模數(shù)轉(zhuǎn)換、集成電路總線、通用異步收發(fā)傳輸器、控制器局域網(wǎng)絡(luò)外設(shè),足以保證系統(tǒng)穩(wěn)定工作和后期功能擴(kuò)展。
NB-IoT模塊選用移遠(yuǎn)公司基于海思Boudica 120芯片設(shè)計(jì)推出的BC95,模塊支持單個(gè)頻段900 MHz,可通過(guò)發(fā)送AT指令使模塊的工作方式在PSM和eDRX模式下切換,實(shí)現(xiàn)設(shè)備超低功耗。同時(shí),BC95通過(guò)自身提供的UART與STM32連接,構(gòu)成主控板,體積小巧。
根據(jù)倉(cāng)庫(kù)環(huán)境監(jiān)測(cè)實(shí)際需求,鋰電池18650通過(guò)LM2576s和ASM117組成的3.3 V和5 V電壓轉(zhuǎn)換電路,為主控制器和數(shù)據(jù)采集模塊供電;溫度傳感器采用DS18B20,測(cè)溫范圍是-55~+125 ℃,單線接口,驅(qū)動(dòng)電路簡(jiǎn)單;濕度傳感器采用HS1101電容式溫度傳感器,測(cè)量范圍在1~100%RH,測(cè)量精度是±3RH;煙霧濃度傳感器選用BMG-CO2-NDIR型CO2檢測(cè)傳感器,有效檢測(cè)范圍為0~10 000×10-6,性能穩(wěn)定[8]。
系統(tǒng)軟件可分為底層微控制單元(micro controller unit,MCU)驅(qū)動(dòng)程序設(shè)計(jì),中間層IoT連接管理平臺(tái)插件設(shè)計(jì),頂層Java Web應(yīng)用程序設(shè)計(jì)三部分。
驅(qū)動(dòng)程序基于STM32CubeMX集成開發(fā)環(huán)境,采用C語(yǔ)言程序開發(fā)。考慮到系統(tǒng)使用鋰電池供電,因此在設(shè)計(jì)算法時(shí)應(yīng)考慮盡可能降低功耗。本系統(tǒng)通過(guò)控制微處理器休眠和切換NB-IoT模塊工作模式,使設(shè)備工作于低功耗狀態(tài)。同時(shí),在處理傳感器參數(shù)時(shí),采用冗余檢查和軟件濾波的方法對(duì)數(shù)據(jù)進(jìn)行優(yōu)化,保證其準(zhǔn)確性和可靠性。驅(qū)動(dòng)程序設(shè)計(jì)流程如圖3所示。
圖3 驅(qū)動(dòng)程序設(shè)計(jì)流程圖Fig.3 Flowchart of driver program
鑒于NB-IoT設(shè)備與Ocean Connect平臺(tái)采用一種復(fù)限的應(yīng)用協(xié)議(constained application protocol,CoAP)通信協(xié)議,且設(shè)備對(duì)功耗要求較高。一般應(yīng)用層數(shù)據(jù)不采用流行的JSON格式,而采用16進(jìn)制格式。因此,需要編解碼插件將上報(bào)的數(shù)據(jù)(16進(jìn)制格式)解碼為JSON格式數(shù)據(jù)供應(yīng)用服務(wù)器“閱讀”,并將下行命令(JSON格式)編碼為16進(jìn)制格式數(shù)據(jù)供設(shè)備“理解執(zhí)行”。設(shè)備描述性文件結(jié)構(gòu)如圖4所示。
圖4 設(shè)備描述性文件結(jié)構(gòu)圖Fig.4 Structure of device description file
設(shè)備描述性文件是描述一款設(shè)備“是什么”、“能做什么”以及“如何控制”的文件。本系統(tǒng)設(shè)計(jì)中,NB-IoT設(shè)備描述性文件包含一個(gè)用于概括整體設(shè)備的描述性文件和四個(gè)設(shè)備服務(wù)類型文件,分別對(duì)應(yīng)溫度檢測(cè)、濕度檢測(cè)、電池電量檢測(cè)和煙霧濃度檢測(cè)動(dòng)能。
Java Web應(yīng)用程序設(shè)計(jì)分為兩部分:服務(wù)器端和客戶端。服務(wù)器端采用Java服務(wù)器頁(yè)面(java sever page,JSP)技術(shù),在集成開發(fā)環(huán)境Eclipse下編譯、調(diào)試通過(guò)后,部署到Web服務(wù)器Apache Tomcat 7.0,實(shí)現(xiàn)云平臺(tái)數(shù)據(jù)至云服務(wù)器下的存儲(chǔ)[9]??蛻舳瞬捎媚壳伴_發(fā)小程序主流的HTML5技術(shù)和Native.js技術(shù)編寫,優(yōu)點(diǎn)在于不需要下載和安裝即可使用,可隨時(shí)隨地在聯(lián)網(wǎng)的智能手機(jī)或平板計(jì)算機(jī)上查看倉(cāng)庫(kù)內(nèi)溫濕度數(shù)值、設(shè)備剩余電池電量和煙霧濃度。用戶可根據(jù)倉(cāng)庫(kù)內(nèi)溫濕度情況選擇是否打開排風(fēng)設(shè)備,方便快捷[10]。
系統(tǒng)主要完成倉(cāng)庫(kù)內(nèi)溫濕度、煙霧濃度及設(shè)備電池電量的遠(yuǎn)程監(jiān)測(cè)和煙霧報(bào)警等功能。為了檢測(cè)系統(tǒng)設(shè)計(jì)的可靠性,選用手持?jǐn)?shù)字溫度計(jì)作為與測(cè)試溫度作對(duì)比的標(biāo)準(zhǔn)溫度計(jì);選用手持式數(shù)字濕度計(jì)作為標(biāo)準(zhǔn)濕度計(jì);選用數(shù)字式煙霧濃度檢測(cè)儀作為標(biāo)準(zhǔn)煙霧濃度檢測(cè)儀。系統(tǒng)搭建完成后,進(jìn)行實(shí)地測(cè)試,檢驗(yàn)倉(cāng)庫(kù)內(nèi)的環(huán)境變化。對(duì)其進(jìn)行12 h監(jiān)測(cè),每隔2 h記錄一次數(shù)據(jù),與標(biāo)準(zhǔn)的數(shù)字式儀器進(jìn)行比較。另外,為檢測(cè)煙霧檢測(cè)裝置靈敏性,將一煙頭放在其附近,并與煙霧檢測(cè)儀進(jìn)行比較。環(huán)境參數(shù)值如表1所示。
表1 環(huán)境參數(shù)值Tab.1 Environmental parameters and standard values
由表1可知,結(jié)合NB-IoT技術(shù)和Java Web技術(shù),控制系統(tǒng)可實(shí)時(shí)監(jiān)測(cè)倉(cāng)庫(kù)內(nèi)溫濕度變化、電池電量變化以及煙霧濃度變化,誤差在1%以內(nèi);當(dāng)煙霧濃度達(dá)到設(shè)定的閾值后,會(huì)觸發(fā)煙霧報(bào)警裝置,發(fā)出警報(bào);電池電量在12 h的變化量?jī)H為0.1%,系統(tǒng)功耗非常低。
倉(cāng)儲(chǔ)環(huán)境監(jiān)測(cè)系統(tǒng)于實(shí)地測(cè)試半年未發(fā)生異常,在溫濕度和煙霧濃度允許的誤差范圍內(nèi),工作狀態(tài)良好、測(cè)試結(jié)果穩(wěn)定。倉(cāng)儲(chǔ)管理人員反饋,系統(tǒng)操作簡(jiǎn)單,體現(xiàn)出較強(qiáng)的實(shí)用性、便捷性,可基本滿足現(xiàn)代倉(cāng)儲(chǔ)管理的需求。
基于NB-IoT技術(shù)的倉(cāng)儲(chǔ)環(huán)境遠(yuǎn)程監(jiān)測(cè)系統(tǒng)具備對(duì)倉(cāng)庫(kù)內(nèi)溫濕度、煙霧濃度和電池電量監(jiān)測(cè)的功能。與傳統(tǒng)倉(cāng)儲(chǔ)監(jiān)測(cè)系統(tǒng)相比,該系統(tǒng)在功耗、部署成本以及穩(wěn)定性等方面都有極大提高。同時(shí),倉(cāng)庫(kù)管理人員可隨時(shí)隨地查看倉(cāng)庫(kù)內(nèi)環(huán)境參數(shù)變化,遠(yuǎn)程控制倉(cāng)庫(kù)內(nèi)排風(fēng)裝置,方便快捷,大大提高了倉(cāng)庫(kù)管理人員的工作效率。該研究有利于提高倉(cāng)儲(chǔ)管理的自動(dòng)化水平,加快了倉(cāng)儲(chǔ)管理的智能化和信息化的進(jìn)程。