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

自動(dòng)灌溉系統(tǒng)開源分享

使用Cayenne的自動(dòng)灌溉系統(tǒng)

評論