傅鵬有,周金治,周秋宇,劉藝涵,王志文
(西南科技大學(xué) 信息工程學(xué)院,綿陽621010)
校園樓宇環(huán)境監(jiān)測具有監(jiān)測節(jié)點分散、干擾因素多、數(shù)據(jù)傳輸距離遠等特點,目前,常見無線傳輸技術(shù)主要以Wi-Fi、ZigBee、藍牙為主。文獻[1]以Wi-Fi 通訊技術(shù)為基礎(chǔ),實現(xiàn)對于家居內(nèi)部的監(jiān)測;文獻[2]基于藍牙實現(xiàn)了實驗室的安全監(jiān)測;文獻[3]利用ZigBee 完成了礦井環(huán)境的監(jiān)測與防護。但上述設(shè)計無線傳輸距離均較短,且易受干擾。文獻[4-6]將Wi-Fi、ZigBee 等無線技術(shù)結(jié)合,利用中繼器擴展了數(shù)據(jù)傳輸范圍實現(xiàn)了無線環(huán)境監(jiān)測,但提高了成本;文獻[7-9]基于LoRa 技術(shù)實現(xiàn)了廣范圍內(nèi)的無線數(shù)據(jù)傳輸,具有較好使用效果,但是無法實現(xiàn)遠程監(jiān)測。
LoRa 是一種基于擴頻調(diào)制技術(shù)的廣域網(wǎng)無線通訊技術(shù),具有通訊范圍大、超低功耗和抗干擾能力強的特點,解決了傳統(tǒng)無線通訊設(shè)計方案無法兼顧傳輸距離、抗干擾和功耗的難題,因而被廣泛應(yīng)用于大型區(qū)域的無線數(shù)據(jù)傳輸應(yīng)用中[10]。
針對傳統(tǒng)無線通訊技術(shù)在校園樓宇環(huán)境監(jiān)測中的弊端,本文結(jié)合LoRa 無線技術(shù)特點設(shè)計了一套適用于校園廣范圍下的樓宇環(huán)境監(jiān)測系統(tǒng),實現(xiàn)了樓宇終端環(huán)境數(shù)據(jù)采集、云端存儲和遠程監(jiān)測。
系統(tǒng)由上位機和下位機構(gòu)成,其系統(tǒng)設(shè)計架構(gòu)如圖1所示,上位機與下位機間采用MQTT 協(xié)議進行通訊。下位機由環(huán)境數(shù)據(jù)監(jiān)測節(jié)點和數(shù)據(jù)集中器構(gòu)成,負責(zé)環(huán)境數(shù)據(jù)的監(jiān)測、匯集與上傳,監(jiān)測節(jié)點根據(jù)實際需求具備不同的環(huán)境監(jiān)測能力,分別適用于教室、機房等區(qū)域,可監(jiān)測溫濕度、PM2.5 等常見環(huán)境指標(biāo)和火災(zāi)、漏水等異常災(zāi)害。監(jiān)測節(jié)點監(jiān)測相應(yīng)環(huán)境數(shù)值后,對數(shù)值進行處理與組裝并按照固有協(xié)議格式通過LoRa 無線通訊模塊將其數(shù)據(jù)傳輸至數(shù)據(jù)集中器。數(shù)據(jù)集中器對各環(huán)境監(jiān)測節(jié)點數(shù)據(jù)進行集中與處理后依托Wi-Fi 和路由器進行上傳。
圖1 系統(tǒng)設(shè)計架構(gòu)圖Fig.1 System design architecture diagram
云端數(shù)據(jù)服務(wù)器和Web 實時監(jiān)測中心構(gòu)成上位機。服務(wù)器以安裝的MySQL 數(shù)據(jù)庫為核心接收并處理下位機監(jiān)測的環(huán)境數(shù)據(jù),Web 實時監(jiān)測中心基于阿里云的DataV 平臺生成前端頁面實現(xiàn)可視化環(huán)境數(shù)據(jù)顯示。
數(shù)據(jù)集中終端主要由處理器、無線通訊模塊和存儲模塊構(gòu)成,采用STM32F407ZET6 芯片作為處理器,該芯片是基于Cortex-M4 架構(gòu)內(nèi)核的32 位處理器產(chǎn)品,最高工作頻率可達168 MHz。無線通訊模塊由LoRa 模塊和Wi-Fi 模塊構(gòu)成,均通過串口與處理器連接,分別用于與環(huán)境監(jiān)測節(jié)點和云端的數(shù)據(jù)交互,F(xiàn)LASH 和EEPROM 組成存儲模塊,用于Wi-Fi 熱點名和密碼等數(shù)據(jù)的存儲。
環(huán)境監(jiān)測節(jié)點由傳感器、主控芯片、LoRa 無線模塊以及電源模塊構(gòu)成,其架構(gòu)如圖2所示。由于監(jiān)測節(jié)點所需資源不多,主控芯片采用STM32F103C8T6單片機以降低成本,電源可用USB 或電池供電,以方便環(huán)境監(jiān)測節(jié)點的安裝部署。
圖2 環(huán)境監(jiān)測節(jié)點架構(gòu)圖Fig.2 Architecture diagram of environmental monitoring nodes
Wi-Fi 數(shù)傳選用WH-C120 模塊,該模塊是一款低成本、低功耗的集成配置串口轉(zhuǎn)Wi-Fi 模塊,內(nèi)部集成MQTT 協(xié)議,其電路設(shè)計如圖3所示。
圖3 Wi-Fi 模塊電路設(shè)計圖Fig.3 Circuit design of Wi-Fi module
LoRa 通訊采用E22-400T22S 模塊實現(xiàn)無線傳輸,該模塊是一款基于sx1268 射頻芯片的高穩(wěn)定性、工業(yè)級無線數(shù)傳模塊,采用串口通訊,具有遠程配置以及信道監(jiān)聽等功能,其連接框圖如圖4所示。
圖4 LoRa 模塊連接框圖Fig.4 Connection block diagram of LoRa module
3.1.1 下位機間通訊協(xié)議
下位機間采用數(shù)據(jù)幀的格式進行數(shù)據(jù)交互,其環(huán)境數(shù)據(jù)傳輸數(shù)據(jù)幀格式如表1所示。
表1 環(huán)境數(shù)據(jù)傳輸數(shù)據(jù)幀格式Tab.1 Data frame format for environmental data transmission
1)幀頭
幀頭為本通訊幀的開始標(biāo)志,幀頭固定為0xFF。
2)設(shè)備位
設(shè)備位用于監(jiān)測節(jié)點設(shè)備的區(qū)分,以方便節(jié)點的增減和故障判斷。
3)環(huán)境數(shù)據(jù)
不同監(jiān)測節(jié)點因其監(jiān)測環(huán)境的需求不同而搭載的傳感器類型與數(shù)量也不同,因此由具體設(shè)備監(jiān)測功能確定其傳輸幀類型,其格式如表2所示。
表2 環(huán)境數(shù)據(jù)傳輸格式Tab.2 Environment data transfer format
監(jiān)測節(jié)點根據(jù)設(shè)備所具備監(jiān)測環(huán)境能力按環(huán)境標(biāo)志從小到大順序進行數(shù)據(jù)幀組裝,該監(jiān)測節(jié)點無法監(jiān)測的環(huán)境數(shù)據(jù)不進入幀組裝和發(fā)送。集中器通過環(huán)境標(biāo)志判斷其環(huán)境數(shù)據(jù)類型并進行數(shù)據(jù)集中上傳。
4)校驗
校驗采用CRC 快速查表法,用于保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確率。
5)幀尾
幀尾為本通訊幀的結(jié)束標(biāo)志,幀尾固定為0xFD。
3.1.2 下位機與上位機通訊協(xié)議
下位機與上位機采用MQTT(message queuing telemetry transport)協(xié)議并以JSON(JavaScript object notation)的數(shù)據(jù)格式進行通訊,MQTT 協(xié)議是為硬件性能低下的遠程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計的發(fā)布/訂閱型消息協(xié)議[11]。MQTT 協(xié)議采用發(fā)布者/訂閱者模式,該設(shè)計中,數(shù)據(jù)采集終端為信息發(fā)布者,服務(wù)器為信息訂閱者,同時為與云端服務(wù)器程序物理隔離,增強系統(tǒng)的容災(zāi)特性,增加安裝運行于另一Linux 服務(wù)器實例上消息中間件Broker,接收數(shù)據(jù)采集終端發(fā)布的消息并依據(jù)消息主題分發(fā)給服務(wù)器。
JSON 是一種輕量級的數(shù)據(jù)交換格式,易于機器解析與生成,使用sprintf 函數(shù)進行JSON 格式數(shù)據(jù)上傳,利用MQTT_PUBLISH 函數(shù)為該次發(fā)布添加主題,如下所示:
該數(shù)據(jù)由環(huán)境指標(biāo)、監(jiān)測數(shù)值以及對應(yīng)監(jiān)測節(jié)點設(shè)備ID 兩部分構(gòu)成,MQTT_PUBLISH 函數(shù)由發(fā)布主題、長度以及內(nèi)容三部分構(gòu)成,實現(xiàn)消息發(fā)布。
環(huán)境監(jiān)測節(jié)點程序設(shè)計流程如圖5所示,其主要負責(zé)監(jiān)測的環(huán)境數(shù)據(jù)的處理與數(shù)據(jù)幀的組裝發(fā)送以及異常報警。
圖5 環(huán)境監(jiān)測節(jié)點程序設(shè)計流程Fig.5 Programming flow chart of environmental monitoring node
監(jiān)測節(jié)點初始化時喚醒傳感器組和LoRa 模塊,其環(huán)境數(shù)據(jù)處理與標(biāo)定由節(jié)點完成以減輕集中器端的負載量。環(huán)境正常時,節(jié)點在收到集中器指令后,利用LoRa 模塊自帶LBT(listen before talk)功能監(jiān)聽信道,在信道通暢時,向集中器發(fā)送所檢測數(shù)據(jù),噪聲較大時延遲發(fā)送,以此防止信道沖突和減弱環(huán)境噪聲對通訊的影響,保證數(shù)據(jù)傳輸質(zhì)量。同時,為保證異常災(zāi)害通知的實時性,在異常災(zāi)害發(fā)生時,監(jiān)測節(jié)點不等待集中器指令,直接向集中器發(fā)送數(shù)據(jù),每次直接發(fā)送完畢均分配一段延遲時隙,以保障集中器與其他節(jié)點的正常輪詢。
上位機由云端服務(wù)器和監(jiān)測中心Web 客戶端構(gòu)成,負責(zé)集中器上傳的環(huán)境數(shù)據(jù)處理、分析、存儲以及可視化顯示。服務(wù)器程序基于面向?qū)ο笳Z言Java 開發(fā),以基于Java 的Web 開發(fā)框架JFinal 為項目框架,使用Maven 進行項目開發(fā)管理,并以MySQL 為數(shù)據(jù)庫。監(jiān)測中心Web 客戶端以網(wǎng)頁形式設(shè)計,便于多屏顯示和遠程管理,提供用戶登錄、設(shè)備管理以及環(huán)境監(jiān)測等功能,其環(huán)境監(jiān)測界面采用阿里云DataV 平臺進行前端友好界面設(shè)計,由服務(wù)器程序提供數(shù)據(jù)接口,監(jiān)測中心提供實時的環(huán)境數(shù)據(jù)顯示和歷史環(huán)境數(shù)據(jù)分析,其監(jiān)控中心客戶端界面圖如圖6所示。
圖6 監(jiān)控中心客戶端界面Fig.6 Monitoring center client Interface
系統(tǒng)在實驗室常溫環(huán)境下進行測試,部分硬件端測試圖以及實驗場地如圖7所示。
圖7 系統(tǒng)硬件端測試圖Fig.7 System hardware end test diagram
在校園內(nèi)樓宇群間進行基于LoRa 技術(shù)和基于同價段位ZigBee 模塊的遠距離通訊質(zhì)量測試,設(shè)置LoRa 模塊空中速率為62.5 kbps,發(fā)送功率22 dBm,無中繼器接力轉(zhuǎn)發(fā),連續(xù)收發(fā)5000 個數(shù)據(jù)包。測試以監(jiān)測節(jié)點距集中器的距離為變化量,以丟包率為系統(tǒng)通訊質(zhì)量指標(biāo),其距離采用GPS 定位測距,其測試結(jié)果如表3所示。
表3 密集建筑區(qū)通訊質(zhì)量測試表Tab.3 Test table for communication quality in dense buildings
測試結(jié)果表明,樓宇間遠距離無線通訊時,LoRa相比于ZigBee 具有明顯的優(yōu)勢,在700 m 內(nèi)基本無數(shù)據(jù)丟包,在傳輸距離、抗干擾方面表現(xiàn)良好,能夠滿足校園內(nèi)廣范圍的樓宇環(huán)境監(jiān)測。
本文針對校園特點設(shè)計了一套樓宇環(huán)境監(jiān)測系統(tǒng),該系統(tǒng)采用LoRa 無線通訊技術(shù)進行樓宇間的長距離無線數(shù)傳,利用Wi-Fi 實現(xiàn)數(shù)據(jù)上傳云端,并基于網(wǎng)頁構(gòu)建Web 監(jiān)測中心,實現(xiàn)遠程環(huán)境監(jiān)測。本文還就系統(tǒng)設(shè)計方案、各部分組件以及私有通訊協(xié)議進行了詳細闡述,并進行了系統(tǒng)測試。測試結(jié)果顯示該系統(tǒng)穩(wěn)定性好、通信距離遠,能夠適應(yīng)校園樓宇群的環(huán)境監(jiān)測。