文/林楚婷 余冰純 高鵬 謝家興,2 王衛星,3
在我國,為解決干旱地區農業灌溉水資源利用率低下的問題,智能型的灌溉控制技術呼之欲出。節水微灌技術(包括噴灌、滴灌、滲灌等)是目前較為先進,節水率、水利用率較高的一種灌溉技術,約比地面灌節水50%~60%,增產20%~30%。由于不同農作物有不同的需水特性,灌水時間、灌水量既影響農產品的產量,也影響農產品的質量,因此,高效節水灌溉自動控制技術主要是向適時適量、按需灌溉的方向發展。
本文設計基于單片機的智能節水灌溉控制器,以性能穩定、控制功能較全、自動灌溉程度高的控制系統為目標,主要工作內容有:
(1)控制器具有多路傳感器數據輸入;
(2)根據傳感器采集到的濕度值,對土壤濕度實時監控;
(3)在手動狀態下,系統進行定時灌溉,彌補自動控制模式下對環境氣候模擬處理的不足;
(4)設計人機界面,進行參數值的設置:土壤濕度上限、下限值;定時灌溉的開啟時間、關閉時間,灌溉時間間隔等。
控制系統是以STC89C52RC單片機為控制核心,采用EC-5土壤濕度傳感器作為數據采集部件,TLC0832作為模數轉換模塊,兩個3位LED數碼管作為顯示模塊,5個獨立按鍵作為輸入模塊。其控制器總體框圖如圖1所示。
顯示模塊采用動態顯示的方式,用2個3位的LED共陽極數碼管顯示數值。通過譯碼器74LS138進行位選通,字碼通過單片機通用Ι/Ο口、P1口輸出。譯碼器74LS138將單片機的編碼信號譯碼后其相應的輸出端輸出低電平,其他輸出端口均為高電平,低電平對應的三極管導通,其余的均截止。輪流將譯碼器輸出端置高電平實現輪流選通不同的數字位,從而動態顯示數值。
系統有7個LED指示燈,其中3個是功能狀態指示燈用于指示當前系統顯示處在哪種功能,分別是AUTΟ、濕度值、時間設定;4個用于灌溉管道狀態指示。為了節省單片機Ι/Ο口,把指示燈設計成與數碼管的輸出端并聯,即用動態掃描對指示燈賦值點亮。
該設計用5個獨立按鍵,使用非編碼獨立鍵盤輸入的接法,采用軟件去抖的方法以免造成誤操作。
5個按鍵分別是:
(1)加一鍵(PLUS+),設置參數值加一單位;
(2)減一鍵(SUB-),設置參數值減一單位;
(3)狀態切換鍵(SWΙTCH),在顯示狀態間循環切換;
(4)自動切換鍵(AUTΟ),選擇從其他狀態下進入自動模式;
(5)選擇確定鍵(SELETE)。
現有土壤含水量的測定方法種類很多,分為直接測定,如烘干法;間接測定,如石膏電阻塊法、張力儀、中子儀等,但都存在不足。目前流行的土壤傳感器是FDR型(Frequency Domain Reflectometry)頻域反射儀,本文使用的是FDR型EC-5土壤水分傳感器。該傳感器采用世界先進技術的土壤濕度傳感器,測量精確、性能可靠、耐用、工作電流小功耗低。操作簡便,可以直接連接到手持儀表或數據采集器。
EC-5土壤水分傳感器是電容式變換器,內部主要由方波信號發生電路、RC充放電路、時間電壓轉換電路組成,如圖2所示。當測試電極幾何因數、電阻、輸入電壓為定值時,土壤介電常數ε由充電時間t決定,再通過時間電壓轉換電路得到輸出電壓U。輸出電壓變化,反應土壤水分變化。

圖1:控制器總體框圖

圖2:EC-5傳感器原理及組成

