5.8 Bodenfeuchtemesssystem

5.8.1 Bodenfeuchtesensor

image

Achtung: Lassen Sie bei Experimenten kein Wasser aus Plastikbecken überlaufen. Das Verschütten von Wasser auf andere Sensoren kann nicht nur einen Kurzschluss oder Funktionsausfall der Module verursachen, sondern auch Hitzeentwicklung und sogar Explosionen. Seien Sie besonders vorsichtig! Besonders für jüngere Benutzer, bitte unter Aufsicht der Eltern bedienen.

Öffnen Sie den Code 5.8.1Soil-Humidity-Sensor mit 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);
}

Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

5458448

Testergebnis:

Öffnen Sie den seriellen Monitor. Berühren Sie den Erfassungsbereich des Sensors mit einem feuchten Finger, und der aktuell erfasste Feuchtigkeitswert wird auf dem Monitor ausgegeben (Bereich: 0~4095).

image-20250417145121859

Bodenfeuchtesensoren werden hauptsächlich zur Messung des volumetrischen Wassergehalts im Boden, zur Überwachung der Bodenfeuchtigkeit, zur Bewässerung von Pflanzen und zum Schutz von Wäldern eingesetzt.

couy81

5.8.2 Bodenfeuchtemesssystem

Wir verwenden LCD1602, um den Echtzeitwert der Bodenfeuchtigkeit anzuzeigen. Wenn der Wert unter die eingestellte Mindestfeuchtigkeit fällt, gibt der Summer einen Ton aus, um die Landwirte auf die Bewässerung aufmerksam zu machen.

Öffnen Sie den Code 5.8.2Soil-Humidity-Testing-System mit 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();
}

Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

5458448

Testergebnis:

Das LCD1602 zeigt den Echtzeitwert der Bodenfeuchtigkeit an. Wenn der vom Bodenfeuchtesensor erfasste Wert unter 200 liegt, gibt der Summer einen Alarmton ab.

flo8

Achtung: Lassen Sie bei Experimenten kein Wasser aus Plastikbecken überlaufen. Das Verschütten von Wasser auf andere Sensoren kann nicht nur einen Kurzschluss oder Funktionsausfall der Module verursachen, sondern auch Hitzeentwicklung und sogar Explosionen. Seien Sie besonders vorsichtig! Besonders für jüngere Benutzer, bitte unter Aufsicht der Eltern bedienen.