衡 蜓
(晉中信息學院,山西 太谷 030800)
生活中,人工澆灌花木要耗費大量時間,而且土壤濕度不好控制。有時由于長時間外出,家里的花木會因無人澆水而枯死。為了解決上述問題,結合自動控制技術與傳感器技術,設計了一種自動澆花系統。該系統可實時監測花盆里土壤的含水量,必要時進行澆水灌溉。濕度傳感器用來采集土壤濕度,傳送到單片機進行分析處理。單片機根據分析結果驅動繼電器工作,同時液晶顯示器實時顯示土壤濕度。當檢測濕度值小于設定濕度值時,單片機控制繼電器線圈吸合,開啟水泵抽水澆花,土壤含水量增加,當含水量達到預定數值時,繼電器線圈斷開,水泵停止工作。該系統的應用可以有效節約水資源。
本次設計采用的是AT89C51 單片機,利用單片機編程靈活的特性實現噴灌功能。電源、時鐘搭建單片機最小系統,按鍵用于設定噴灌的濕度值,共3 個按鍵,分別是加鍵、減鍵和設置鍵。可以設置濕度報警范圍。外接LCD1602 顯示器用于顯示設置濕度及實時濕度。液晶第一行顯示實際濕度,液晶第二行顯示濕度上限值和濕度下限值。系統整體結構圖見圖1。

