范華峰,陳 楨
(常州機電職業技術學院 信息工程學院,江蘇 常州 213164)
隨著計算機技術和無線通信技術的不斷發展,物聯網通信技術也日趨成熟,目前的主流是NB-IoT和LoRa。NB-IoT由電信運營商通過商用頻點建設基站進行大規模部署,LoRa是一種低功耗、傳輸距離長、抗干擾能力強的無線通信技術,它通過數字擴頻、數字信號處理和前向糾錯編碼等手段,實現了類似頻移鍵控調制的低功耗特性,又顯著延長了傳輸距離,即使多個終端使用相同的頻率同時發送數據,只要擴頻序列不同它們便不會相互干擾,同時LoRa還可以通過免費自由頻段自行組網。
為實現對機房環境的實時監測與控制,本文采用ESP32單片機、溫濕度傳感器、串口顯示屏、電流環傳感器、繼電器、LoRa通信模塊、紅外發射模塊組建系統。主要實現了環境溫度、設備電流的實時采集、顯示與數據實時回傳等功能,可根據現場環境溫度自動開啟和關閉空調設備,在異常情況發生時,系統能控制繼電器動作切斷動力設備電源,防止意外發生[1-3]。
系統由本地機房監測控制模塊和遠端接收管理平臺構成。其中機房監測控制模塊實時采集數據并處理,之后根據預先設定的規則完成自我控制,同時將現場采集的數據發送給遠端接收管理平臺并接收遠端發送的管理指令,多個監測控制模塊與遠端接收管理平臺采用星型結構組網[4]。系統總體框圖如圖1所示。

圖1 系統總體框圖
采用模塊化設計思想,監測控制模塊主要由主控制器、采集部分、控制部分、傳輸部分與顯示部分組成。主控制器是檢測控制模塊的核心,采用ESP32單片機管理控制,該單片機采用40 nm工藝設計,具有雙核32位CPU,主頻達230 MHz,集成了2.4 GHz雙模WiFi和藍牙,可提供I2C、SPI和UART等接口,負責協調模塊的運行管理與控制。主控制器通過RS 485總線接口與各類傳感器通信交互,各傳感器在接入總線前需配置不同的站點地址,主控制器根據不同的站點地址輪詢每個傳感器采集數據。主控制器采用I/O口對被控設備進行獨立控制,保障控制的可靠性與實時性。主控制器通過UART串口與LoRa模塊通信,實現遠程數據的發送與接收。主控制器通過串口輸出顯示數據[5-6]。硬件設計原理如圖2所示。

圖2 硬件設計原理
模塊軟件使用C語言開發,主控程序運行基于FreeRTOS操作系統,可實現多線程管理。程序初始化過程中,主線程創建了RS 485傳感器采集任務、LoRa收發數據任務、顯示輸出任務、I/O輸出控制任務、紅外發送任務和看門狗監控任務,依賴RTOS系統功能創建FIFO消息隊列、LoRa消息隊列、顯示消息隊列、I/O消息隊列和紅外消息隊列,實現各任務與中斷服務子程序的通信。初始化完成后,主進程進入休眠狀態,等待中斷事件觸發與消息隊列監控,發生異常時重啟設備。主控制器程序流程如圖3所示。

圖3 主控制器程序流程
RS 485傳感器采集任務:讀取傳感器配置信息,獲得傳感器采集地址與采集指令。RS 485傳感器采用Modbus通信協議,主控端根據配置循環向總線站點各傳感器地址發送查詢指令并接收返回的數據,對數據進行校驗解碼后將數據推送到LoRa消息隊列和顯示消息隊列中。
LoRa收發數據任務:讀取LoRa消息隊列中的節點數據,發送數據到LoRa通信模塊;讀取LoRa通信模塊接收的數據,根據接收的內容進行數據處理與格式轉換,然后根據功能將數據發送到相應的消息隊列中。
顯示輸出任務:讀取顯示消息隊列中的節點數據,發送數據到顯示屏。
I/O控制任務:讀取I/O消息隊列中的節點數據,根據數據內容控制I/O引腳的電平,實現設備控制。
紅外發送任務:讀取紅外消息隊列中的節點數據,根據紅外數據控制紅外發射管發送紅外編碼。
看門狗監控任務:周期性地向看門狗電路發送脈沖信號實現喂狗功能,保證系統死機后能重新啟動。
接收管理平臺服務器使用USB-LoRa多通道數據通信模塊與多個監測控制模塊進行星型組網,實現多路數據的收發。
管理平臺采用Java語言開發,基于SpringBoot框架實現對多個監測控制模塊的配置與管理,如監測控制模塊的通信地址與通信數據加密配置,每個監測控制模塊的RS 485接口傳感器地址與數據查詢指令的配置,接收監測數據與圖形化動態顯示,實現遠程設備的實時控制管理,配置傳感器數據閾值實現環境告警等。
本文設計開發了基于LoRa通信的機房環境檢測與控制系統,重點介紹了監測控制模塊的硬件電路與軟件程序設計。在遠端管理平臺實現了對機房環境的監測和管控,當有超閾值事件發生時及時預警。結果表明,該系統運行良好,擴展性強,可靠性高,可為后續園區智能化機房改造和用戶定制服務提供良好的平臺。