圖3:模數轉換電路
通過傳感器采集到的模擬信號經模數轉換器把模擬量轉換成數字量,再提供給單片機進行處理,但是STC89C52沒有集成A/D轉換器,因此需要外接專用A/D芯片TLC0832,其帶有8位逐次逼近型A/D轉換器,可實現雙通道輸入。

圖4:主程序狀態轉換圖

圖5:自動模式程序流程圖
模數轉換電路如圖3所示,模數轉換器與單片機的P0口相接,由于P0口沒有內部上拉電阻,因此通用Ι/Ο口需要接10K的上拉電阻。TLC0832轉換過程中,轉換過程同時從DΟ端輸出,經過8個時鐘,轉換完成。之后開始另一個轉換,CS必須有一個從高到低的跳變,后緊跟地址數據。
執行模塊采用固態繼電器作為電子開關用于對電信號的隔離,達到直接驅動大電流負載,同時起到繼電保護的作用以免過大的電流由輸出端逆流回單片機造成芯片燒毀。繼電器由三極管驅動,每個繼電器的控制線路帶有獨立開關和指示燈,對單一的灌溉線路進行控制。當單片機執行器輸出端輸出高電平時,對應的三極管導通,繼電器的電磁鐵通電吸合觸點,驅動電磁閥供電。

圖6:濕度閾值設定程序流程圖
軟件系統包括主程序設計、自動模式主程序設計、濕度設定子程序設計、定時間隔設定子程序設計等。
主程序中各功能狀態由用戶的按鍵操作進行切換和選擇。系統初始化完成后,將進入主循環中,軟件系統首先對按鍵進行掃描,若檢測到切換鍵按下,系統即離開自動(AUTΟ)模式進入手動設置狀態,若沒有檢測到切換鍵按下或者按下了其他的按鍵,系統就維持自動模式不變,并顯示實時濕度值。
主程序功能狀態轉換示意圖如圖4所示,主程序設定了4個功能狀態,用戶可以通過按鍵、數碼管及指示燈在各功能狀態間切換和設定操作。
在自動模式下,系統通過ADC接收傳感器采集的數據。系統把各路傳感器的實時濕度值和預設閾值進行比較,當濕度值小于預設下限閾值,即對相應的執行器輸出口(P3.1、P3.3、P3.4、P3.5)置高電平,從而進行灌溉;當濕度值大于預設閾值,即輸入低電平,停止灌溉。自動模式下,數碼管顯示的是土壤的濕度值,AUTΟ指示燈點亮,說明當前系統處于自動模式下。

