傅鵬有,周金治,周秋宇,劉藝涵,王志文
(西南科技大學 信息工程學院,綿陽621010)
校園樓宇環境監測具有監測節點分散、干擾因素多、數據傳輸距離遠等特點,目前,常見無線傳輸技術主要以Wi-Fi、ZigBee、藍牙為主。文獻[1]以Wi-Fi 通訊技術為基礎,實現對于家居內部的監測;文獻[2]基于藍牙實現了實驗室的安全監測;文獻[3]利用ZigBee 完成了礦井環境的監測與防護。但上述設計無線傳輸距離均較短,且易受干擾。文獻[4-6]將Wi-Fi、ZigBee 等無線技術結合,利用中繼器擴展了數據傳輸范圍實現了無線環境監測,但提高了成本;文獻[7-9]基于LoRa 技術實現了廣范圍內的無線數據傳輸,具有較好使用效果,但是無法實現遠程監測。
LoRa 是一種基于擴頻調制技術的廣域網無線通訊技術,具有通訊范圍大、超低功耗和抗干擾能力強的特點,解決了傳統無線通訊設計方案無法兼顧傳輸距離、抗干擾和功耗的難題,因而被廣泛應用于大型區域的無線數據傳輸應用中[10]。
針對傳統無線通訊技術在校園樓宇環境監測中的弊端,本文結合LoRa 無線技術特點設計了一套適用于校園廣范圍下的樓宇環境監測系統,實現了樓宇終端環境數據采集、云端存儲和遠程監測。
系統由上位機和下位機構成,其系統設計架構如圖1所示,上位機與下位機間采用MQTT 協議進行通訊。下位機由環境數據監測節點和數據集中器構成,負責環境數據的監測、匯集與上傳,監測節點根據實際需求具備不同的環境監測能力,分別適用于教室、機房等區域,可監測溫濕度、PM2.5 等常見環境指標和火災、漏水等異常災害。監測節點監測相應環境數值后,對數值進行處理與組裝并按照固有協議格式通過LoRa 無線通訊模塊將其數據傳輸至數據集中器。數據集中器對各環境監測節點數據進行集中與處理后依托Wi-Fi 和路由器進行上傳。

圖1 系統設計架構圖Fig.1 System design architecture diagram
云端數據服務器和Web 實時監測中心構成上位機。服務器以安裝的MySQL 數據庫為核心接收并處理下位機監測的環境數據,Web 實時監測中心基于阿里云的DataV 平臺生成前端頁面實現可視化環境數據顯示。
數據集中終端主要由處理器、無線通訊模塊和存儲模塊構成,采用STM32F407ZET6 芯片作為處理器,該芯片是基于Cortex-M4 架構內核的32 位處理器產品,最高工作頻率可達168 MHz。無線通訊模塊由LoRa 模塊和Wi-Fi 模塊構成,均通過串口與處理器連接,分別用于與環境監測節點和云端的數據交互,FLASH 和EEPROM 組成存儲模塊,用于Wi-Fi 熱點名和密碼等數據的存儲。
環境監測節點由傳感器、主控芯片、LoRa 無線模塊以及電源模塊構成,其架構如圖2所示。由于監測節點所需資源不多,主控芯片采用STM32F103C8T6單片機以降低成本,電源可用USB 或電池供電,以方便環境監測節點的安裝部署。

圖2 環境監測節點架構圖Fig.2 Architecture diagram of environmental monitoring nodes
Wi-Fi 數傳選用WH-C120 模塊,該模塊是一款低成本、低功耗的集成配置串口轉Wi-Fi 模塊,內部集成MQTT 協議,其電路設計如圖3所示。

圖3 Wi-Fi 模塊電路設計圖Fig.3 Circuit design of Wi-Fi module
LoRa 通訊采用E22-400T22S 模塊實現無線傳輸,該模塊是一款基于sx1268 射頻芯片的高穩定性、工業級無線數傳模塊,采用串口通訊,具有遠程配置以及信道監聽等功能,其連接框圖如圖4所示。

圖4 LoRa 模塊連接框圖Fig.4 Connection block diagram of LoRa module
3.1.1 下位機間通訊協議
下位機間采用數據幀的格式進行數據交互,其環境數據傳輸數據幀格式如表1所示。

表1 環境數據傳輸數據幀格式Tab.1 Data frame format for environmental data transmission
1)幀頭
幀頭為本通訊幀的開始標志,幀頭固定為0xFF。
2)設備位
設備位用于監測節點設備的區分,以方便節點的增減和故障判斷。
3)環境數據
不同監測節點因其監測環境的需求不同而搭載的傳感器類型與數量也不同,因此由具體設備監測功能確定其傳輸幀類型,其格式如表2所示。

