伍 薇,蘇文興,劉倩希
(玉林師范學(xué)校 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣西 玉林 537000)
我國(guó)是農(nóng)業(yè)大國(guó),由水利部近三十年來發(fā)布的水資源公報(bào)可知,每年農(nóng)業(yè)用水量占全國(guó)總用水量的60%左右[1]。從數(shù)據(jù)可以看出,農(nóng)業(yè)用水方式還沒有得到明顯的優(yōu)化。傳統(tǒng)的接觸式測(cè)距受外在因素影響較大,測(cè)距時(shí)要與被測(cè)物相接觸,增大了測(cè)量誤差[2-5]。本文就此問題設(shè)計(jì)了一款使用便捷且測(cè)距精度更高的非接觸式農(nóng)田水位測(cè)量系統(tǒng),通過超聲波實(shí)現(xiàn)非接觸式測(cè)距[6-8],并對(duì)超聲波在空氣中傳播導(dǎo)致的誤差進(jìn)行溫度補(bǔ)償,以提高測(cè)距精度。
本系統(tǒng)設(shè)計(jì)的基本原理如圖1所示,總體框圖如圖2所示。
圖1 超聲波農(nóng)田水位測(cè)量基本原理
圖2 系統(tǒng)總體框圖
本系統(tǒng)需要進(jìn)行兩次定點(diǎn)測(cè)量,第一次測(cè)量超聲波傳感器距地面總高度h,第二次測(cè)量超聲波傳感器到農(nóng)田水面之間的距離s。
首先對(duì)h的測(cè)量,在農(nóng)田干旱的情況下進(jìn)行,超聲波傳感器向地面定向發(fā)射超聲波,入射波到達(dá)農(nóng)田地面后立即被反射,反射波被超聲波接收器接收,從超聲波發(fā)射到接收的時(shí)間間隔為Δt,利用時(shí)間渡越法就可以算出h:
式中,v為超聲波傳播速度。
再按下測(cè)量鍵,將h寫入E2PROM中,超聲波開始自動(dòng)測(cè)量農(nóng)田水位d:
按下測(cè)量鍵,代表已經(jīng)確定好h,開始進(jìn)行s的測(cè)量,與測(cè)量h一樣。測(cè)出s后,立即進(jìn)行處理并得到農(nóng)田水位。
最后可通過LCD屏實(shí)時(shí)查看農(nóng)田水位情況,如果水位超過指定范圍,利用蜂鳴器和LED進(jìn)行報(bào)警提示,以確保農(nóng)田水位保持在一個(gè)適宜位置。
農(nóng)田水位測(cè)量系統(tǒng)的電路原理如圖3所示。
圖3 硬件電路設(shè)計(jì)原理
以低功率、高性能的STC89C52為主控芯片,采用頻率為12 MHz的高精度晶振組成晶振電路,由K1按鈕控制復(fù)位形成復(fù)位電路,供電模塊采用5 V直流電源,以上即為最小系統(tǒng)的組成。
2.2.1 超聲波模塊電路
HC_SR04超聲波模塊的內(nèi)部自帶一個(gè)40 kHz的電壓脈沖信號(hào),其工作電壓為5 V,測(cè)量精度可達(dá)0.3 cm,其工作時(shí)序如圖4所示。工作方式是首先保持觸發(fā)控制信號(hào)Trig引腳為低電平,單片機(jī)P2.0引腳向Trig腳輸出一個(gè)持續(xù)10 μs以上的高電平,超聲波模塊被啟動(dòng)后會(huì)連續(xù)發(fā)出8個(gè)40 kHz的脈沖,從而發(fā)出超聲波信號(hào);信號(hào)發(fā)射完成后,回響信號(hào)Echo腳將發(fā)出持續(xù)的高電平,當(dāng)模塊接收到反射回的超聲波時(shí),該腳位被置地,Echo腳立即變?yōu)榈碗娖?,此時(shí)單片機(jī)處理該Echo的高電平持續(xù)時(shí)間即式(1)中的Δt。
圖4 HC_SR04模塊工作時(shí)序
2.2.2 溫度檢測(cè)電路
本設(shè)計(jì)中通過DS18B20溫度傳感器[9]對(duì)系統(tǒng)進(jìn)行溫度補(bǔ)償,其不需要進(jìn)行A/D轉(zhuǎn)化,能夠提高農(nóng)田水位測(cè)量的實(shí)時(shí)性。溫度傳感器的電壓范圍為3.0~5.5 V,測(cè)量范圍為-55~125 ℃,滿足農(nóng)田環(huán)境溫度測(cè)量要求。單總線通信接口(DQ)與單片機(jī)的引腳P1.0連接就可以實(shí)現(xiàn)互相通信,大大減小了外界對(duì)系統(tǒng)的干擾。
本次設(shè)計(jì)采用五個(gè)獨(dú)立式按鍵實(shí)現(xiàn)對(duì)農(nóng)田安全水位值進(jìn)行調(diào)整,五個(gè)按鍵分為設(shè)置/退出鍵、設(shè)置加鍵、設(shè)置減鍵、復(fù)位鍵、測(cè)量鍵。按下設(shè)置鍵后,進(jìn)入最高、最低水位閾值進(jìn)行界面設(shè)定,然后通過設(shè)置加減按鍵進(jìn)行調(diào)整;按下復(fù)位鍵,本系統(tǒng)進(jìn)行初始化到空狀態(tài);按下測(cè)量鍵,表示已經(jīng)測(cè)量好了超聲波發(fā)射器到農(nóng)田地面之間的距離,開始實(shí)時(shí)測(cè)量農(nóng)田水位。
數(shù)據(jù)顯示模塊由LCD液晶顯示和聲光報(bào)警兩部分組成。
LCD液晶顯示部分選用了體積小、低功耗的1602液晶屏,其主要原理是用電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部的燈管來形成畫面的,按照顯示字符的行或點(diǎn)陣的行、列來命名;其主要顯示內(nèi)容為設(shè)定的農(nóng)田水位閾值、農(nóng)田水位和當(dāng)前環(huán)境溫度。
聲光報(bào)警部分由蜂鳴器與LED組成,當(dāng)測(cè)量水位不在閾值范圍內(nèi)時(shí),會(huì)聽到報(bào)警聲并可以看到LED亮起[10];否則,無任何情況。
為提高測(cè)距精度和穩(wěn)定性,本系統(tǒng)在設(shè)計(jì)中添加了溫度補(bǔ)償算法,利用數(shù)字溫度傳感器對(duì)超聲波模塊進(jìn)行溫度補(bǔ)償,單片機(jī)通過溫度傳感器實(shí)時(shí)讀取當(dāng)前環(huán)境溫度的數(shù)值,使得測(cè)距數(shù)據(jù)更加精確。超聲波在空氣中傳播時(shí)可以看作是在理想狀態(tài)下的小振幅聲波,對(duì)超聲波傳播速度進(jìn)行溫度補(bǔ)償。
式中:B為氣體的彈性模量;ρ為氣體的密度,當(dāng)溫度為0 ℃時(shí),空氣密度為1.293 kg/m3。
由理想氣體壓縮特性可得:
式中:γ為氣體的比熱容,空氣的比熱容為1.402;P為氣體壓強(qiáng),標(biāo)準(zhǔn)大氣壓為1.013×105Pa。
由理想的氣體狀態(tài)方程可得:
式中:V為氣體體積;m為氣體質(zhì)量;M為氣體的物質(zhì)的量,空氣為28.8×10-3kg/mol;R為摩爾氣體常數(shù),為8.134 kg/mol;T為氣體溫度。
結(jié)合式(2)、(3)可得:
式中,V0為0 ℃下空氣中的聲速,為331.6 m/s。
由此可得,傳播介質(zhì)溫度與超聲波的聲速呈非線性關(guān)系,進(jìn)行溫度補(bǔ)償是必不可少的。利用溫度補(bǔ)償算法即可得到超聲波的波速。
本系統(tǒng)采用運(yùn)行速度極快、存儲(chǔ)量小的C語言編寫,能夠使超聲波測(cè)距更加精確、實(shí)時(shí)性更強(qiáng)。在單片機(jī)內(nèi)部設(shè)置最高/最低水位閾值,當(dāng)測(cè)得的水位高于或低于閾值時(shí),系統(tǒng)進(jìn)行聲光報(bào)警提示,根據(jù)水位的高低報(bào)警頻率也會(huì)有所不同,直到水位恢復(fù)到最佳狀態(tài)時(shí),才退出聲光提示。農(nóng)田水位系統(tǒng)的整體軟件設(shè)計(jì)如圖5所示。
圖5 農(nóng)田水位系統(tǒng)的整體軟件設(shè)計(jì)
以一個(gè)高30 cm的水池作為農(nóng)田,并用高精度測(cè)量工具在水池內(nèi)以5 cm為單位進(jìn)行標(biāo)記,選取標(biāo)準(zhǔn)大氣溫度(20 ℃)和常溫(25 ℃)作為環(huán)境溫度因變量,控制好環(huán)境溫度,使其溫度分別穩(wěn)定在(20±0.5)℃和(25±0.5)℃,測(cè)試對(duì)象分別為未加溫度補(bǔ)償儀器(即市面上常見儀器)和本系統(tǒng)測(cè)距儀器,進(jìn)行測(cè)距對(duì)比實(shí)驗(yàn),并在同一水位進(jìn)行5次測(cè)量取其平均值進(jìn)行記錄。將記錄數(shù)據(jù)繪制成折線圖,如圖6所示。
圖6 測(cè)試數(shù)據(jù)分析
按照平均相對(duì)誤差公式計(jì)算兩種溫度下的平均相對(duì)誤差,數(shù)據(jù)見表1所列。
表1 測(cè)量水位平均相對(duì)誤差
根據(jù)圖6與表1可得,采用本設(shè)計(jì)系統(tǒng)進(jìn)行水位測(cè)量時(shí),相較于未加溫度補(bǔ)償?shù)脑O(shè)備,優(yōu)勢(shì)在于誤差小、穩(wěn)定性高,其在20 ℃環(huán)境下平均相對(duì)誤差從5.45降低到2.71,在25 ℃環(huán)境下其溫度補(bǔ)償水位測(cè)量精度大大優(yōu)于未加溫度補(bǔ)償?shù)乃粶y(cè)量。進(jìn)行多次不同溫度環(huán)境下的測(cè)量后發(fā)現(xiàn),未加溫度補(bǔ)償水位測(cè)量時(shí)波速是在標(biāo)準(zhǔn)大氣溫度下(20 ℃)確定的,所以環(huán)境溫度越偏離20 ℃,誤差就會(huì)越大;而溫度補(bǔ)償水位測(cè)量時(shí)可以發(fā)現(xiàn)其平均相對(duì)誤差會(huì)在0~5%區(qū)間內(nèi),大大保證了數(shù)據(jù)的準(zhǔn)確性。
超聲波發(fā)射器發(fā)出的超聲波呈喇叭狀擴(kuò)散傳播,會(huì)因反射物的不同而產(chǎn)生誤差。主要使用場(chǎng)景為農(nóng)田,其空氣濕度的不同也會(huì)使測(cè)距存在一定的誤差。
本文根據(jù)超聲波測(cè)距原理,結(jié)合STC89C52單片機(jī)設(shè)計(jì)一種基于溫度補(bǔ)償算法的超聲波農(nóng)田水位測(cè)量系統(tǒng),添加溫度監(jiān)測(cè)模塊有效地降低了超聲波水位測(cè)量的誤差,使得超聲波的穩(wěn)定性和精確度得到了很大的提高。