蒙小胖,李雁兵,梁泓泉,李 萌,張飛鴿
(1.陜西地方電力(集團)有限公司寶雞供電分公司,陜西 寶雞 721000;2.寶雞文理學院,陜西 寶雞 721016)
雨量自動檢測系統可以有效預防洪水對人類生活的破壞,其充分發揮了計算機技術、數據采集及電子通信技術等技術的優勢。在20世紀80年代,隨著傳感器及無線通信的更新,雨量檢測系統得到了飛速發展。在1976年,美國SM公司研發了一套雨量檢測系統,拉開了雨量檢測系統發展的序幕;在20世紀90年代,隨著數據傳輸、計算機技術及信息采集設備的進一步發展,大力促進了雨量檢測系統的更新換代。文獻[1]為了解決檢測雨量和微觀特征等難題,提出了基于壓電效應的降雨參數感知方法,實現了雨滴數量的估計,通過累加雨滴體積從而獲得降雨量;文獻[2]利用等量法初步標定單個雨滴的壓電式雨量傳感器的輸入輸出關系,同文獻[1]通過累加雨滴體積得到降雨量和強度,并完成雨滴譜的測量分析;文獻[3]通過使用PGC10型移動式雨量計率定儀對部分地區采用翻斗式自動遙測雨量計檢測,并對降雨量進行檢測和校準;文獻[4]利用擋風玻璃短時相對靜止的特點,對雨滴的灰度和梯度特征進行雨滴粗分隔算法處理。本文主要以STM32單片機為核心控制器,結合FC-37雨滴傳感器、NRF24L01無線收發模塊和OLED顯示屏等實現雨量無線檢測系統的設計。
本文以單片機為核心控制器來設計一款雨量自動檢測系統,通過無線傳輸技術和雨量傳感器實時檢測遠距離的降雨量信息,并通過OLED顯示屏顯示[5-7]。本設計利用STM32作為主控芯片完成主控電路的設計,輔助電路包括雨量檢測電路、無線收發模塊電路、OLED顯示電路和電源電路等,其系統原理如圖1所示。

圖1 系統原理
由圖1可知,本系統主要包括2個模塊,分別是發送模塊和接收模塊,并且2個模塊都能進行雨量檢測。發射模塊將采集的信息及時發送給接收模塊,接收模塊結合自身檢測雨量信息,根據軟件中設計的雨量閾值判斷雨量大小,通過2個顯示屏顯示采集信息。
本設計選用STM32系列單片機,由于其采用3.3 V供電,而選用的傳感器供電電壓為3.6~5.0 V,綜合元器件特性,本系統采用4.5 V供電。為了滿足單片機供電需求,需要設計降壓電路。BL8064可在0.1 V步進中提供1.1~5.5 V范圍內的輸出值,也可以根據命令指定。BL8064包括高精度基準電壓、誤差放大器、限流電路和輸出驅動模塊,其具有良好的負載暫態響應和良好的溫度特性,采用微調技術保證輸出電壓精度在±2%以內。在應用電路中都使用輸入電容(Cin=10 μF)和輸出電容(Cout=10 μF)。從而可知,在設計過程中使用BL8064將4.5 V電源轉換為3.3 V來滿足單片機和傳感器需求,降壓電路如圖2所示。

圖2 系統供電電路
由圖2可知,為防止該電源的反接,在電源輸入端添加1個SS14,當系統電源正向接通時,系統壓降滿足SS14導通條件,SS14導通;當系統電源反向接通時,SS14兩端被接入負電源,SS14截止。為提示系統是否正常工作,在該系統中,加入了1個LED顯示燈,當系統正常工作時,LED5燈亮,如果電源電流較小或短路等情況,LED5燈將熄滅。
本設計采用LED閃爍的方式提示該系統運行是否正常。LED閃爍任務在500 ms定時中斷處理函數中調用,其采用VCC加上拉電阻的方式進行設計,其電路如圖3所示。

圖3 LED電路
系統采用單片機PC端口控制LED燈,其中,PC13連接LED1,PC14連接LED2,PC15連接LED3。當LED燈的控制管腳被拉低時,系統形成回路,LED導通發出亮光;當LED燈的控制管腳被拉高時,系統不能形成回路,LED燈滅。在該設計中,考慮到系統管腳最大可承受電流為幾十mA,因此上拉電阻選擇4.7 kΩ電阻進行電流限流處理,從而對單片機的管腳連接進行保護[8-10]。
采用雨量傳感器FC-37檢測雨量大小,該傳感器可以將雨量信息轉化成電路中的數字量信息或模擬量信息輸出,其工作方式簡單實用,便于單片機對信息的采集和處理。其工作原理是雨滴量可改變電容的介電常數,從而影響電容的大小,電容計算公式為
(1)
C為電容;ε為介電常數;4πk為常數;d為柵極板間的距離;s為柵極板的正對面積[11-13]。
當雨滴落到電容的柵極之間時,改變了電容的介電常數,其電容值也就隨之變化,此時系統將電容值的變化量傳輸給單片機,再由單片機輸出口將信息通過顯示屏顯示出雨量的大小。而且該傳感器如果采用大面積的組合感應板,檢測效果更好,其表面材料采用鍍鎳的方式,具有極強的抗氧化性能。FC-37雨量傳感器實物如圖4所示,硬件連接電路如圖5所示。

圖4 FC-37雨量傳感器實物