表2 環境數據傳輸格式Tab.2 Environment data transfer format
監測節點根據設備所具備監測環境能力按環境標志從小到大順序進行數據幀組裝,該監測節點無法監測的環境數據不進入幀組裝和發送。集中器通過環境標志判斷其環境數據類型并進行數據集中上傳。
4)校驗
校驗采用CRC 快速查表法,用于保證數據傳輸的準確率。
5)幀尾
幀尾為本通訊幀的結束標志,幀尾固定為0xFD。
3.1.2 下位機與上位機通訊協議
下位機與上位機采用MQTT(message queuing telemetry transport)協議并以JSON(JavaScript object notation)的數據格式進行通訊,MQTT 協議是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布/訂閱型消息協議[11]。MQTT 協議采用發布者/訂閱者模式,該設計中,數據采集終端為信息發布者,服務器為信息訂閱者,同時為與云端服務器程序物理隔離,增強系統的容災特性,增加安裝運行于另一Linux 服務器實例上消息中間件Broker,接收數據采集終端發布的消息并依據消息主題分發給服務器。
JSON 是一種輕量級的數據交換格式,易于機器解析與生成,使用sprintf 函數進行JSON 格式數據上傳,利用MQTT_PUBLISH 函數為該次發布添加主題,如下所示:

該數據由環境指標、監測數值以及對應監測節點設備ID 兩部分構成,MQTT_PUBLISH 函數由發布主題、長度以及內容三部分構成,實現消息發布。
環境監測節點程序設計流程如圖5所示,其主要負責監測的環境數據的處理與數據幀的組裝發送以及異常報警。

圖5 環境監測節點程序設計流程Fig.5 Programming flow chart of environmental monitoring node
監測節點初始化時喚醒傳感器組和LoRa 模塊,其環境數據處理與標定由節點完成以減輕集中器端的負載量。環境正常時,節點在收到集中器指令后,利用LoRa 模塊自帶LBT(listen before talk)功能監聽信道,在信道通暢時,向集中器發送所檢測數據,噪聲較大時延遲發送,以此防止信道沖突和減弱環境噪聲對通訊的影響,保證數據傳輸質量。同時,為保證異常災害通知的實時性,在異常災害發生時,監測節點不等待集中器指令,直接向集中器發送數據,每次直接發送完畢均分配一段延遲時隙,以保障集中器與其他節點的正常輪詢。
上位機由云端服務器和監測中心Web 客戶端構成,負責集中器上傳的環境數據處理、分析、存儲以及可視化顯示。服務器程序基于面向對象語言Java 開發,以基于Java 的Web 開發框架JFinal 為項目框架,使用Maven 進行項目開發管理,并以MySQL 為數據庫。監測中心Web 客戶端以網頁形式設計,便于多屏顯示和遠程管理,提供用戶登錄、設備管理以及環境監測等功能,其環境監測界面采用阿里云DataV 平臺進行前端友好界面設計,由服務器程序提供數據接口,監測中心提供實時的環境數據顯示和歷史環境數據分析,其監控中心客戶端界面圖如圖6所示。

圖6 監控中心客戶端界面Fig.6 Monitoring center client Interface
系統在實驗室常溫環境下進行測試,部分硬件端測試圖以及實驗場地如圖7所示。

圖7 系統硬件端測試圖Fig.7 System hardware end test diagram
在校園內樓宇群間進行基于LoRa 技術和基于同價段位ZigBee 模塊的遠距離通訊質量測試,設置LoRa 模塊空中速率為62.5 kbps,發送功率22 dBm,無中繼器接力轉發,連續收發5000 個數據包。測試以監測節點距集中器的距離為變化量,以丟包率為系統通訊質量指標,其距離采用GPS 定位測距,其測試結果如表3所示。

表3 密集建筑區通訊質量測試表Tab.3 Test table for communication quality in dense buildings
測試結果表明,樓宇間遠距離無線通訊時,LoRa相比于ZigBee 具有明顯的優勢,在700 m 內基本無數據丟包,在傳輸距離、抗干擾方面表現良好,能夠滿足校園內廣范圍的樓宇環境監測。
本文針對校園特點設計了一套樓宇環境監測系統,該系統采用LoRa 無線通訊技術進行樓宇間的長距離無線數傳,利用Wi-Fi 實現數據上傳云端,并基于網頁構建Web 監測中心,實現遠程環境監測。本文還就系統設計方案、各部分組件以及私有通訊協議進行了詳細闡述,并進行了系統測試。測試結果顯示該系統穩定性好、通信距離遠,能夠適應校園樓宇群的環境監測。