曹鵬飛,肖志飛,文建博,郭青盛,秦立靜,劉歡
(甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,甘肅蘭州 730070)
當(dāng)今,水資源稀缺問(wèn)題越來(lái)越嚴(yán)重,尤其是淡水資源。水資源稀缺問(wèn)題不僅僅是資源方面的問(wèn)題,更關(guān)系到社會(huì)可持續(xù)發(fā)展和國(guó)家經(jīng)濟(jì)發(fā)展,甚至可以說(shuō)是影響國(guó)家穩(wěn)定繁榮發(fā)展的重大戰(zhàn)略問(wèn)題[1]。我國(guó)西北地區(qū)水資源嚴(yán)重缺乏,即使是南水北調(diào)工程也只是杯水車薪,因此需要發(fā)展節(jié)水灌溉技術(shù)。通過(guò)毛細(xì)管出口,水或者水和肥料的混合物被送到作物根區(qū)的土壤中進(jìn)行吸收[2]。雖然大多數(shù)農(nóng)村在農(nóng)田灌溉方面仍采用滴灌技術(shù),但是我們國(guó)家在農(nóng)業(yè)灌溉方面正做著更全面的改變。
滴灌是用專用的發(fā)射器、滴管或滴灌帶將水緩慢均勻滴入作物根部進(jìn)而使土壤變濕潤(rùn)的一種先進(jìn)的灌溉方式。節(jié)水灌溉是一種較為科學(xué)且先進(jìn)的灌溉方式。采用較為先進(jìn)的科學(xué)器件和控制方式將水適量地運(yùn)送到農(nóng)作物的根部,使農(nóng)作物的土壤濕度一直處于適宜的區(qū)間,使水資源的利用率得到了大幅提升[3]。我國(guó)節(jié)水灌溉技術(shù)較為落后,是我國(guó)現(xiàn)代化農(nóng)業(yè)的不足之一,滴灌技術(shù)對(duì)灌溉系統(tǒng)管理水平有較高的要求,確保均勻灌溉,才能使其潛力得到最大限度地發(fā)掘[4]。文中設(shè)計(jì)的是一種基于STM32的農(nóng)田節(jié)水灌溉系統(tǒng)。
灌溉技術(shù)可以追溯到秦漢以前,李冰主持修建的都江堰是最早的農(nóng)田灌溉系統(tǒng),在同一時(shí)期節(jié)水灌溉開(kāi)始發(fā)展起來(lái)。1997 年全國(guó)噴灌面積已達(dá)19.33 萬(wàn)hm2。從二十世紀(jì)七十年代我國(guó)自國(guó)外引進(jìn)3 套當(dāng)時(shí)較為先進(jìn)的灌溉設(shè)備開(kāi)始,至今我國(guó)的灌溉技術(shù)已經(jīng)取得了巨大的成就。吸收和借鑒國(guó)外先進(jìn)技術(shù)的同時(shí),結(jié)合中國(guó)地理環(huán)境,研制出了我國(guó)自己的灌溉設(shè)備,現(xiàn)在全國(guó)幾乎所有的地方都可以看到節(jié)水灌溉設(shè)備的應(yīng)用[5]。
國(guó)外節(jié)水灌溉技術(shù)水平遠(yuǎn)遠(yuǎn)高于國(guó)內(nèi),尤其是發(fā)達(dá)國(guó)家。許多發(fā)達(dá)國(guó)家已經(jīng)用計(jì)算機(jī)進(jìn)行控制,通過(guò)濕度傳感器的檢測(cè),反饋給計(jì)算機(jī),計(jì)算機(jī)再控制灌溉系統(tǒng)進(jìn)行適量的灌溉[6]。在溫室、大棚等較小的環(huán)境下,計(jì)算機(jī)控制的灌溉系統(tǒng)使用較為廣泛,通常用一個(gè)計(jì)算機(jī)控制幾個(gè)或十幾個(gè)溫室里的灌溉系統(tǒng),極大地減少了水資源的浪費(fèi),而且節(jié)省了人力資源,提高了控制的精準(zhǔn)度[7]。美國(guó)特別強(qiáng)調(diào)微灌溉水利系統(tǒng)的整合、可持續(xù)性和敏感性,將新產(chǎn)品、微灌系統(tǒng)過(guò)濾器和液壓過(guò)濾器與計(jì)算機(jī)模擬技術(shù)相結(jié)合[8]。
傳統(tǒng)的灌溉方法不僅浪費(fèi)了本就稀缺的水資源,而且不能完美地把控澆水時(shí)間。節(jié)水是時(shí)代的主題,節(jié)水灌溉在當(dāng)今具有很大的發(fā)展?jié)摿?,?jié)約水資源的同時(shí)又發(fā)展了農(nóng)業(yè)[9]。
該系統(tǒng)是由電源、STM32 單片機(jī)、溫濕度傳感器、串行接口通信模塊、PC 端和各種顯示設(shè)備等組成。用戶通過(guò)上位機(jī)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行檢測(cè)并且進(jìn)行實(shí)時(shí)有效的遠(yuǎn)程控制,可以實(shí)現(xiàn)對(duì)土壤信息的采集,將數(shù)據(jù)傳輸至STM32 單片機(jī)并在PC和手機(jī)應(yīng)用端顯示,最后對(duì)數(shù)據(jù)進(jìn)行處理和存儲(chǔ)[10]。
該系統(tǒng)主要是通過(guò)及時(shí)收集濕度,通過(guò)科學(xué)的農(nóng)業(yè)知識(shí)來(lái)判斷灌溉時(shí)機(jī)和灌溉時(shí)間。通過(guò)濕度檢測(cè)模塊收集濕度并傳送給主控制模板,通過(guò)主控制模板的主程序來(lái)判斷是否灌溉和灌溉量??茖W(xué)灌溉可以做到局部的精準(zhǔn)灌溉,具有較高的科學(xué)性。這種灌溉方式不僅可以為土壤補(bǔ)充水分,滿足植物生長(zhǎng)的大部分濕度和溫度需求,還可以把植物所需的肥料溶于水中,結(jié)合現(xiàn)代農(nóng)業(yè)技術(shù)和互聯(lián)網(wǎng)知識(shí)實(shí)現(xiàn)一次性智能灌溉[11]。該系統(tǒng)也可以改善土壤的鹽堿化,當(dāng)土壤出現(xiàn)鹽堿化,可以利用灌溉沖洗掉土壤中的可溶性鹽分??傇O(shè)計(jì)框圖如圖1 所示。
圖1 總設(shè)計(jì)框圖
該系統(tǒng)使用Cortex-M3 內(nèi)核中的32 位CPU 處理器,為MCU 提供低成本平臺(tái),降低能源成本,其具有高質(zhì)量的計(jì)算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)。ARM Cortex-M3 是一個(gè)32 位的RISC 處理器,具有更高的代碼效率和ARM 內(nèi)核性能。改進(jìn)后的STM32F103系列有一個(gè)內(nèi)置的ARM 核心,可與所有的硬件和軟件兼容[12]。
數(shù)字溫濕度感知模塊可用溫濕度傳感器DHT11,DHT11 調(diào)節(jié)數(shù)字信號(hào)輸出,并傳送給溫濕度復(fù)合傳感器,確保了數(shù)據(jù)的可靠性和保真性,為長(zhǎng)期測(cè)量工作提供了保障。DHT11 采用了一個(gè)電阻式感濕元件和一個(gè)NTC 測(cè)溫元件,同時(shí)還連接著一個(gè)8位高性能單片機(jī)[13]。每個(gè)DHT11 傳感器的校準(zhǔn)都在極其嚴(yán)格的校準(zhǔn)環(huán)境下進(jìn)行。在傳感器的存儲(chǔ)器中,有探測(cè)調(diào)整系數(shù)的程序,傳感器在檢查信號(hào)的過(guò)程中將這些調(diào)整系數(shù)傳送給電腦并顯示。利用單線串聯(lián)接口,使系統(tǒng)集成既快又簡(jiǎn)練。相比于同類產(chǎn)品,其體積很小,功耗超低,這使得它能勝任更復(fù)雜的工作環(huán)境,4 針單排引腳封裝讓其連接更方便。
Usart 是異步收發(fā)傳輸器,能非??焖俚嘏c其他設(shè)備進(jìn)行連接,是全雙工通信。其是一種設(shè)備間非常常用的串行通信方式,因?yàn)樗?jiǎn)單便捷,因此大部分電子設(shè)備都支持該通信方式,其通信協(xié)議可分層為協(xié)議層和物理層。因?yàn)榇谕ㄐ艆f(xié)議的簡(jiǎn)單、便捷,所以如今大多數(shù)的產(chǎn)品中都支持串口通信,通過(guò)串口通信可以實(shí)現(xiàn)與單片機(jī)的通信。硬件圖如圖2所示。
圖2 硬件圖
根據(jù)硬件電路設(shè)計(jì)的思路,系統(tǒng)軟件程序采用模塊化編程,利用Keil uVision5 開(kāi)發(fā)環(huán)境,使用C 語(yǔ)言編寫(xiě)程序。系統(tǒng)主程序模塊分為數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊、數(shù)據(jù)顯示模塊和數(shù)據(jù)存儲(chǔ)模塊。
首先初始化,實(shí)時(shí)掃描子程序傳感器,通過(guò)處理單板數(shù)據(jù)獲得環(huán)境信息。調(diào)用數(shù)據(jù)采集程序,將采集的空氣溫濕度值和土壤溫濕度值作為當(dāng)前的有效數(shù)據(jù)暫時(shí)保存在單片機(jī)內(nèi)部,并調(diào)用數(shù)據(jù)分析子程序,對(duì)保存的所有暫存的濕度和溫度數(shù)據(jù)進(jìn)行平均化處理,保存平均值,將該溫濕度平均值作為衡量和控制灌溉與否的主要參數(shù),再與設(shè)置的溫濕度限值作比較,如果符合灌溉要求,則進(jìn)行灌溉[14]。
1)主程序首先完成初始化;
2)各模塊同時(shí)進(jìn)入啟動(dòng)階段,完成模塊上的初始值標(biāo)識(shí);
3)使用DHT11 傳送土壤濕度感知信號(hào);
4)再一次記錄土壤濕度傳感器獲得的數(shù)值,如果濕度小于22%RH,溫度高于30 ℃,電磁閥就會(huì)啟動(dòng),噴水并提高濕度。如果濕度提高到50%RH,電磁閥就會(huì)關(guān)閉,溫度也會(huì)降低。另外,在濕度下降的過(guò)程中,主要程序?qū)⑼ㄟ^(guò)DMA 方式繼續(xù)讀取土壤濕度感知信號(hào)。系統(tǒng)程序流程如圖3 所示[15]。
圖3 系統(tǒng)程序流程圖
5)最后在PC 端和手機(jī)APP 上顯示溫濕度、電磁閥是否打開(kāi)以及灌溉時(shí)長(zhǎng)??刂拼翱谌鐖D4 所示。
圖4 控制窗口
由于戶外采集環(huán)境復(fù)雜,影響因素很多,為了避免噪聲干擾,采用了連續(xù)取值取平均數(shù)的方法來(lái)保證采集數(shù)據(jù)的可靠性。工作原理是連續(xù)采樣N次數(shù)據(jù),在這些數(shù)據(jù)中忽略最大值和最小值,計(jì)算剩余的N-2 個(gè)數(shù)據(jù)的平均值,把該平均值作為最后判斷的參數(shù)。具體子程序思想是在C 語(yǔ)言中創(chuàng)將一個(gè)大小為N的一維數(shù)組,N通常是10~13,抽樣數(shù)據(jù)按順序排列成數(shù)組,當(dāng)N個(gè)數(shù)據(jù)被收集時(shí),會(huì)將顯示的最大值和最小值去掉,其余的求平均值[16]。
是否需要灌溉農(nóng)作物,由多個(gè)環(huán)境因素來(lái)決定。該系統(tǒng)將空氣溫濕度和土壤溫濕度的綜合因素作為是否需要灌溉的條件,將傳感器反饋回來(lái)的土壤和空氣溫濕度作為灌溉的條件,再將反饋回來(lái)的溫濕度值求取平均值,將最后取得的平均值作為影響灌溉的關(guān)鍵參數(shù)[17-18]。不同季節(jié)權(quán)重取值也不同,可對(duì)權(quán)重進(jìn)行靈活設(shè)置。
文中提出了一種基于STM32的節(jié)水灌溉系統(tǒng)。為了更精準(zhǔn)地控制灌溉系統(tǒng),用算法的方式對(duì)空氣和土壤溫濕度進(jìn)行控制。該灌溉系統(tǒng)具有非??旖莸目刂品绞?,可以通過(guò)計(jì)算機(jī)操作,快捷簡(jiǎn)單,指示清楚。并且由于使用的是STM32 單片機(jī),該單片機(jī)強(qiáng)大的性能使該系統(tǒng)可以通過(guò)計(jì)算機(jī)模塊進(jìn)行遠(yuǎn)程操控。在農(nóng)業(yè)生產(chǎn)過(guò)程中可以科學(xué)、準(zhǔn)確、便捷地為農(nóng)作物提供灌溉,還可以通過(guò)系統(tǒng)設(shè)置來(lái)滿足不同農(nóng)作物對(duì)土壤濕度和用水量的需求。