Arduino Nano ESP32 - Bodenfeuchtigkeitssensor
Dieses Tutorial bietet Anleitungen, wie man den Arduino Nano ESP32 verwendet, um die Bodenfeuchtigkeit aus dem Sensor auszulesen. Im Detail werden wir lernen:
- Kapazitiver Feuchtigkeitssensor vs resistiver Feuchtigkeitssensor
- Wie man den Wert eines kapazitiven Feuchtigkeitssensors mit dem Arduino Nano ESP32 ausliest
- Wie man einen kapazitiven Feuchtigkeitssensor kalibriert
- Wie der Arduino Nano ESP32 feststellt, ob der Boden nass oder trocken ist
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
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

Es gibt zwei Arten von Feuchtigkeitssensoren:
- Resistiver Feuchtigkeitssensor
- Kapazitiver Feuchtigkeitssensor
Beide Sensoren geben den Bodenfeuchtigkeitswert aus. Ihre Funktionsweisen unterscheiden sich jedoch. Wir empfehlen dringend den Einsatz des kapazitiven Feuchtigkeitssensors aus folgenden Gründen:
- Der resistive Bodenfeuchtigkeitssensor korrodiert mit der Zeit. Der elektrische Strom, der zwischen den Elektroden des Sensors fließt, verursacht elektrochemische Korrosion.
- Der kapazitive Bodenfeuchtigkeitssensor korrodiert nicht mit der Zeit. Die Elektroden des Sensors sind nicht freigelegt, und zwischen ihnen fließt kein elektrischer Strom.
Das unten gezeigte Bild zeigt die Korrosion an einem resistiven Bodenfeuchtigkeitssensor.

Der Rest dieses Tutorials verwendet den kapazitiven Bodenfeuchtigkeitssensor.
Pinbelegung eines kapazitiven Bodenfeuchtigkeitssensors
Ein kapazitiver Bodenfeuchtigkeitssensor hat drei Anschlüsse:
- GND-Pin: Verbinden Sie diesen Pin mit GND (0 V)
- VCC-Pin: Verbinden Sie diesen Pin mit VCC (5 V oder 3,3 V)
- AOUT-Pin: Der Analogausgang liefert eine Spannung, die in umgekehrter Proportionalität zur Bodenfeuchte steht. Verbinden Sie diesen Pin mit dem analogen Eingangspin des ESP32

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

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino Nano ESP32-Code
Schnelle Schritte
- Kopiere den obigen Code und füge ihn in die Arduino IDE ein.
- Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf das Arduino Nano ESP32-Board hochzuladen.
- Begrabe den Sensor im Boden, gieße anschließend Wasser in den Boden. Oder tauche ihn langsam in einen Becher Salzwasser.
- Sieh dir das Ergebnis im Serial Monitor an. Es sieht so aus wie unten dargestellt.
※ Notiz:
- Verwenden Sie kein reines Wasser zum Testen, da es keinen Strom leitet und daher die Sensorwerte nicht beeinflusst.
- Sensorwerte fallen niemals auf Null. Es ist normal, dass die Werte zwischen 2600 und 3100 liegen, auch wenn sich dies aufgrund von Faktoren wie der Tiefe der Sensorplatzierung, der Beschaffenheit des Bodens oder Wassers und der Versorgungsspannung ändern kann.
- Vermeiden Sie, das Schaltungsbauteil (das sich auf der Oberseite des Sensors befindet) im Boden oder Wasser zu vergraben, da dies den Sensor potenziell beschädigen könnte.
Kalibrierung für kapazitiven Bodenfeuchtigkeitssensor
Der gemessene Wert des Feuchtigkeitssensors ist relativ. Er hängt von der Beschaffenheit des Bodens und vom Wassergehalt ab. In der Praxis müssen wir eine Kalibrierung durchführen, um einen Schwellenwert zu bestimmen, der die Grenze zwischen nass und trocken festlegt.
Kalibrierung durchführen:
- Führe den obigen Code auf dem Arduino Nano ESP32 aus.
- Setze den Feuchtigkeitssensor in den Boden ein.
- Setze den Feuchtigkeitssensor in den Boden ein.
- Bewässere den Boden langsam.
- Beobachte den seriellen Monitor.
- Notiere zu dem Zeitpunkt, an dem du feststellst, dass sich die Bodenfeuchte von trocken zu nass ändert, einen Wert. Dieser Wert wird Schwellenwert genannt.
Bestimme, ob der Boden nass oder trocken ist
Nach der Kalibrierung aktualisieren Sie den THRESHOLD-Wert, den Sie aufgeschrieben haben, im untenstehenden Code. Der untenstehende Code bestimmt, ob der Boden nass oder trocken ist.
Das Ergebnis im seriellen Monitor.
※ Notiz:
Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler), der mit einem Sensor oder Bauteil verbunden ist, zu lesen. Der ADC des Arduino Nano ESP32 eignet sich für Projekte, bei denen keine hohe Genauigkeit erforderlich ist. Für Projekte, die präzise Messungen erfordern, beachten Sie Folgendes:
- Der ADC des Arduino Nano ESP32 ist nicht perfekt genau und muss möglicherweise für korrekte Ergebnisse kalibriert werden.
- Jedes Arduino Nano ESP32-Board kann sich leicht unterscheiden, daher ist eine Kalibrierung für jedes einzelne Board notwendig.
- Die Kalibrierung kann herausfordernd sein, insbesondere für Anfänger, und führt möglicherweise nicht immer zu den gewünschten Ergebnissen.
Für Projekte mit hoher Präzision ziehen Sie in Erwägung, einen externen ADC (z. B. ADS1115) mit dem Arduino Nano ESP32 zu verwenden oder einen anderen Arduino zu nutzen, wie z. B. den Arduino Uno R4 WiFi, der einen zuverlässigeren ADC besitzt.
Wenn Sie dennoch die Kalibrierung des ADC des Arduino Nano ESP32 durchführen möchten, lesen Sie den 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.