5.8 Bodemvochtigheidsbewakingssysteem

5.8.1 Bodemvochtigheidssensor

image

Let op: Laat geen water overlopen uit plastic bakken tijdens experimenten. Morsen van water op andere sensoren kan niet alleen kortsluiting of uitval van modules veroorzaken, maar ook hitteontwikkeling en zelfs explosie. Wees extra voorzichtig! Vooral voor jongere gebruikers, gelieve onder toezicht van uw ouders te werken.

Open de code 5.8.1Soil-Humidity-Sensor met 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);
}

Kies het ESP32 Dev Module board en de COM poort, en upload de code.

5458448

Testresultaat:

Open de seriële monitor. Raak het detectiegebied van de sensor aan met een natte vinger en de momenteel gedetecteerde vochtigheidswaarde wordt op de monitor afgedrukt (bereik: 0~4095).

image-20250417145121859

Bodemvochtigheidssensoren worden voornamelijk gebruikt om het watergehalte in volumetrische grond te meten, bodemvocht te monitoren, gewassen te irrigeren en bossen te beschermen.

couy81

5.8.2 Bodemvochtigheidsbewakingssysteem

We gebruiken LCD1602 om de real-time waarde van de bodemvochtigheid weer te geven. Wanneer de waarde lager is dan de ingestelde minimale vochtigheid, zal de zoemer geluid maken om boeren te waarschuwen voor irrigatie.

Open de code 5.8.2Soil-Humidity-Testing-System met 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();
}

Kies het ESP32 Dev Module board en de COM poort, en upload de code.

5458448

Testresultaat:

De LCD1602 geeft de real-time waarde van de bodemvochtigheid weer. Wanneer de waarde gedetecteerd door de bodemvochtigheidssensor lager is dan 200, geeft de zoemer geluid om te alarmeren.

flo8

Let op: Laat geen water overlopen uit plastic bakken tijdens experimenten. Morsen van water op andere sensoren kan niet alleen kortsluiting of uitval van modules veroorzaken, maar ook hitteontwikkeling en zelfs explosie. Wees extra voorzichtig! Vooral voor jongere gebruikers, gelieve onder toezicht van uw ouders te werken.