圖5 FC-37雨量傳感器連接
圖5中,IN輸入端連接FC-37雨滴傳感器,電源線接+3.3 V電源。傳感器信號經過濾波整形電路之后,通過OUT端連接單片機的管腳P1。傳感器為可變電容,其原理為當雨滴落到電容的柵極之間時,改變了電容的介電常數,其電容值也就隨之變化,根據電容值得到變化量控制單片機,再由單片機控制顯示屏顯示出雨量的大小,從而實現雨量的檢測。
本設計中的雨量信息需要進行一定距離的無線傳輸,故基于NRF24L01芯片搭建了硬件電路模塊,將無線模塊收發集于一體,并利用程序設計區分發送方和接收方。該無線射頻收發模塊在與單片機的通信上采用的是基于SPI協議的通信方式,其連接單片機的6個引腳。NRF24L01無線通信模塊與單片機引腳連接如圖6所示。

圖6 NRF24L01芯片與單片機引腳連接
圖6中,模塊的1、2號管腳連接的是電源VCC和GND,需要注意,本模塊采用3.3 V供電電源。其中,SCK為同步時鐘,連接單片機的PA5引腳;MOSI為主輸出從輸入,連接單片機的PA7引腳;MISO為主輸入從輸出,連接單片機的PA6引腳;CE為使能端,連接單片機的PA4引腳;CSN為SPI片選使能引腳,連接單片機的PA3引腳;IRQ為中斷引腳,連接單片機的PA2引腳。當發送數據成功或者接收數據成功時IRQ置低。
綜上所述,基于單片機的雨量自動檢測系統的設計,其主要以單片機作為主控制器,并結合傳感器模塊、LED指示燈模塊、信息發收模塊、信息顯示模塊與接收模塊及系統電壓模塊,從而可實現雨量自動檢測。
本設計主要應用C語言進行編程,在Keil的開發環境下編輯,經過編譯、鏈接后,采用JLINK下載器將程序下載到單片機中,從而實現系統的預期功能。
發送機在此設計中為從機,即在圖1中提出采集降雨量信息的單片機控制器1,在軟件節點上稱之為從節點。從節點軟件流程如7圖所示。
該控制系統在硬件上主要由STM32F103單片機控制單元、降雨量檢測模塊和NRF24L01無線發射模塊等構成。在軟件方面,單片機上電后首先完成定時器初始化、AD模數轉換的初始化和NRF24L01無線發射模塊的初始化;然后定時采集降雨量信息,并將采集的模擬量信號通過AD轉換通道轉換成數字量信號;最后使用NRF24L01無線發射模塊將雨量信息發送給主機。

圖7 從節點軟件流程
接收機在本設計中為主機,即圖1中接收降雨量信息并顯示的單片機控制器2,在軟件節點上稱之為主節點。主節點軟件流程如圖8所示。

圖8 主節點軟件流程
根據圖8可知,當接收機檢測到從機發送的信息時,單片機讀取雨量信息,并將雨量通過顯示屏顯示,如果主機并未檢測到從機發送的信息,則從機通信故障變量加1,如果檢測故障變量值大于10 時,則接收系統初始化,重新開始雨量檢測。
在該設計中,STM32F103單片機通過ADC通道1讀取降雨量傳感器傳輸的數據,首先要對其進行初始化,其中包括設置ADC分頻因子為6,由于72 MHz/6=12 MHz,故確保ADC最大時鐘不超過14 MHz;將PA1作為模擬通道輸入的模擬信號引腳,并復位ADC1,將外設 ADC1的全部寄存器重設為缺省值;設置ADC1和ADC2工作在獨立模式,并確定模數轉換工作在單次單通道的模式下,且具有轉換軟件啟動功能,因此可以使用中斷控制雨量信息的識別和顯示。
當系統ADC初始化完畢后,單片機通過調用通道電壓讀取函數獲取通道電壓,程序為:
u16 Get_Adc(u8 ch)
{
//設置指定ADC的規則組通道,一個序列,采樣時間
ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5)
ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的軟件轉換啟動功能
while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC ));//等待轉換結束
return ADC_GetConversionValue(ADC1);//返回最近一次ADC1規則組的轉換結果
}
經過上述軟件設計,可以采用STM32F103型低功耗單片機作為主控器件,FC-37雨量傳感器、NRF24L01無線收發模塊以及OLED顯示屏等各個硬件協同工作,完成雨量無線檢測系統的設計目的。
根據上述設計原理實現雨量檢測系統的設計,在實物測試中,經查閱傳感器資料及雨量界定標準,檢測板面積大小為6 cm2,使用水滴模仿自然雨量進行結果調試,其調試過程如下:
a.當保持雨量傳感器面板干燥,系統檢測到無雨,系統屏幕顯示“NO Rain”,其測試現象如圖9a所示。
b.當在雨量傳感器面板上的水滴小于2 mL時對應自然界小雨降水量,從機未檢測到水滴,此時系統檢測為小雨,顯示“Small Rain”,其測試現象如圖9b所示。
c.當在雨量傳感器面板上水滴大于2 mL小于5 mL,此時系統檢測為中雨,顯示“Medium Rain”,其測試現象如圖9c所示。
d.當在雨量傳感器面板上水滴大于5 mL小于10 mL,此時系統檢測為大雨,顯示“Big Rain”,其測試現象如圖9d所示。
e.當在雨量傳感器面板上水滴大于10 mL,此時系統檢測為特大雨,顯示“T Rain”,其測試現象如圖9e所示。

圖9 雨量檢測調試結果
通過對軟件和硬件的設計,實現了雨量自動檢測系統的基本功能。本文首先提出了雨量檢測系統總體的設計方案,并根據各模塊的需求設計硬件電路;其次結合硬件電路功能需求,采用C語言編寫程序,通過Keil軟件編譯,并下載至單片機中,從而實現了基于單片機的雨量檢測系統;最后通過實物測試可知,本次設計可以實現對小雨、中雨、大雨以及特大雨的實時檢測,顯示結果較為準確。在今后研究中,本設計將增加多個檢測點,并對檢測數據融合,可使檢測區域增大,使得該系統具有更廣泛的應用。