隨著每個人都開始看到農(nóng)作物健康帶來的好處,智慧農(nóng)場變得越來越受歡迎,我知道很多人會對智慧農(nóng)場自動化感興趣。因此,今天我們將探討如何使用Arduino開發(fā)板和土壤濕度傳感器來確定土壤中的水分含量。
土壤水分通常是指土壤顆粒之間空間中的水分含量。這是決定農(nóng)作物生長及其健康狀況的一個非常重要的因素。土壤濕度傳感器通過使用與土壤相關(guān)的其他屬性間接地測量體積水含量,而不是用舊的重量法測量土壤水含量。本篇文章中使用的土壤濕度傳感器使用土壤的電阻來確定土壤濕度。土壤的電阻隨著土壤中水量的增加而降低。反之,土壤中的電阻隨著土壤中水量的減少而增加。傳感器由一個探頭和一個帶有可調(diào)電位器的比較器組成,可用于設(shè)置傳感器的靈敏度。
由于不同制造商的需求和設(shè)計(jì)技巧,傳感器采用不同的形式,便宜些的傳感器帶有單獨(dú)的比較器板,該比較器板通過跨接線連接到探頭,如上圖所示,該版本的傳感器包括一個模數(shù)轉(zhuǎn)換器,允許將該傳感器用作數(shù)字傳感器。像Sparkfun這樣的制造商提供的其他版本的傳感器可能會將所有電子器件都連接到了探頭上。無論傳感器的外形尺寸如何,其連接方式和用途都是相同的。
該傳感器的一些功能包括:
√ 工作電壓:3.3V?5V。
√ 可調(diào)靈敏度(使用藍(lán)色數(shù)字電位器調(diào)整)
√ 雙輸出模式,模擬輸出更加精確。
√ 固定的螺栓孔,易于安裝。
√ 帶電源指示燈(紅色)和數(shù)字開關(guān)輸出指示燈(綠色)。
√ LM393比較器芯片。
√ 面板PCB尺寸:3mmx 1.5mm。
√ 土壤探針尺寸:6cm x 2cm。
√ 電纜長度:21厘米。
下圖所示的傳感器探頭由兩個大的焊盤組成,用于測試土壤的電導(dǎo)率。本篇文章的目的是通過測量土壤濕度來演示如何使用如此有趣的傳感器,并在Arduino串口顯示器或諾基亞5110 LCD上其中該值。
所需的組件
● 土壤濕度傳感器
● Arduino Uno開發(fā)板
● 諾基亞5110 LCD顯示屏
● 面包板
● 跳線
原理圖
如下圖所示連接組件。
下面描述了Arduino與土壤濕度傳感器之間的引腳連接,以使原理圖更易于理解。
請?jiān)俅未_認(rèn)連接,以確保一切均已正確連接。
代碼
本文提供了兩個Arduino草圖。第一個適用于那些愿意在串口監(jiān)視器上顯示數(shù)據(jù)的人,而第二個草圖包含在諾基亞5110 LCD顯示屏上顯示土壤濕度百分比所需的代碼。由于我們已經(jīng)在本網(wǎng)站的多個教程中介紹了諾基亞5110 LCD顯示屏的使用,因此,我僅解釋第一個草圖,其中包含獲取土壤水分水平并顯示在串行監(jiān)視器上的代碼。
本文代碼很簡單,因?yàn)槲覀冎繟rduino ADC的范圍是0到1023,所以我們確定傳感器提供的任何讀數(shù)都將在該范圍內(nèi),因此,當(dāng)我們讀取土壤濕度傳感器提供的模擬值時,我們使用Arduino map函數(shù)可將讀取的任何值轉(zhuǎn)換為0到100之間的值,表示百分比。然后,該百分比顯示在串口監(jiān)視器或LCD顯示屏上。
為了簡要說明代碼,我們要做的第一件事是聲明與濕度傳感器連接的Arduino的模擬引腳,然后聲明其他變量。
//////////////////////////////////////////////
// ARDUINO SOIL MOISTURE DEMO //
// //
// http://www.educ8s.tv //
/////////////////////////////////////////////
int sensorValue = 0;
int percent = 0;
接下來,我們介紹void setup()函數(shù),在該函數(shù)中初始化串行通信,以便可以在串口監(jiān)視器上顯示數(shù)據(jù)。
void setup() {
Serial.begin(9600);
}
接下來是void loop()函數(shù)。首先在代碼中,我們讀取傳感器的值,然后調(diào)用轉(zhuǎn)換為百分比的函數(shù)轉(zhuǎn),然后在串口監(jiān)視器上顯示轉(zhuǎn)換后的值。
void loop() {
sensorValue = analogRead(sensorPin);
percent = convertToPercent(sensorValue);
printValuesToSerial();
delay(1000);
}
轉(zhuǎn)換為百分比函數(shù)的代碼如下所示。如前所述,它接受模擬值,并使用Arduino map函數(shù)將其轉(zhuǎn)換為百分比值。
int convertToPercent(int value)
{
int percentValue = 0;
percentValue = map(value, 1023, 465, 0, 100);
return percentValue;
}
上述步驟與第二個草圖相同,我們只需要包括諾基亞5110 LCD顯示器所需的依賴項(xiàng)。
演示效果
將代碼上傳到Arduino并在土壤傳感器浸在相當(dāng)干燥的土壤中的情況下設(shè)置系統(tǒng),您應(yīng)該會看到LCD /串口監(jiān)視器顯示土壤中的水量,如下圖所示。
向土壤中添加少量水,土壤中的電阻會降低,您可以在LCD/串口監(jiān)視器上立即看到變化,如下圖所示。
該項(xiàng)目是向智能灌溉系統(tǒng)邁出的重要一步,因?yàn)榭梢詫⑼寥浪坏淖兓O(shè)置為激活繼電器,以在水位低時啟動給水廠的泵。
編輯:hfy
-
LCD顯示器
+關(guān)注
關(guān)注
0文章
87瀏覽量
20213 -
濕度傳感器
+關(guān)注
關(guān)注
7文章
308瀏覽量
58587
發(fā)布評論請先 登錄
相關(guān)推薦
評論