5.8 Sistema di monitoraggio dell’umidità del suolo
5.8.1 Sensore di umidità del suolo

Attenzione: Non far fuoriuscire acqua dalle vasche di plastica durante gli esperimenti. Versare acqua su altri sensori può causare non solo un cortocircuito o il malfunzionamento dei moduli, ma anche la generazione di calore e persino esplosioni. Fate molta attenzione! Soprattutto per gli utenti più giovani, si prega di operare con i propri genitori.
Aprire il codice 5.8.1Soil-Humidity-Sensor con Arduino IDE.
#define SoilHumidityPin 32
void setup() {
Serial.begin(9600);
pinMode(SoilHumidityPin,INPUT);
}
void loop() {
//Define a variable as the value of soil humidity sensor
int ReadValue = analogRead(SoilHumidityPin);
Serial.println(ReadValue);
delay(500);
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
Aprire il monitor seriale. Toccare l’area di rilevamento del sensore con un dito bagnato e il valore di umidità attualmente rilevato verrà stampato sul monitor (intervallo: 0~4095).

I sensori di umidità del suolo sono utilizzati principalmente per misurare il contenuto di acqua nel suolo volumetrico, monitorare l’umidità del suolo, irrigare le colture e proteggere le foreste.

5.8.2 Sistema di monitoraggio dell’umidità del suolo
Adottiamo LCD1602 per visualizzare il valore in tempo reale dell’umidità del suolo. Quando il valore è inferiore all’umidità minima impostata, il buzzer emetterà un suono per avvisare gli agricoltori dell’irrigazione.
Aprire il codice 5.8.2Soil-Humidity-Testing-System con Arduino IDE.
#include <LiquidCrystal_I2C.h>
#define BuzzerPin 16
#define SoilHumidityPin 32
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
ledcAttachChannel(BuzzerPin,1000,8,4);
pinMode(SoilHumidityPin,INPUT);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
float shvalue = analogRead(SoilHumidityPin);
lcd.setCursor(0, 0);
lcd.print("SoilHum:");
lcd.setCursor(9, 0);
lcd.print(shvalue);
//When the detected value is lower than the set threshold, the buzzer emits sound
if(200 >= shvalue)
{
ledcWriteTone(BuzzerPin,532);
delay(100);
ledcWriteTone(BuzzerPin,532);
delay(100);
ledcWriteTone(BuzzerPin,659);
delay(100);
ledcWriteTone(BuzzerPin,0); //Stop alarming
}
delay(500);
lcd.clear();
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
L’LCD1602 visualizza il valore in tempo reale dell’umidità del suolo. Quando il valore rilevato dal sensore di umidità del suolo è inferiore a 200, il buzzer emette un suono per allarmare.

Attenzione: Non far fuoriuscire acqua dalle vasche di plastica durante gli esperimenti. Versare acqua su altri sensori può causare non solo un cortocircuito o il malfunzionamento dei moduli, ma anche la generazione di calore e persino esplosioni. Fate molta attenzione! Soprattutto per gli utenti più giovani, si prega di operare con i propri genitori.