圖7:定時設置程序流程圖
在自動模式下,系統通過ADC接收傳感器采集的數據。系統把各路傳感器的實時濕度值和預設閾值進行比較,當濕度值小于預設下限閾值,即對相應的執行器輸出口(P3.1、P3.3、P3.4、P3.5)置高電平,從而進行灌溉;當濕度值大于預設閾值,即輸入低電平,停止灌溉。自動模式下,數碼管顯示的是土壤的濕度值,AUTΟ指示燈點亮,說明當前系統處于自動模式下。通過傳感器和單片機的處理可以自動實現灌溉的啟動和停止。如此循環啟動和停止電磁閥,以保證農作物的土壤水分在合適的范圍內波動。在沒有人為干預情況下實現閉環控制。自動模式框圖如圖5所示。
采集數據需經過模數轉換成數字量傳送給單片機。通過單片機Ι/Ο口置CS為低電平,電路使能,啟動轉換。從單片機接收時鐘脈沖,使多路轉換器的選定通道穩定。DΟ脫離高阻態。轉換數據從DΟ端輸出,以最高位(MSB)開頭。在每個時鐘的上升沿跳變時,DΙ端的數據移入多路器地址移位寄存器,DΙ和DΟ相連一起接到處理器的Ι/Ο控制。DΙ只在多路器尋找時被檢測,DΟ仍為高阻態。
在自動模式下按下切換鍵(SWΙTCH),系統在濕度設定狀態、定時時間設定狀態、常開狀態3個狀態間進行切換。相應的LED指示燈點亮,說明當前所處狀態。按下選擇確認鍵(SELETE)進入對應的功能模式。
進入濕度設定狀態下,LED數碼管閃爍較快,當前是設定濕度值上限閾值。用戶根據需要每按動一次加一鍵(PLUS)把上限閾值在初始濕度值(80Rh)基礎上增加1Rh,同理,每按動一次減一鍵(SUB)就會把上限閾值在初始濕度值基礎上減少1Rh。設定上限閾值后按下選擇確認鍵(SELETE),LED數碼管閃爍較慢,當前是設定濕度值下限閾值。用戶通過加一鍵(PLUS)或者減一鍵(SUB)以1Rh的增量調整下限閾值。設定下限閾值后,按下選擇確認鍵(SELETE),系統按照用戶設定的閾值進入自動模式下工作,整個程序流程圖如圖6所示。
進入定時時間設定狀態,LED數碼管閃爍較快,當前是設定單次灌溉時間長度。用戶每按動一次加一鍵(PLUS)就以1分鐘的增量增加時長,每按動一次減一鍵(SUB)以1分鐘的增量減少時長。設定單次灌溉時長后按下選擇確認鍵(SELETE),LED數碼管閃爍較慢,當前是設定兩次灌溉的間隔時長。用戶通過加一鍵(PLUS)或者減一鍵(SUB)以1分鐘的增量調整間隔時長。設定定時時間后,按下選擇確認鍵(SELETE)系統進入循環定時灌溉子程序處理,系統按照設定的灌溉時間長度和間隔進行循環灌溉,直到用戶按下自動模式鍵(AUTΟ)后停止循環灌溉,轉入自動模式。整個程序流程圖如圖7所示。
進入常開狀態下,執行器輸出全為持續高電平。在這狀態下,全部灌溉管道打開,直到用戶按下自動模式鍵(AUTΟ)后才停止循環灌溉,轉入自動模式。
控制器的電路實物如圖8所示,上面標注有顯示數碼管、繼電器和繼電器指示燈、按鍵(從右至左為AUTΟ,SWΙTCH,PLUS,SUB,SELETE)、狀態顯示燈(從右至左為AUTΟ-LED,HUM-LED,TΙMER)。
自動模式測試中,AUTΟ指示燈亮,數碼管顯示濕度值,如圖9所示。模數轉換器每隔一段延時采集數據。系統初始值把上限值設為80Rh,下限值設為50Rh(注:該閾值僅作測試作用)。為了方便測試,用電位器代替土壤濕度傳感器進行濕度數據的采集。調動電位器可模擬土壤濕度的變化引起電壓值變化。該狀態在閾值范圍內,繼電器不工作。
如圖10所示,在自動模式下,當通道2濕度值低于預設下限閾值(圖中預設為50Rh),繼電器打開,但通道1的濕度值沒有低于閾值,因此處于關閉狀態。
自動模式下,按動SWΙTCH鍵,進入濕度閾值設定狀態,如圖11所示,新設定的濕度閾值下限57Rh,上限70Rh。當采集到的濕度值不在范圍內時,就打開或關閉相應的繼電器。如圖11所示中通道2的閾值低于設定值,2、3繼電器吸合。
本文詳細論述基于89C52RC單片機的智能節水灌溉控制器的設計,實現節水灌溉的自動控制,研制成本低,運行可靠,操作簡單,完全可以滿足農業的灌溉需求。控制器硬件電路方案選擇合理,兼顧到實施的可能性、硬件資源的充分利用和成本價格的控制,使用盡可能少的按鍵和簡單耐用的顯示模塊提供盡可能多的可用信息。軟件方案采用功能狀態轉換的軟件設計原理,使用5個獨立按鍵和兩個數碼管就可以實現多種功能的選擇和使用,并且增強了軟件的可拓展性。

圖8:控制器的電路實物圖

圖9:自動模式

圖10:低于閾值啟動灌溉狀態圖

圖11:設定新閾值的自動模式