5.8 Sistema di monitoraggio dell’umidità del suolo

5.8.1 Sensore di umidità del suolo

image

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.

5458448

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).

image-20250417145121859

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.

couy81

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.

5458448

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.

flo8

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.