王政
摘 要: 智能澆花系統是一套基于微處理器的智能控制裝置。根據不同盆栽植物對土壤環境的不同需求,通過智能檢測土壤溫度及濕度,實時調整控制盆栽植物的環境參數,滿足植物生長的最佳環境,達到無人值守的盆栽花卉植物的智能養殖目的。
關鍵詞: 單片機;智能花卉養殖;溫度控制;濕度控制
1 前言
隨著現代社會時代的發展,人們對綠色植物的喜愛和種植越來越多,越來越多的人選擇在家里或者辦公室里種植一些花卉植物。但是在生活中人們總是會有無暇顧及的時候,這時候種植的盆栽就會因各種原因而枯萎。因此,我想通過設計一種集盆花土壤濕度檢測,自動澆水以及蓄水箱自動供水于一體的盆花自動澆水系統。讓盆花在人們無暇照顧時也能得到及時的澆灌。
智能花卉養殖控制系統以不同花卉實際栽培經驗的專家數據庫為基準,結合不同花卉的栽培要求和氣候需求。通過對花卉生長的主要環境參數——溫度、濕度、土壤濕度等的綜合調控,為花卉生長發育提供最佳的生態環境條件。
微控制器對環境因子的各個傳感器輸出信號進行采集,并與基準數據作比較和分析。然后,結合閉環反饋控制原理控制外圍環境參數調節設備來調整外界環境參數,最終使得外界環境處于設定的范圍內。本系統結合專家數據庫系統,通過修改專家庫系統中的相應數據,保證本系統可以適合不同花卉品種的栽培要求。
系統工作中,經過溫度、濕度及傳感器把被測對象的溫度、濕度轉換成電壓信號后送入單片機中,與給定的所要控制的溫度、濕度值進行比較,根據單片機 AT89S52中設置的參數,輸出相應溫度、濕度值對應的被控對象電機和電磁閥的值,帶動動力系統作相應的運動,不斷減少與單片機中設置值的差值,溫度過高時,單片機控制直流電機驅動電風扇,進行自然散熱。當土壤濕度過低時,單片機通過控制電磁閥使其打開進行澆水,澆水后濕度適中時關閉電磁閥。
為了對不同植物的生長條件進行設定所以本系統采用了按鍵的方式來對參數值進行設定,共4個按鍵,兩個數值加按鍵,兩個數值減按鍵。分別對應的是溫度數值的設定和土壤濕度值的設定。
2 控制系統硬件設計
2.1溫度檢測模塊
溫度檢測采用通用的DS18B20溫度傳感器,可通過簡單的編程實現9~12位的數字量讀數方式。可以分別在93.75ms和750m內完成9位和12的數字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數據總線,總線本身也可以向DS18B20供電,而無需額外電源。因而使用DS18B20可使系統結構更趨簡單,可靠性更高。
2.2濕度檢測模塊
土壤濕度是采用市面上運用廣泛的Arduino土壤濕度傳感器。當濕度傳感器懸空沒有插入土壤時,通過LCD顯示器,顯示0ff狀態,當傳感器正常工作時,對土壤濕度檢測,將濕度值傳入單片機,如果濕度值小于設定值,那么啟動水泵對植物進行澆水,當濕度值等于設定值的時候停止澆水。
2.3顯示模塊
顯示模塊主要采用LCD顯示。LCD顯示需要設定的溫度、濕度和土壤濕度傳感器的工作狀態,讓使用人員更加直觀的看到植物的生長條件。
3 系統軟件設計
3.1 主程序設計
當單片機上電后,系統首先對LCD顯示模塊,溫度傳感器和濕度傳感器進行初始化設置。然后對用來設置標準值的按鍵進行掃描檢測,如果檢測到有按鍵按下,那么就將按鍵相應對應的標準值進行加減操作。操作完成后執行下一步對植物溫度及土壤濕度的檢測。當檢測到空氣中的溫度大于了設定值值上限或者小于設定值下限,那么就執行相應的操作。如果植物的土壤濕度小于了設定值下限或者大于了設定值上限那么就執行相應的控制操作,然后再返回對鍵盤進行掃描。系統主程序流程如圖1所示。
3.2溫度檢測程序設計
植物生長環境溫度經過溫度傳感器后,將采集到的數據傳送給單片機,單片機讀取了溫度數據后與事先設定的溫度值的上下限進行比較,如果是溫度值大于了設定的上限值時,打開風扇對植物進行降溫操作;如果是溫度值小于設定的下限值時,起動圍繞在花盆周圍的加熱電阻絲進行加熱,從而提高植物生長的環境溫度。部分程序代碼如下:
uint16 R_Temp()
{ uint16 tem;
uint8 tl,th;
Start_18B20();
W_18B20(0xCC); //跳過讀序號列號的操作
W_18B20(0x44); //啟動溫度轉換
delay(20);
Start_18B20();
W_18B20(0xCC);
W_18B20(0xBE); //讀取溫度寄存器
tl=R_18B20(); //讀取低位
th=R_18B20(); //讀取高位
tem=th <<8;
tem= tem+tl;
return(tem);
3.3濕度檢測程序設計
植物生長環境濕度經過濕度傳感器后,將采集到的數據傳送給單片機,單片機讀取了溫度數據后與事先設定的濕度范圍進行比較,如果是土壤濕度值大于了設定的上限值時,打開風扇對植物進行降溫操作;如果是濕度值小于設定的下限值時,啟用噴淋系統增加土壤濕度,從而改善植物的生長環境。
部分程序代碼如下:
DAT1 = (dat*5.0)/1024 ;
dat2 = DAT1*10;
if(dat2>48) //沒擦下土顯示錯誤
{ LcdShowStr(3,1,buf);
shuibeng = 0; }
else
{ dat2 = (dat2-6)*3;
dat2 = 120 - dat2; //電壓 越小濕度高
if(dat2<=shidu) //濕度控制
shuibeng = 1; }
else
{ shuibeng = 0;
AD_3_buf[0] = dat2/100%10+'0';
AD_3_buf[1] = dat2/10%10+'0';
AD_3_buf[2] = dat2%10+'0';
LcdAreaClear(3,1,6);
LcdShowStr(3,1,AD_3_buf);
}
}
4 結論
本系統在澆水前都會對植物的土壤濕度進行檢測,只有到達了植物不適的生長土壤濕度才會對植物進行澆水。為了使該系統滿足于不同的植物不同的植物。該系統采用了四個外部按鍵可以對不同植物的不同生長條件進行修改。該系統為了能夠清晰的看到用戶的設定值,以防止設定不準確而導致植物枯萎。顯示裝置主要用來顯示設定值和當前的傳感器的測量值。
參考文獻
[1]張海龍. 基于DS18B20的單片機測溫系統[J].電子制作,2016(21).
[2]馮媛碩. 基于單片機的溫濕度檢測控制系統設計[J]. 山東理工大學學報(自然科學版),2014(1).
[3]劉川. 智能自動澆花系統的控制設計研究 [J]. 科技視界,2015(18).
[4] 楊杜鵑.基于單片機的自動澆花系統設計[J].科技致富向導. 2014(12).