薛 峰,李 娟,王如龍
(1.北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京 100192;2.中熱智能(北京)工程技術(shù)有限公司,北京 100085)
隨著我國(guó)城市建設(shè)的快速發(fā)展,集中供熱的規(guī)模更加龐大,是我國(guó)冬季主要的供暖形式之一。由于供熱系統(tǒng)具有大慣性和大滯后等特點(diǎn)[1],供熱不均和水力失衡等問(wèn)題時(shí)常出現(xiàn)[2]。為解決此類(lèi)問(wèn)題,熱力公司需要對(duì)室內(nèi)供暖的實(shí)際溫度進(jìn)行獲取,以此指導(dǎo)熱網(wǎng)的自動(dòng)化調(diào)度工作,調(diào)整供熱策略,從而達(dá)到按需供熱的重要目標(biāo)[3]。
無(wú)線通信技術(shù)因具有成本低、靈活性高、適應(yīng)性強(qiáng)和便于維護(hù)等優(yōu)勢(shì),在各行業(yè)及溫度監(jiān)測(cè)領(lǐng)域得到廣泛的應(yīng)用[4-5]。文獻(xiàn)[6]利用ZigBee技術(shù)進(jìn)行溫度傳感器組網(wǎng),對(duì)室內(nèi)多個(gè)點(diǎn)位的溫度進(jìn)行監(jiān)測(cè)。但ZigBee技術(shù)僅適用于短距離、小范圍內(nèi)的設(shè)備組網(wǎng),信號(hào)穿墻能力弱,不適用于長(zhǎng)距離通信。文獻(xiàn)[7]采用近年來(lái)推出的遠(yuǎn)距離無(wú)線電(Long Range Radio,LoRa)技術(shù)設(shè)計(jì)了一種環(huán)境溫濕度監(jiān)測(cè)節(jié)點(diǎn),可以實(shí)時(shí)監(jiān)測(cè)車(chē)間內(nèi)的溫濕度變化,對(duì)異常情況進(jìn)行報(bào)警提醒。但LoRa網(wǎng)絡(luò)在實(shí)際使用時(shí),除了在現(xiàn)場(chǎng)終端設(shè)備中安裝LoRa射頻模塊外,還需根據(jù)終端設(shè)備的數(shù)量,部署相應(yīng)的匯聚網(wǎng)關(guān),部署難度大,成本較高[8]。文獻(xiàn)[9]運(yùn)用通用無(wú)線分組業(yè)務(wù)(General Packet Radio Service,GPRS)技術(shù)對(duì)集中供熱用戶住房?jī)?nèi)的溫度進(jìn)行監(jiān)測(cè)。但GPRS設(shè)備工作電流較大,整體功耗高[10],不適合用于長(zhǎng)期由電池供電的工作場(chǎng)景。窄帶物聯(lián)網(wǎng)(Narrow Band Internet of Things,NB-IoT)作為近些年發(fā)展較快的物聯(lián)網(wǎng)無(wú)線通信技術(shù),使用授權(quán)頻段,具有低功耗、低速率和強(qiáng)連接等特點(diǎn),與非實(shí)時(shí)、低頻次的定時(shí)上報(bào)數(shù)據(jù)類(lèi)業(yè)務(wù)較契合[11-12]。
因此,本文設(shè)計(jì)一種基于NB-IoT技術(shù),采用UDP的遠(yuǎn)程供熱溫度監(jiān)測(cè)系統(tǒng),溫度終端可用電池供電,按照設(shè)置的時(shí)間周期定時(shí)采集環(huán)境和設(shè)備的有關(guān)信息,并上傳至云服務(wù)器;熱力公司可通過(guò)電腦端瀏覽器打開(kāi)Web頁(yè)面查閱當(dāng)前和歷史數(shù)據(jù),也可通過(guò)手機(jī)APP查看當(dāng)前供熱情況。系統(tǒng)對(duì)于協(xié)助熱力公司掌握供熱狀況、提高供熱質(zhì)量具有實(shí)際意義。
基于NB-IoT的供熱溫度監(jiān)測(cè)系統(tǒng)總體結(jié)構(gòu)如圖1所示。由溫度終端、移動(dòng)通信網(wǎng)絡(luò)、百度云服務(wù)器和客戶端等四部分組成。溫度終端作為現(xiàn)場(chǎng)設(shè)備,采集和處理室內(nèi)的環(huán)境溫濕度數(shù)據(jù)和設(shè)備相關(guān)信息,并通過(guò)NB-IoT網(wǎng)絡(luò)上傳至移動(dòng)通信基站;移動(dòng)通信基站通過(guò)UDP協(xié)議與云服務(wù)器交換數(shù)據(jù),云服務(wù)器對(duì)數(shù)據(jù)進(jìn)行解析、存儲(chǔ);手機(jī)APP和電腦Web瀏覽器可通過(guò)HTTP協(xié)議訪問(wèn)云服務(wù)器查看最新數(shù)據(jù)。
圖1 供熱溫度監(jiān)測(cè)系統(tǒng)組成
NB-IoT支持TCP、UDP、HTTP、消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)、受限應(yīng)用協(xié)議(Constrained Application Protocol,CoAP)等眾多協(xié)議。其中,UDP協(xié)議的報(bào)文結(jié)構(gòu)簡(jiǎn)單,且無(wú)需保持長(zhǎng)連接,對(duì)流量和電量消耗少,適用于低功耗的應(yīng)用場(chǎng)景。
供熱溫度監(jiān)測(cè)系統(tǒng)終端的硬件總體結(jié)構(gòu)如圖2所示,主要由鋰電池、低壓差線性穩(wěn)壓器、主控單元、NB-IoT通信模組、溫濕度傳感器和電池電量檢測(cè)電路等部分組成。
圖2 溫度終端硬件總體結(jié)構(gòu)
低壓差線性穩(wěn)壓器ME6211C33M5G-N將電池電源穩(wěn)壓后給各部分供電;主控單元包括主控微處理器(Micro Control Unit,MCU)及其外圍電路,MCU型號(hào)為STM32L071CBT6,待機(jī)模式的消耗電流為0.85 μA,外圍電路包括串行接口電路、供電插口、晶振、濾波電容、復(fù)位按鈕等;NB-IoT通信模組包括模組本體及其外圍電路,模組本體選用中國(guó)移動(dòng)M5310-A,外圍電路包括串行接口電路、SIM卡、天線和復(fù)位按鈕。M5310-A支持UDP協(xié)議及其他多種通信協(xié)議,在節(jié)能模式(Power Saving Mode,PSM)狀態(tài)下的運(yùn)行電流低至5 μA;溫濕度傳感器型號(hào)為奧松AHT25,采用I2C協(xié)議進(jìn)行通信,體積小,精度良好,使用1.27 mm間距的插銷(xiāo)式接口與MCU連接。
根據(jù)電池電量和電壓的曲線關(guān)系[13],設(shè)計(jì)了電池電量檢測(cè)電路。利用電阻分壓和ADC采樣功能,估算鋰電池的剩余電量。電池電量檢測(cè)電路原理如圖3所示。VCC為電池的供電引腳,BAT_ADC為ADC采樣引腳,SWITCH引腳用來(lái)控制PMOS管Q2的通斷,防止分壓電阻在設(shè)備休眠期間對(duì)地產(chǎn)生電流,浪費(fèi)電能。
圖3 電池電量檢測(cè)電路
系統(tǒng)軟件設(shè)計(jì)包括溫度終端嵌入式程序、監(jiān)測(cè)系統(tǒng)服務(wù)程序和安卓APP三部分。嵌入式程序開(kāi)發(fā)工具為MDK5和STM32CubeMX,STM32CubeMX可對(duì)MCU進(jìn)行初始化配置,提高開(kāi)發(fā)效率;監(jiān)測(cè)系統(tǒng)服務(wù)程序和安卓APP的開(kāi)發(fā)工具分別為IntelliJ IDEA 2021.2.2和Android Studio 2021.3.1。
嵌入式程序主要包括終端初始化、數(shù)據(jù)收集及處理、通信配置、數(shù)據(jù)發(fā)送、休眠與喚醒。程序流程如圖4所示。
圖4 嵌入式程序流程
終端上電啟動(dòng),MCU完成時(shí)鐘、USART、GPIO、I2C、ADC轉(zhuǎn)換等初始化任務(wù),同時(shí)M5310-A完成駐網(wǎng)工作等初始化任務(wù);初始化成功后,分別通過(guò)AHT25、電池電量檢測(cè)電路、AT命令收集需要發(fā)送的各類(lèi)數(shù)據(jù),如環(huán)境溫濕度、設(shè)備溫度、信號(hào)值等,并將數(shù)據(jù)處理成字符串形式以備數(shù)據(jù)發(fā)送任務(wù);進(jìn)行通信配置任務(wù),指定服務(wù)器地址和端口,發(fā)送UDP數(shù)據(jù)。發(fā)送完畢,M5310-A進(jìn)入PSM模式,MCU啟動(dòng)RTC,定時(shí)5 min,進(jìn)入待機(jī)模式。此時(shí)的測(cè)溫周期為5 min,即MCU的待機(jī)時(shí)間。MCU待機(jī)時(shí)間到則被喚醒,隨即喚醒M5310-A使其退出PSM模式,再次進(jìn)行數(shù)據(jù)收發(fā)任務(wù)。M5310-A使用的AT命令見(jiàn)表1所列。
表1 AT命令
在數(shù)據(jù)收集和處理過(guò)程中,對(duì)于環(huán)境溫濕度數(shù)據(jù),可以重復(fù)多次讀取傳感器的數(shù)值并進(jìn)行均值濾波處理,使數(shù)據(jù)更加準(zhǔn)確。
監(jiān)測(cè)系統(tǒng)服務(wù)程序部署于百度云服務(wù)器內(nèi),通過(guò)9999端口與M5310-A進(jìn)行通信,M5310-A通過(guò)UDP協(xié)議向云服務(wù)器的9999端口發(fā)送數(shù)據(jù)。監(jiān)測(cè)系統(tǒng)服務(wù)程序一方面負(fù)責(zé)接收、解析、存儲(chǔ)M5310-A發(fā)送的數(shù)據(jù),并將歷史數(shù)據(jù)以電腦端Web頁(yè)面可視化呈現(xiàn);另一方面向外提供接口給手機(jī)APP查詢最新數(shù)據(jù)使用。監(jiān)測(cè)系統(tǒng)服務(wù)程序整體使用Spring Boot框架進(jìn)行搭建,數(shù)據(jù)的存儲(chǔ)和查詢使用持久層框架Mybatis,數(shù)據(jù)庫(kù)采用MySQL,針對(duì)Web頁(yè)面使用Thymeleaf和Echarts進(jìn)行頁(yè)面可視化效果的渲染和顯示;使用Netty網(wǎng)絡(luò)程序應(yīng)用框架接收并處理M5310-A發(fā)送的UDP數(shù)據(jù)。系統(tǒng)服務(wù)程序結(jié)構(gòu)如圖5所示。
圖5 系統(tǒng)服務(wù)程序結(jié)構(gòu)
手機(jī)APP采用原生開(kāi)發(fā)方式,基于Java語(yǔ)言編寫(xiě),通過(guò)HTTP協(xié)議與百度云服務(wù)器通信,采用OkHttp網(wǎng)絡(luò)請(qǐng)求框架[14]向云服務(wù)器發(fā)送GET請(qǐng)求,云服務(wù)器中的系統(tǒng)服務(wù)程序接收到GET請(qǐng)求后會(huì)回復(fù)一組響應(yīng)數(shù)據(jù);APP使用Gson庫(kù)將獲取到的HTTP響應(yīng)數(shù)據(jù)解析為Java對(duì)象,最終將Java對(duì)象顯示到綁定的界面控件上,完成數(shù)據(jù)顯示任務(wù)。手機(jī)APP設(shè)計(jì)框圖如圖6所示。
圖6 手機(jī)APP設(shè)計(jì)框圖
由于百度云服務(wù)器擁有公網(wǎng)IP且具有防火墻功能,因此在測(cè)試前,需打開(kāi)相應(yīng)端口的防火墻權(quán)限,放行Web和APP對(duì)云服務(wù)器的請(qǐng)求。
使用IDEA內(nèi)置的MAVEN工具將服務(wù)程序打包成jar包,將jar包上傳至云服務(wù)器并啟動(dòng),啟動(dòng)服務(wù)程序界面如圖7所示。
圖7 啟動(dòng)服務(wù)程序界面
服務(wù)程序成功啟動(dòng)后,將終端上電,等待其以5 min的時(shí)間間隔發(fā)送10次數(shù)據(jù)。發(fā)送完畢后,使用Chrome瀏覽器訪問(wèn)云服務(wù)器的8080端口,服務(wù)器顯示的Web界面如圖8所示。
圖8 Web界面
啟動(dòng)手機(jī)APP查詢最近一次設(shè)備上報(bào)的數(shù)據(jù)。點(diǎn)擊“獲取最新數(shù)據(jù)”按鈕,數(shù)據(jù)界面可顯示最新一次上報(bào)的時(shí)間、環(huán)境溫濕度、設(shè)備溫度、設(shè)備電量、信號(hào)強(qiáng)度和測(cè)溫周期等數(shù)據(jù)。數(shù)據(jù)顯示界面如圖9所示。觀察Web界面和手機(jī)APP顯示,二者的溫濕度等數(shù)據(jù)一致且完整。
圖9 APP數(shù)據(jù)顯示界面
本文主要開(kāi)發(fā)了一種基于NB-IoT的遠(yuǎn)程供熱溫度監(jiān)測(cè)系統(tǒng),該系統(tǒng)運(yùn)用UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸,具有運(yùn)行穩(wěn)定、數(shù)據(jù)傳輸完整和功耗低等特點(diǎn)。熱力公司工作人員可使用電腦端Web頁(yè)面和安卓APP查看歷史和最新數(shù)據(jù),實(shí)現(xiàn)了物聯(lián)網(wǎng)技術(shù)與集中供熱系統(tǒng)的結(jié)合,為集中供熱系統(tǒng)向智慧化、低碳化轉(zhuǎn)變提供了參考。后續(xù)研究將豐富手機(jī)APP等功能。
物聯(lián)網(wǎng)技術(shù)2023年11期