ESP32 – Bodenfeuchtesensor

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 verwenden, um die Bodenfeuchtigkeit von einem Sensor auszulesen. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Kapazitiver Bodenfeuchtigkeitssensor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Viele kapazitive Bodenfeuchtigkeitssensoren auf dem Markt sind von geringer Qualität, unabhängig von der Version. Wir empfehlen dringend den Kauf des Sensors mit TLC555I-Chip von der Marke DIYables über den obigen Link. Wir haben ihn getestet und er funktionierte gut.

Über den Bodenfeuchtigkeitssensor

kapazitiver Feuchtigkeitssensor vs resistiver Feuchtigkeitssensor

Es gibt zwei Arten von Feuchtigkeitssensoren:

  • Resistiver Feuchtigkeitssensor
  • Kapazitiver Feuchtigkeitssensor

Beide Sensoren liefern den Bodenfeuchtigkeitswert. Ihre Funktionsprinzipien unterscheiden sich jedoch. Wir empfehlen nachdrücklich die Verwendung des kapazitiven Feuchtigkeitssensors aus folgenden Gründen:

  • Der resistive Bodenfeuchtesensor korrodiert im Laufe der Zeit. Der elektrische Strom, der zwischen den Sonden des Sensors fließt, verursacht elektrochemische Korrosion.
  • Der kapazitive Bodenfeuchtesensor korrodiert nicht im Laufe der Zeit. Die Elektroden des Sensors sind nicht exponiert, und es fließt kein elektrischer Strom zwischen ihnen.

Das untenstehende Bild zeigt die Korrosion an einem resistiven Bodenfeuchtigkeitssensor.

Korrosion eines resistiven Bodenfeuchtigkeitssensors

Der Rest dieses Tutorials verwendet den kapazitiven Bodenfeuchtesensor.

Pinbelegung des kapazitiven Bodenfeuchtigkeitssensors

Ein kapazitiver Bodenfeuchtigkeitssensor hat drei Anschlüsse:

  • GND-Pin: Verbinde diesen Pin mit GND (0 V)
  • VCC-Pin: Verbinde diesen Pin mit VCC (5 V oder 3,3 V)
  • AOUT-Pin: Der analoge Signalausgangspin liefert die Spannung in umgekehrter Proportion zur Bodenfeuchtigkeit. Verbinde diesen Pin mit einem analogen Eingangspin des ESP32.
Pinbelegung eines kapazitiven Bodenfeuchtesensors

Wie es funktioniert

Je mehr Wasser im Boden vorhanden ist, desto niedriger ist die Spannung am AOUT-Pin.

Verdrahtungsdiagramm

  • Wie man ESP32 und Bodenfeuchtesensor mit Steckbrett verbindet
ESP32 Bodenfeuchtigkeitssensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man ESP32 und einen Bodenfeuchtigkeitssensor anschließt.

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 pin GPIO36 (ADC0) that connects to AOUT pin of moisture sensor void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor Serial.print("Moisture value: "); Serial.println(value); delay(500); }

Schnelle Schritte

  • Kopiere den obigen Code und füge ihn in die Arduino IDE ein.
  • Klicke auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf das ESP32-Board hochzuladen.
  • Vergrabe den Sensor im Boden, gieße anschließend Wasser in den Boden. Oder tauche ihn langsam in ein Glas Salzwasser.
  • Schau dir das Ergebnis im Serial Monitor an. Es sieht wie folgt aus:
COM6
Send
Moisture value: 2383 Moisture value: 2395 Moisture value: 1260 Moisture value: 1325 Moisture value: 1271 Moisture value: 1261 Moisture value: 1254 Moisture value: 1241 Moisture value: 1244 Moisture value: 1380 Moisture value: 1368 Moisture value: 1279 Moisture value: 1268 Moisture value: 1259 Moisture value: 1243 Moisture value: 1265 Moisture value: 1308 Moisture value: 1487 Moisture value: 1646
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

  • Vermeiden Sie es, reines Wasser für Tests zu verwenden, da es keinen Strom leitet und daher die Sensorwerte nicht beeinflusst.
  • Die Messwerte des Sensors erreichen niemals Null. Es ist normal, dass die Werte zwischen 3100 und 2600 liegen, auch wenn dies je nach einigen Faktoren variieren kann: die Einbettungstiefe des Sensors, die Beschaffenheit des Bodens oder des Wassers, die Versorgungsspannung.
  • Begraben Sie den oben am Sensor befindlichen Schaltungsbauteil nicht im Boden oder Wasser, da dies den Sensor möglicherweise beschädigen könnte.

Kalibrierung für kapazitiven Bodenfeuchtigkeitssensor

Der gemessene Wert des Feuchtigkeitssensors ist relativ. Er hängt von der Zusammensetzung des Bodens und dem Wassergehalt ab. In der Praxis müssen wir eine Kalibrierung durchführen, um einen Schwellenwert zu bestimmen, der die Grenze zwischen nass und trocken darstellt.

So kalibrieren Sie:

  • Führen Sie den obigen Code auf dem ESP32 aus.
  • Setzen Sie den Feuchtigkeitssensor in den Boden ein.
  • Setzen Sie den Feuchtigkeitssensor in den Boden ein.
  • Bewässern Sie den Boden langsam.
  • Beobachten Sie den seriellen Monitor.
  • Notieren Sie einen Wert zu dem Zeitpunkt, zu dem Sie feststellen, dass sich die Bodenfeuchtigkeit von trocken zu nass ändert. Dieser Wert wird als THRESHOLD bezeichnet.

Bestimmen Sie, ob der Boden nass oder trocken ist.

Nach der Kalibrierung aktualisieren Sie den von Ihnen aufgeschriebenen THRESHOLD-Wert im untenstehenden Code. Der untenstehende Code bestimmt, ob der Boden nass oder trocken ist.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 pin GPIO36 (ADC0) that connects to AOUT pin of moisture sensor #define THRESHOLD 1488 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

Das Ergebnis im seriellen Monitor.

COM6
Send
The soil is DRY (2126) The soil is DRY (1841) The soil is DRY (1667) The soil is DRY (1540) The soil is WET (1481) The soil is WET (1419) The soil is WET (1357) The soil is WET (1243) The soil is WET (1224)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-zu-Digital-Wandler) zu lesen, der an einen Bodenfeuchtesensor angeschlossen ist. Der ESP32-ADC ist gut geeignet für Projekte, die keine hohe Genauigkeit benötigen. Allerdings sollten Sie bei Projekten, die präzise Messungen erfordern, Folgendes beachten:

  • Der ESP32-ADC ist nicht völlig genau und muss möglicherweise kalibriert werden, um korrekte Ergebnisse zu liefern.
  • Jedes ESP32-Board kann etwas unterschiedlich sein, daher müssen Sie den ADC für jedes einzelne Board kalibrieren.
  • Die Kalibrierung kann schwierig sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die gewünschten Ergebnisse.

Für Projekte, die eine hohe Präzision benötigen, ziehen Sie in Erwägung, einen externen ADC (z. B. ADS1115) mit dem ESP32 zu verwenden oder einen Arduino zu nutzen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, siehe ESP32 ADC Calibration Driver

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!