圖1 整體結構圖Fig.1 The overall structure
系統選擇的各種元器件都是目前市面上常見的,需要的元器件有單片機,型號為AT89C51;型號為YL-69 的土壤濕度傳感器;AD 轉換器,型號為ADC0832;LCD1602 液晶顯示器、按鍵、發光二極管、蜂鳴器、繼電器及水泵等。具體電路模塊有電源電路,作用是給整個系統供電,晶振和復位電路,屬于單片機的最小系統,由傳感器和AD 轉換器構成的前端檢測電路、按鍵和顯示電路,作用是實現人機交互,報警電路、驅動電路,用來控制水泵的開啟和關斷。
檢測電路由YL-69 土壤濕度傳感器和AD 轉換器ADC0832 組成,YL-69 是一個常用的檢測土壤濕度的濕度傳感器,其原理是采用對濕度敏感的電容器,當土壤的濕度發生改變時,會使濕敏電容存在的環境中的介質發生改變,導致濕敏電容中的電容值大小改變,電容的數值與土壤濕度值成正比關系。根據電容量的大小來判斷土壤的濕度值,由于濕敏電容有很高的靈敏度、響應速度快、滯后量小,所以濕敏電容的特點是小型化和集成化。
AD 轉換器用的是ADC0832型轉換器。因為濕度傳感器輸出的模擬信號,無法將監測到的數據傳輸到主控器中,所以要使用A/D 轉換器將模擬信號轉換為數字信號,再將數據傳輸到主控制器中。ADC0809 轉換器雖然可以對八路信號進行模數轉換,但是其外圍電路較為復雜,價格也相對昂貴,而ADC0832占用量小、可以多個使用且價格實惠。
ADC0832 與單片機之間主要采用了串行通信,主要使用的是CS、CLK、DO、DI 4 個引腳,因為傳感器的引腳DI 和DO可能只有一個引腳有效,所以DI 和DO 的引腳接在單片機的同一個引腳,到時候任何一個引腳有效都能達到效果,也節約了單片機的接口數量。
按鍵是比較常用的人機交互操作,實際是一個非自鎖的輕觸開關,按下時觸點會閉合,松開時觸點斷開。單片機通過檢測按鍵的高低電平變化,來判斷按鍵是否按下,通過程序的控制,就可以實現不同功能的選擇與設置。單片機與3個獨立的按鍵K1、K2 和K4 以及3 個電阻形成了一個獨立的鍵盤系統,3 個按鍵依次連接單片機的P3.0 到P3.2 引腳。在手動模式中,K1和K2分別作為減少和增加鍵,可以對設定的濕度值進行修改,而K3為設置鍵。
該設計選用的是LCD1602 液晶顯示器,顯示的內容為單片機監測到的數據和設定的閾值,將LCD1602的D0-D7引腳分別接入單片機的P0.0-P0.7 引腳,為了讓顯示器正常運行,在每個引腳處接入一個上拉電阻;VDD 和VSS 分別接電源和地;VEE連接滑動變阻器,控制液晶顯示器的背光亮度;RS和E分別連接單片機P2.6和P2.7引腳。
報警電路由蜂鳴器和發光二極管構成,實現聲光報警。聲音報警15次后停止,發光二極管一直閃爍報警。當濕度低于設置下限時,系統會自動發出警報,系統采用有源蜂鳴器來實現該功能。有源蜂鳴器的理想工作信號是直流電,因為其內置振蕩電路,就可以將恒定的直流電變成一定頻率的脈沖信號,從而來使鉬片振動。操作簡單,使用靈活,適合本系統的開發。由于單片機的輸出能力較弱,無法滿足驅動蜂鳴器的要求,所以需要放大單片機的輸出信號。
三極管是典型的放大電路設計元件,其可以通過內部的PN 結原理完成小電流驅動大電流效果,目前三極管根據其內部結構被分為NPN 與PNP 2 種,系統使用NPN 型三極管進行設計,當NPN 型三極管的基極流過一定的電流時,此時其內部的PN 結耗盡區減小,集電極與發射極導通,把NPN 三極管的發射極接地,集電極接電源輸入端,基極流過一定電流時,三極管開始導通,電源通過三極管流向地,實現小電流驅動大電流功能,利用此特點進行蜂鳴器的驅動電路設計。當三極管導通時,蜂鳴器電路接通,蜂鳴器工作,當三極管截止時,蜂鳴器電路斷開,蜂鳴器不工作。
繼電器常被用在輸出驅動電路中,可以看做是弱電控制強電工作的一類“自動開關”。單片機引腳P1.6 通過輸出高低電平來控制驅動電路是否接通,控制繼電器的通斷,進而控制水泵電路的接通或關斷,同時利用發光二極管顯示輸出狀態。驅動電路由電阻和三極管組成。三極管和單片機的P1.6 引腳相連。當引腳被置成高電平的時候,繼電器工作。繼電器相當于一種開關元件,通過某些特定的物理量來開通或關斷電路。在本設計中,當濕度低于設置值時,P1.6 引腳輸出高電平,三極管導通,繼電器線圈得電,接通電源,開啟水泵澆水。當濕度達到設置值時,P1.6 引腳輸出低電平,三極管截止,繼電器線圈斷電,關閉水泵。
系統軟件設計采用模塊化編程,整個系統包括6個模塊,分別是主程序模塊,土壤濕度檢測程序模塊,模數轉換程序模塊,按鍵掃描子程序模塊,液晶顯示器工作模塊及蜂鳴器報警程序模塊。
該智能控制澆花系統的軟件設計以單片機AT89C51 為設計中心,開始整個系統會初始化,系統啟動后最先啟動的是YL-69 土壤濕度傳感器,對待測土壤中的含水量進行檢測分析,并將檢測收集到的數據轉變為2 個電壓模擬信號隨之輸出。這時AT89C51 單片機動作并啟動A/D 轉換模塊對所采集到的這2個電壓模擬信號進行采集分析并快速響應轉換為與之對應的數字信號,數據會被送入到單片機,使智能控制澆花系統能夠獲得實時檢測到的土壤濕度數據,并將獲得的數字信號傳輸至單片機,能夠將這次循環所檢測到的土壤濕度信息數據顯示于顯示屏LCD1602。LCD1602 液晶屏顯示時首先顯示屏系統初始化,并在顯示屏上確定顯示的位置,判斷顯示屏能否顯示檢測出的數據。如果能夠顯示,則程序結束,不能則需要寫入字符來顯示數據,并指向下一個寫入數據。主程序模塊是水污染檢測系統軟件部分主體核心,單片機能夠將模數轉換芯片所輸出的數值跟設置的閾值相比較,同時判斷濕度值是不是在設定值范圍內,如果高于設定濕度值,繼電器線圈斷電,關閉水泵停止灌溉,如低于設定濕度值,繼電器線圈接通,開啟水泵灌溉,返回到濕度采樣,再次判斷濕度值,直到達到設定濕度值,程序結束。主程序流程見圖2。
本設計中的所有硬件和軟件都是在PROTEUS 軟件中仿真實現的,仿真時,利用滑動變阻器模擬濕度傳感器,使得LCD 顯示相應的數值。再通過按鍵模塊輸入相應的濕度上下限,當濕度低于設定值時,單片機控制蜂鳴器進行報警,同時控制繼電器線圈吸合,打開水泵進行澆水。當濕度達到設定值時,單片機控制繼電器線圈斷開,關閉水泵停止澆水。