我們每個人都喜歡家里有一點綠色植物,不是嗎?植物需要非常低的維護,并且可以在沒有監督的情況下放置數天,但是由于土壤中缺乏水分,我們長達一周或 2 周的長途旅行可能對植物的健康有害。在這種情況下,由于缺乏適當的澆水,植物可能會枯萎或死亡。為了解決這個問題,在這個項目中,我們正在制作一個帶有Arduino Uno的 自動灌溉系統,它可以自動灌溉您的植物并保持它們的健康,即使您出城數周或數月。在這個項目中, 濕度傳感器 將用于為您的植物保持最佳濕度水平。該系統可以實施,既為您 花園或室內植物,以便在您離開時照顧您的綠葉寵物。
自動灌溉系統的工作
這個系統的邏輯非常簡單。在這個系統中,濕度傳感器檢測土壤的濕度水平,當傳感器檢測到低濕度水平時,它會在微控制器的幫助下自動切換水泵并灌溉植物。提供足夠的水后,土壤會保留水分,因此會自動停止泵。
土壤濕度傳感器
土壤濕度傳感器的工作非常容易理解。它有 2 個帶有外露觸點的探針,其作用類似于可變電阻器,其電阻根據土壤中的含水量而變化。該電阻與土壤濕度成反比,這意味著土壤中的水分越高,導電性越好,因此電阻越低。而土壤中較低的水意味著導電性差,并會導致更高的電阻。傳感器根據電阻產生模擬電壓輸出。
該傳感器帶有一個將探頭連接到 Arduino 的電子模塊。該模塊有一個LM393 高精度比較器,可將模擬信號轉換為數字輸出,然后饋送到微控制器。我們已經介紹了深入的Arduino 土壤濕度傳感器教程,其中涵蓋了土壤濕度傳感器模塊的工作以及如何將其與 Arduino 一起使用。如果您想了解有關土壤濕度傳感器的更多信息,可以查看教程。
泵
我們需要一個小泵來灌溉植物,但在花園的情況下,我們需要驅動一個更大的泵,它可以根據花園的大小提供更多的水,而這不能由 Arduino 直接供電。 因此,如果您需要操作更大的泵,則需要驅動器為泵提供足夠的電流,以表明我使用的是 5v 繼電器。您也可以使用交流供電的泵并使用合適的繼電器。工作將與本項目中所示的相同,您只需將連接到繼電器的直流電源輸入替換為交流電源輸入,并且必須使用單獨的直流電源為您的 Arduino 供電。
自動灌溉系統所需的組件
該項目需要的組件很少,連接也很簡單。下面列出了這些組件:
阿杜諾 * 1
濕度傳感器 * 1
5v繼電器模塊*1
6v迷你小水管水泵*1
連接線
5v電池*1
Arduino自動灌溉系統的電路圖
Arduino自動灌溉系統的完整電路圖如下所示:
在本節中,我將借助示意圖解釋所有細節。Arduino UNO是整個項目的大腦。它根據濕度傳感器給出的土壤濕度控制電動泵。
為了給電路供電,我使用的是外接電池。您可以使用任何 9 伏或 12 伏電池。電池連接到 Arduino 的 Vin 和接地引腳,我們也可以通過繼電器將電機連接到該電池。濕度傳感器輸出連接到 Arduino 的模擬引腳。請記住使用 Arduino 的 5 伏引腳為傳感器和繼電器模塊供電。
組裝自動灌溉系統
讓我們從將繼電器連接到 Arduino 板開始。將繼電器模塊的 VCC 連接到 Arduino 的 5v 引腳,并將繼電器的地連接到 Arduino 的地。現在將繼電器信號引腳連接到除引腳 13 之外的任何 Arduino 數字引腳。這里我將其連接到引腳 3,如下圖所示。
下一步是將土壤濕度傳感器與 Arduino 連接起來。將傳感器的 VCC 和 gnd 連接到 Arduino 的 5 伏和接地引腳。傳感器的模擬輸出連接到 Arduino 的任何模擬引腳,這里我將它連接到引腳 A0(根據我們的程序)。
最后,將泵連接到繼電器模塊。繼電器模塊有 3 個連接點,它們是公共的、常閉的和常開的。我們必須將泵正極連接到公共端,并將常開引腳連接到電池正極。您必須根據泵選擇電池。下一步是將泵的接地連接到 Arduino 的接地,最后將小軟管連接到水泵。
現在將電池連接到電路,如果泵開始工作,那么您的電路就可以了。現在讓我們將代碼上傳到 Arduino。
自動灌溉系統代碼解釋
對于這個項目,我們沒有使用任何庫,我們只是使用基本功能進行編程。該代碼非常簡單且易于使用。代碼解釋如下。
我們首先在這里定義所有需要的整數,我使用兩個整數來存儲土壤水分和轉換后的水分百分比。
int 土壤水分值 = 0;
整數百分比=0;
現在,我們定義引腳模式,這里我使用引腳 3 作為輸出,在下一行中,我已經初始化了串行監視器以進行調試。
無效設置(){
pinMode(3,輸出);
序列號。開始(9600);
}
我通過讀取土壤水分開始循環部分。我使用 Arduino 的analogRead 函數讀取土壤濕度并將其存儲在soilMoistureValue 中。該值從 0 到 1023 不等
無效循環(){
土壤水分值=模擬讀取(A0);
在下面的行中,我已經將傳感器值從 0% 轉換為 100%,因為我們在 Arduino 上使用了 map 函數。這意味著如果土壤干燥,則輸出水分百分比為 0%,如果土壤非常潮濕,則水分百分比為 100%。
百分比 = 地圖(土壤水分值,490、1023、0、100);
Serial.println(百分比);
校準我們的濕度傳感器
在地圖函數中, 我們需要分配干值和濕值。為此,我們需要監控這些值。您可以使用以下代碼讀取該值:
無效設置(){
序列號。開始(9600);
}
無效循環(){
int sensorValue = 模擬讀取(A0);
Serial.println(sensorValue);
延遲(1);
將上述代碼上傳到您的 Arduino 并打開串行監視器。然后將土壤濕度傳感器放在干燥的土壤中,或者將傳感器放在空氣中并讀取值。現在將該值代替 490(地圖函數的第二項)。
下一步是將傳感器放置在潮濕的土壤中或將其浸入水中并讀取值并分配該值以代替 1023(地圖功能的第三項)。這些值將正確校準您的傳感器以獲得更好的結果。
轉換值后,我們可以根據土壤水分百分比控制泵。在“如果條件”的幫助下,我寫了第一個條件,如果水分百分比低于 10,那么 Arduino 會將引腳 3 變為低電平并且泵將打開(我們的繼電器模塊使用低電平有效信號觸發)并且 Arduino 將在串行監視器中打印泵消息。
If (percentage 《 10)
{
Serial.println(“pump on”);
數字寫入(3,低);
}
當水分百分比超過 80%(表明土壤充滿水)時,Arduino 將關閉泵并在串行監視器上打印“泵關閉”。
if(percentage 》80)
{
Serial.println(“pump off”);
數字寫入(3,高);
}
}
測試自動灌溉系統
將代碼上傳到 Arduino 后,我將除泵和傳感器探頭之外的整個電路放入塑料盒中,如下圖所示。
現在將濕度傳感器放入土壤中。將傳感器放置在盡可能靠近植物根部的位置,以獲得更高的精度。
最后一步是將您的電機放入裝滿水的容器中,當您不在時,您的自動灌溉系統已準備好照顧您可愛的植物。
您可能必須更改水分百分比來啟動和停止泵,因為不同的植物有不同的水需求。希望您喜歡這個項目并準備好使用 Arduino 構建您自己的自動灌溉系統。如果您有任何疑問,可以將它們留在下面的評論部分。
代碼
int 土壤水分值 = 0;
整數百分比=0;
無效設置(){
pinMode(3,輸出);
序列號.開始(9600);
}
無效循環() {
土壤水分值 = 模擬讀取(A0);
Serial.println(百分比);
百分比 = 地圖(土壤水分值,490、1023、100、0);
if(percentage < 10) ?
{
Serial.println("pump on");
數字寫入(3,低);
}
if(percentage >80)
{
Serial.println("pump off");
數字寫入(3,高);
}
}
-
濕度傳感器
+關注
關注
7文章
308瀏覽量
58635 -
Arduino
+關注
關注
188文章
6477瀏覽量
187827 -
自動灌溉系統
+關注
關注
1文章
23瀏覽量
3241
發布評論請先 登錄
相關推薦
評論