Arduino - Bodenfeuchtigkeitssensor

In diesem Tutorial lernen wir, wie man den Feuchtigkeitssensor mit Arduino verwendet. Im Detail werden wir lernen:

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Kapazitiver Bodenfeuchtigkeitssensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino 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 Bodenfeuchtigkeitssensor Sensor

kapazitiver Feuchtigkeitssensor vs resistiver Feuchtigkeitssensor

Es gibt zwei Arten von Feuchtigkeitssensoren:

  • Resistiver Feuchtigkeitssensor
  • Kapazitiver Feuchtigkeitssensor.

Beide Sensoren liefern Informationen zur Bodenfeuchtigkeit. Allerdings unterscheiden sich ihre Funktionsprinzipien. Wir empfehlen dringend die Verwendung des kapazitiven Feuchtigkeitssensors aus dem folgenden Grund:

  • Der widerstandsbasierte Bodenfeuchtesensor korrodiert mit der Zeit. Das liegt daran, dass der elektrische Strom zwischen seinen Elektroden fließt. Dies verursacht elektrochemische Korrosion.
  • Der kapazitive Bodenfeuchtesensor korrodiert nicht im Laufe der Zeit. Das liegt daran, dass seine Elektroden nicht freiliegende Elektroden sind und dadurch vergleichsweise korrosionsfrei bleiben.

Das unten gezeigte Bild zeigt einen resistiven Bodenfeuchtesensor, der im Laufe der Zeit korrodiert ist.

Der resistiver Bodenfeuchtesensor ist korrodiert.

Der Rest dieses Tutorials wird den kapazitiven Bodenfeuchtesensor verwenden.

Pinbelegung eines kapazitiven Bodenfeuchtigkeitssensors

Ein kapazitiver Bodenfeuchtesensor hat drei Anschlüsse:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V oder 3,3 V) verbunden werden
  • AOUT-Pin: Der analoge Signalausgang liefert die Spannung in umgekehrtem Verhältnis zur Bodenfeuchte. Verbinde diesen Pin mit einem analogen Eingang des Arduino
Pinbelegung eines kapazitiven Bodenfeuchtigkeitssensors

So funktioniert es

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

Verdrahtungsdiagramm

Schaltplan des Arduino-Bodenfeuchtigkeitssensors

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

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino-Pin, der mit dem AOUT-Pin des Feuchtigkeitssensors verbunden ist void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // liest den analogen Wert vom Sensor Serial.print("Moisture: "); Serial.println(value); delay(500); }

Schnelle Schritte

  • Kopiere den obigen Code und öffne ihn in der Arduino IDE
  • Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen
  • Vergrabe den Sensor im Boden, gieße dann 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: 581 Moisture: 581 Moisture: 575 Moisture: 566 Moisture: 556 Moisture: 547 Moisture: 539 Moisture: 530 Moisture: 521 Moisture: 513 Moisture: 506 Moisture: 500 Moisture: 495 Moisture: 492 Moisture: 490 Moisture: 489 Moisture: 488
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

  • Verwenden Sie kein reines Wasser zum Testen, da es keinen elektrischen Strom leitet, was bedeutet, dass es die Sensorwerte nicht beeinflusst.
  • Die Sensorwerte fallen typischerweise nicht auf Null ab. Es ist normal, dass sie im Bereich von 500 bis 600 bleiben, aber dies kann sich ändern, abhängig von Faktoren wie der Tiefe, in der der Sensor platziert ist, der Art des Bodens oder des Wassers und der Versorgungsspannung.
  • Vergraben Sie niemals den Schaltungsbauteil (das sich oben auf dem Sensor befindet) im Boden oder Wasser, da dies den Sensor beschädigen könnte.

Kalibrierung eines kapazitiven Bodenfeuchtigkeitssensors

Der Messwert des Feuchtigkeitssensors ist relativ. Er hängt von der Beschaffenheit 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 bildet.

Wie man Kalibrierung durchführt:

  • Führe den obigen Code auf dem Arduino aus.
  • Baue den Feuchtigkeitssensor in den Boden ein.
  • Baue den Feuchtigkeitssensor in den Boden ein.
  • Gieße langsam Wasser in den Boden.
  • Beobachte den seriellen Monitor.
  • Notiere zum Zeitpunkt, an dem der Boden von trocken zu nass wechselt, einen Wert. Dieser Wert wird Schwellenwert genannt.

Bestimmen Sie, ob der Boden nass oder trocken ist

Nach der Kalibrierung aktualisieren Sie den Schwellenwert, den Sie notiert haben, im untenstehenden Code. Der untenstehende Code bestimmt, ob der Boden nass oder trocken ist.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino-Pin, der mit dem AOUT-Pin des Feuchtigkeitssensors verbunden ist #define THRESHOLD 530 // Ändere hier deinen Schwellenwert void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // Lese den analogen Wert vom 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 Serial Monitor.

COM6
Send
The soil is DRY (581) The soil is DRY (575) The soil is DRY (566) The soil is DRY (547) The soil is DRY (539) The soil is WET (521) The soil is WET (513) The soil is WET (492) The soil is WET (488)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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!