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:

Erforderliche Hardware

1×Arduino Nano ESP32
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 Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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

Korrosion eines resistiven Bodenfeuchtigkeitssensors

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
Pinbelegung eines kapazitiven Bodenfeuchtesensors

Wie es funktioniert

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

Verdrahtungsdiagramm

Arduino Nano ESP32 Bodenfeuchtigkeitssensor Verdrahtungsdiagramm

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

Arduino Nano ESP32-Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Arduino Nano ESP32 pin A6 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 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.
COM6
Send
Moisture value: 2230 Moisture value: 2223 Moisture value: 2255 Moisture value: 2279 Moisture value: 2313 Moisture value: 2350 Moisture value: 2383 Moisture value: 2395 Moisture value: 1260 Moisture value: 1325 Moisture value: 1271 Moisture value: 1261 Moisture value: 1254 Moisture value: 1261 Moisture value: 1264 Moisture value: 1360 Moisture value: 1258 Moisture value: 1263 Moisture value: 1266 Moisture value: 1258 Moisture value: 1239 Moisture value: 1264 Moisture value: 1307 Moisture value: 1488 Moisture value: 1647 Moisture value: 1746 Moisture value: 1846
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-soil-moisture-sensor */ #define AOUT_PIN A6 // Arduino Nano ESP32 pin A6 that connects to AOUT pin of moisture sensor #define THRESHOLD 1500 // 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 (2129) The soil is DRY (1941) The soil is DRY (1767) The soil is DRY (1549) The soil is WET (1471) The soil is WET (1419) The soil is WET (1397) The soil is WET (1373) The soil is WET (1264)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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

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!