這篇文章來(lái)源于DevicePlus英語(yǔ)網(wǎng)站的翻譯稿。
持續(xù)給植物澆水以及保持其健康狀態(tài)是很重要的。但是,如果您很難記住自己是否已經(jīng)澆過(guò)水,或者您想要能夠有一個(gè)提醒,您可以通過(guò)使用土壤傳感器制作一個(gè)設(shè)備來(lái)幫助您追蹤植物土壤中的水分含量。本指南將向您展示如何進(jìn)行操作。
工作原理
土壤傳感器具有兩個(gè)長(zhǎng)探針,您需要將其插入植物土壤中。這些探針可以用作電阻器。干燥的土壤導(dǎo)電性不是很好,所以這時(shí)候電阻值會(huì)更高。隨著水分含量的升高,電導(dǎo)率增加,從而使流向Arduino的電壓值增大。通過(guò)測(cè)量此電壓值,您的項(xiàng)目可以根據(jù)土壤的干燥或潮濕程度進(jìn)行響應(yīng)。
該電壓值會(huì)被傳遞到您的項(xiàng)目中用作變量,并以對(duì)您來(lái)說(shuō)最合適的方式對(duì)干燥植物進(jìn)行響應(yīng)。例如,您可以將響應(yīng)方式設(shè)置為用水噴灑植物。但在本項(xiàng)目中,為了簡(jiǎn)單起見(jiàn),我們將設(shè)置為當(dāng)檢測(cè)到水分含量過(guò)低時(shí)打開(kāi)LED。如果您看到燈亮了,那就說(shuō)明該給植物澆水了。
使用此類(lèi)傳感器時(shí)要注意的很重要的一點(diǎn)是,金屬探針會(huì)隨著時(shí)間的推移發(fā)生氧化,從而失去其有效性。如果您經(jīng)常使用它們,那么可能需要每年更換一次傳感器。不過(guò)這些傳感器非常便宜,所以這應(yīng)該不是什么大問(wèn)題。
所需部件
對(duì)于在本項(xiàng)目中我們要制作的版本,您不需要除了標(biāo)準(zhǔn)電子套件材料外的其他太多零件。但是需要注意的是,如果您想要將其部署在自己的花園中,那么可能需要做一些額外的工作以確保您的項(xiàng)目不受戶外因素的影響。
Arduino Uno |
![]() |
濕度傳感器 |
![]() |
LED |
![]() |
面包板& 電線 |
![]() |
Arduino IDE |
![]() |
USB數(shù)據(jù)線 |
![]() |
如果您打算將此項(xiàng)目放在戶外或者其他Arduino可能會(huì)濺到水的地方,您可能還需要購(gòu)買(mǎi)一個(gè)保護(hù)殼。
代碼
這個(gè)項(xiàng)目的代碼非常簡(jiǎn)單。請(qǐng)將以下腳本復(fù)制到您的IDE并將其上傳到開(kāi)發(fā)板。
int sensorPin = A0;
int moistureLevel ;
int LED = 6;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
moistureLevel = map(sensorValue,0,550,0,100);
Serial.println(sensorValue);
delay(30);
if (moistureLevel < 50) {
analogWrite(LED, HIGH);
} else {
analogWrite(LED, LOW);
}
}
現(xiàn)在,在開(kāi)始接線前,我們先來(lái)了解一下草圖中的每一部分。
int sensorPin = A0;
int moistureLevel ;
int LED = 6;
int sensorValue = 0;
首先,我們將會(huì)定義一些變量。sensorPin變量用于從濕度傳感器讀取輸入值。moistureLevel變量會(huì)在把濕度值映射到可用范圍后將其進(jìn)行存儲(chǔ),而LED將會(huì)存儲(chǔ)引腳6的值。最后,我們將添加一個(gè)變量來(lái)存儲(chǔ)來(lái)自濕度傳感器的值。
void setup() {
Serial.begin(9600);
}
設(shè)置部分相當(dāng)簡(jiǎn)單。根本上來(lái)說(shuō),我們只用啟動(dòng)串行監(jiān)視器來(lái)查看傳感器輸出值即可。
sensorValue = analogRead(sensorPin);
moistureLevel = map(sensorValue,0,550,0,100);
Serial.println(sensorValue);
delay(30);
這里的第一行將用于讀取濕度傳感器的輸出。該輸出值的范圍是0到1023,所以下一行將用于把該值重新映射到0至100范圍內(nèi),這會(huì)使其更易于管理。然后該值會(huì)被輸出到串行監(jiān)視器,以便您進(jìn)行實(shí)時(shí)監(jiān)控。最后,我們添加了一個(gè)簡(jiǎn)短的延遲。您可以根據(jù)自己的需要對(duì)其進(jìn)行調(diào)整。調(diào)整該設(shè)置不會(huì)有多大影響,但是濕度傳感器無(wú)法過(guò)于頻繁地進(jìn)行更新。
if (moistureLevel < 50) {
analogWrite(LED, HIGH);
} else {
analogWrite(LED, LOW);
}
在最后一部分中,我們將獲取來(lái)自濕度傳感器并重新映射后的最終輸出值,然后通過(guò)使用該值來(lái)實(shí)現(xiàn)在植物太干時(shí)打開(kāi)LED。一旦輸出值低于50時(shí),LED就會(huì)亮起,表示土壤已干燥。當(dāng)輸出值超過(guò)50,LED將會(huì)關(guān)閉。您可以根據(jù)在串行監(jiān)視器看到的內(nèi)容對(duì)此數(shù)字進(jìn)行調(diào)整,以確保它可以準(zhǔn)確反映植物的水分含量。
接線
這個(gè)項(xiàng)目的接線并不太復(fù)雜,但是您可以根據(jù)濕度傳感器的輸出值設(shè)計(jì)響應(yīng)動(dòng)作,從而進(jìn)一步擴(kuò)展該工作電路。但在本項(xiàng)目中,我們只用一個(gè)LED作為響應(yīng)?,F(xiàn)在連接所有部件:
● 將濕度傳感器的GND引腳連接到Arduino的GND。
● 將濕度傳感器的VCC引腳連接到5V。
● 將濕度傳感器的信號(hào)引腳連接到引腳A0。
● 將LED的短腳連接到引腳6。
● 在LED的長(zhǎng)腳一端連接一個(gè)220歐姆的電阻。
● 將電阻的另一端接地。
完成后,將濕度傳感器放入盆栽土壤中,并使用串行監(jiān)視器監(jiān)測(cè)它返回的值。您可以根據(jù)自己的需要對(duì)代碼進(jìn)行調(diào)整。您還可以嘗試通過(guò)添加其他部件來(lái)擴(kuò)展此項(xiàng)目。例如,您可以將項(xiàng)目設(shè)置為在植物變干時(shí)進(jìn)行自動(dòng)噴灑操作。

DevicePlus 編輯團(tuán)隊(duì)
設(shè)備升級(jí)版適用于所有熱愛(ài)電子和機(jī)電一體化的人。
審核編輯黃宇
評(píng)論