李文雯,時之媛,陳宇燦,王廣文,趙 亮
(大連理工大學(xué) 電子信息與電氣工程學(xué)部,遼寧 大連 116024)
智慧城市是利用工程、科技、節(jié)能減排等方式改善城市治理水平的方式,包括道路交通、電網(wǎng)、管網(wǎng)、橋梁等,將城市中普遍存在的資源與信息技術(shù)相結(jié)合,實(shí)現(xiàn)資源數(shù)字化,改善資源利用率,提高服務(wù)性能[1-3]。在城市智慧化發(fā)展進(jìn)程中,我國城市排水管網(wǎng)系統(tǒng)的發(fā)展較為緩慢,隨著全球變暖導(dǎo)致的強(qiáng)降雨天氣增多,普遍存在由于暴雨導(dǎo)致的窨井內(nèi)澇問題,對道路正常通行及人民生命安全產(chǎn)生不利影響[4]。因此,對窨井中的液位進(jìn)行監(jiān)測成為改善排水管網(wǎng)、減少城市內(nèi)澇的重要手段之一。
液位監(jiān)測多采用聲波、電容等傳感設(shè)備進(jìn)行測量。李澤[5]等人設(shè)計了一種超聲波液位測量系統(tǒng),通過對聲波信號進(jìn)行連續(xù)采集,實(shí)現(xiàn)液位的自動在線監(jiān)測;趙明[6]等人提出了一種使用電容式傳感器測量液位的方案,將液位數(shù)據(jù)通過CAN總線發(fā)送至上位機(jī);Konstantinos Loizou[7]等人通過研究現(xiàn)有液位測量技術(shù)提出了新型電容式液位測量系統(tǒng),由于電容的固有非線性影響,測量性能與超聲波性能相當(dāng)。以上研究均是使用傳感設(shè)備對液位進(jìn)行定時采集,缺少針對短時間內(nèi)液位突增的處理,導(dǎo)致系統(tǒng)數(shù)據(jù)反映不及時。Silviu C.Fole[8],Shu T[9],Vana Jelicic[10]等人提出的通過調(diào)整測量間隔,改變采集與傳輸速率并減少系統(tǒng)功耗的思路,與本文提出的液位采集與傳輸系統(tǒng)有相似之處。本文以STM32微控制器為核心,利用雷達(dá)液位計測量液位,加入2個浮球開關(guān)作為液位突增預(yù)警信號,從而動態(tài)改變采集時間。系統(tǒng)通過設(shè)計MOS關(guān)斷電路在低液位時關(guān)閉耗能電路,滿足低功耗需求。
(1)雷達(dá)液位計通過天線系統(tǒng)向液面方向發(fā)射短促的雷達(dá)脈沖,脈沖波遇到液面反射回來后被天線系統(tǒng)重新接收,將雷達(dá)脈沖從發(fā)射到接收所需的運(yùn)行時間、輸入的窨井高度通過STM32微控制器處理、計算后得到液位高度[11],液位計測量示意如圖1所示。
圖1 液位測量示意圖
設(shè)雷達(dá)與液面間的距離為D,脈沖波的傳播速度為光速c,雷達(dá)脈沖從發(fā)射到接收所需時間為t,得出雷達(dá)到液面的距離D為:
若已知窨井的高度為L,則窨井液位的高度H為:
(2)浮球開關(guān)是一種結(jié)構(gòu)簡單、使用方便的液位控制器件,無需提供電源,無復(fù)雜電路連接。當(dāng)浮球開關(guān)被測介質(zhì)浮動浮子時,浮子帶動主體移動,同時浮子另一端的磁體將控制桿上的磁體開關(guān)動作,產(chǎn)生開關(guān)信號。
系統(tǒng)選用2個浮球開關(guān)分別放置于窨井井壁1/2位置、2/3位置,作為液位突增信號開關(guān),用于判斷液位所處位置是否需要啟動預(yù)警,進(jìn)而改變系統(tǒng)的工作模式,更改采集時間,提高系統(tǒng)的靈活性及數(shù)據(jù)采集的實(shí)時性。
系統(tǒng)結(jié)構(gòu)如圖2所示。系統(tǒng)主要由STM32單片機(jī)、MOS關(guān)斷電路、RS 485收發(fā)電路、中斷觸發(fā)電路等組成。雷達(dá)液位計采集液位值,輸出4~20 mA信號,送入模擬量轉(zhuǎn)RS 485采集模塊進(jìn)行信號轉(zhuǎn)換后,通過RS 485收發(fā)電路與STM32單片機(jī)串口通信。使用浮球開關(guān)1、浮球開關(guān)2作為液位突增預(yù)警開關(guān),動態(tài)改變數(shù)據(jù)采集時間,提高數(shù)據(jù)的實(shí)時性。系統(tǒng)中設(shè)計了MOS關(guān)斷電路,當(dāng)系統(tǒng)處于正常工作模式時,STM32單片機(jī)能夠通過MOS關(guān)斷電路關(guān)閉其他耗能電路及設(shè)備。GPRS DTU模塊將STM32單片機(jī)處理后的液位數(shù)據(jù)、電池電壓、故障碼數(shù)據(jù)發(fā)送到上位機(jī)顯示。
圖2 系統(tǒng)結(jié)構(gòu)
系統(tǒng)選用的控制器型號為STM32F103C8T6微處理器。STM32F103C8T6是基于ARM 的32位Cortex-M3內(nèi)核的單片機(jī),工作頻率最高達(dá)72 MHz,內(nèi)置64 KB程序存儲器,3個通用16位定時器,具有豐富的I/O接口以及串行通信接口,工作電壓范圍為2.0~3.6 V,具有功耗低、速度快、性價比高等優(yōu)點(diǎn),可滿足系統(tǒng)低功耗應(yīng)用的要求。STM32單片機(jī)最小系統(tǒng)電路包括時鐘源電路、復(fù)位電路、供電濾波電路。
MOS關(guān)斷電路的主要作用是控制電路的啟停,如在正常工作模式下,即液位低于窨井1/2以下,此時系統(tǒng)的采集傳輸頻率較小,STM32單片機(jī)可輸出控制信號通過MOS關(guān)斷電路使系統(tǒng)中的耗能模塊(如模擬量轉(zhuǎn)RS 485采集模塊、GPRS DTU模塊等),降低系統(tǒng)能耗。MOS關(guān)斷電路如圖3所示,其控制信號由STM32單片機(jī)的PA7引腳(MOS-GPIO2)輸出。
圖3 MOS關(guān)斷電路
當(dāng)MOS-GPIO2輸出高電平時,AOD4184 MOS管和AOD4185 MOS管均為導(dǎo)通狀態(tài),IN+引腳的12 V電壓通過V-out引腳輸出,模擬量轉(zhuǎn)RS 485采集模塊和GPRS DTU開啟;當(dāng)MOS-GPIO2輸出低電平時,AOD4184 MOS管與AOD4185 MOS管均截止,V-out引腳無輸出,模擬量轉(zhuǎn)RS 485采集模塊和GPRS DTU的供電被切斷,停止工作。
為了應(yīng)對暴雨、排水突增等導(dǎo)致液位上漲過快的情況,使數(shù)據(jù)采集更靈活、數(shù)據(jù)反饋更及時,系統(tǒng)設(shè)置了3種工作模式,分為正常工作模式、黃色預(yù)警模式、紅色預(yù)警模式,這3種工作模式的系統(tǒng)喚醒時間即采集時間分別為6 h、5 min、1 min。由液位值與外部浮球是否動作決定系統(tǒng)是否進(jìn)行模式切換,通過高優(yōu)先級中斷進(jìn)行處理。
主程序流程如圖4所示。系統(tǒng)上電后,進(jìn)行初始化,SysTick系統(tǒng)嘀嗒時鐘、RTC實(shí)時時鐘、GPIO端口配置、串口初始化、MOS控制信號端口輸出高電平,使RS 485收發(fā)電路、GPRS DTU模塊、模擬量轉(zhuǎn)RS 485采集模塊開啟,默認(rèn)采集周期為6 h,即默認(rèn)開機(jī)為正常工作模式,采集時間未到則系統(tǒng)等待上位機(jī)發(fā)送查詢報文,系統(tǒng)處于待機(jī)模式,待到達(dá)采集時刻后喚醒。6 h內(nèi)若無中斷產(chǎn)生,則系統(tǒng)開啟正常采集模式,上位機(jī)通過串口3發(fā)送查詢報文,系統(tǒng)進(jìn)行液位計電流、電壓信號的采集,通過模擬量轉(zhuǎn)RS 485采集模塊轉(zhuǎn)換信號后送入STM32單片機(jī)處理并存儲,若電流小于4 mA,說明液位計出現(xiàn)故障,產(chǎn)生報文,對應(yīng)位輸出故障碼00 01;反之,液位計工作正常,此時產(chǎn)生的報文為00 00。由于中斷信號是由外部浮球開關(guān)是否動作產(chǎn)生,無中斷產(chǎn)生說明液位未達(dá)到外部浮球開關(guān)所在預(yù)警位置,系統(tǒng)在2個浮球預(yù)警對應(yīng)位輸出報文00 00。此時,系統(tǒng)產(chǎn)生響應(yīng)報文中的寄存器數(shù)據(jù),包括電流值、電壓值、浮球2指示、浮球1指示、液位計指示,通過串口2連接GPRS DTU模塊發(fā)送至上位機(jī)。一個采集周期的數(shù)據(jù)采集發(fā)送完成后,STM32單片機(jī)對應(yīng)MOS控制端口復(fù)位,輸出低電平,MOS關(guān)斷電路控制相應(yīng)RS 485收發(fā)電路、GPRS DTU模塊、模擬量轉(zhuǎn)RS 485采集模塊停止工作,減少能耗。系統(tǒng)進(jìn)入停機(jī)模式,等待下一個采集周期喚醒或外部浮球開關(guān)中斷喚醒。
圖4 主程序流程
系統(tǒng)默認(rèn)為正常采集模式,即每6小時采集、發(fā)送數(shù)據(jù)一次,此時液位應(yīng)處于窨井1/2以下。當(dāng)液位繼續(xù)上漲超過1/2黃色預(yù)警位置或2/3紅色預(yù)警位置時,浮球開關(guān)動作,產(chǎn)生開關(guān)信號,上升沿觸發(fā),使系統(tǒng)進(jìn)入中斷。系統(tǒng)中斷程序如圖5所示。系統(tǒng)進(jìn)入中斷響應(yīng)后,清除此中斷的標(biāo)志位,執(zhí)行系統(tǒng)復(fù)位操作,重新初始化各配置,并保存系統(tǒng)參數(shù)。判斷中斷來源,若中斷由外部中斷線EXTI_Line6產(chǎn)生,則為PA6引腳所連的浮球開關(guān)動作,說明液位超過1/2位置,進(jìn)入黃色預(yù)警模式,對應(yīng)位輸出浮球信號報文,設(shè)置RTC鬧鐘喚醒時間(采集時間為5 min),保存參數(shù),轉(zhuǎn)入初始化后的主程序,以間隔5 min進(jìn)行周期性采集;若由外部中斷線EXTI_Line7產(chǎn)生,則為PA7引腳所連的浮球開關(guān)動作,說明液位超過2/3位置,進(jìn)入紅色預(yù)警模式,對應(yīng)位輸出浮球信號報文,設(shè)置RTC鬧鐘喚醒時間(采集時間為1 min),保存參數(shù),轉(zhuǎn)入初始化后的主程序,以間隔1 min進(jìn)行周期性采集。
圖5 中斷程序流程
系統(tǒng)的測試分為2類,即有液位計接入和無液位計接入,其中每類測試包含5組隨機(jī)實(shí)驗(yàn),每組實(shí)驗(yàn)包含1個完整的喚醒周期,即系統(tǒng)初始化、數(shù)據(jù)采集階段、數(shù)據(jù)傳輸階段和休眠階段,通過分析系統(tǒng)在每個階段的工作時間和電流消耗,進(jìn)而分析系統(tǒng)的整體功耗。
(1)有液位計接入
將液位計接入系統(tǒng),測得系統(tǒng)在正常工作模式下電流消耗情況如圖6所示。
圖6 有液位計接入時的電流消耗波形
系統(tǒng)初始化,執(zhí)行STM32處理器的初始化以及GPRS模塊聯(lián)網(wǎng)功能,如圖6位置1所示,聯(lián)網(wǎng)脈沖導(dǎo)致電流尖峰出現(xiàn),此階段平均時間為26 s,電流平均值為64.1 mA。
數(shù)據(jù)采集階段,執(zhí)行液位計數(shù)據(jù)采集功能,包括液位值、浮球信號和電池電壓值,如圖6位置2所示,此階段平均時間為27 s,電流平均值為44.4 mA。
數(shù)據(jù)傳輸階段,執(zhí)行GPRS模塊數(shù)據(jù)傳輸以及參數(shù)配置更新操作,如圖6位置3所示。GPRS模塊向云端發(fā)送數(shù)據(jù)時產(chǎn)生電流值尖峰,峰值平均值為106.3 mA,平均時間為2 s,之后電流下降,系統(tǒng)進(jìn)入等待云端指令狀態(tài),進(jìn)行參數(shù)配置更新,此狀態(tài)只在正常工作模式下出現(xiàn)。正常工作模式下傳輸階段平均時間為38 s,電流平均值為49.8 mA。
休眠階段,系統(tǒng)進(jìn)入休眠狀態(tài)后,通過MOS電路關(guān)斷耗能模塊,系統(tǒng)進(jìn)入低功耗狀態(tài),如圖6位置4所示,電流平均值為 180.0 μA。
每組實(shí)驗(yàn)中各工作階段的平均時間、電流峰值和電流平均值數(shù)據(jù)見表1、表2所列。
表1 不同階段平均工作時間 s
表2 不同階段電流值
(2)無液位計接入
斷開液位計與系統(tǒng)的連接,測得系統(tǒng)在正常工作模式下電流消耗情況如圖7所示。從圖中可看出,系統(tǒng)數(shù)據(jù)采集階段時間變長,平均采集時間為90 s,約為有液位計接入時的3倍,這是因?yàn)橄到y(tǒng)采用的液位計初始化時間約為30 s,若系統(tǒng)在連續(xù)3個周期都未收到液位計的響應(yīng),則系統(tǒng)輸出故障碼。此測試驗(yàn)證了系統(tǒng)能夠正確處理液位計發(fā)生故障并上報的情況。
圖7 無液位計接入時的電流消耗波形
記一次喚醒周期內(nèi)每個工作階段的平均時間分別為t1,t2,t3,t4,電流平均值分別為I1,I2,I3,I4。
正常工作模式下,系統(tǒng)喚醒間隔為6 h,其中系統(tǒng)初始化階段t1為26 s,I1為64.1 mA;數(shù)據(jù)采集階段t2為27 s,I2為44.4 mA;數(shù)據(jù)傳輸階段t3為38 s,I3為49.8 mA;其余時間為休眠狀態(tài),t4為6 h,I4為180.0 μA。
正常工作模式下喚醒一次消耗的電能qn:
黃色預(yù)警模式下,系統(tǒng)喚醒間隔為5 min,前2個階段與正常工作模式一致,數(shù)據(jù)傳輸階段t3為2 s,I3為106.3 mA,此模式下休眠階段t4為[5×60-(t1+t2+t3)] s,接近4 min,I4為180.0 μA。計算得到黃色預(yù)警工作模式下喚醒一次消耗的電能qy:
紅色預(yù)警模式下,系統(tǒng)喚醒間隔為1 min,前3個階段與黃色預(yù)警模式一致,此模式下系統(tǒng)休眠時間接近0。計算得到紅色預(yù)警模式下喚醒一次消耗的電能qr:
假設(shè)一年中累計正常工作模式下的工作時間為350天,黃色預(yù)警模式下為10天,紅色預(yù)警模式下為5天,則系統(tǒng)在一年內(nèi)消耗的電能Q為:
代入數(shù)據(jù)計算:
本文以窨井液位為研究對象,設(shè)計了一種基于STM32的低功耗窨井液位采集與傳輸系統(tǒng),通過使用雷達(dá)液位計采集液位值,并通過GPRS模塊將液位值、電池電壓、故障碼上傳到接收端或云端,使用MOS電路控制其他耗能電路的啟停,同時為了能夠靈活應(yīng)對液位突增情況,選擇使用浮球開關(guān)作為預(yù)警信號,改變采樣周期,使系統(tǒng)能夠在正常工作模式、黃色預(yù)警、紅色預(yù)警模式下切換。通過兩類隨機(jī)實(shí)驗(yàn),證明了系統(tǒng)能夠穩(wěn)定運(yùn)行,并對電流的消耗情況進(jìn)行分析,得到不同工作階段消耗的電能,估算出在假設(shè)情況下,一年的耗能為12.01 A·h,滿足系統(tǒng)低功耗的要求。后續(xù)準(zhǔn)備在系統(tǒng)中加入趨勢預(yù)測算法,使系統(tǒng)能夠提前預(yù)測液位的增長趨勢,提高系統(tǒng)的實(shí)用性。