Raspberry Pi - Bodenfeuchtesensor

Diese Anleitung zeigt Ihnen, wie Sie einen Feuchtigkeitssensor mit Raspberry Pi verwenden. Konkret werden wir uns ansehen:

Hardware benötigt

1×Raspberry Pi 5
1×Kapazitiver Bodenfeuchtesensor
1×ADS1115 ADC Modul
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

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 Bodenfeuchtesensor

kapazitiver Feuchtigkeitssensor vs resistiver Feuchtigkeitssensor

Es gibt zwei Arten von Feuchtigkeitssensoren: den resistiven Feuchtigkeitssensor und den kapazitiven Feuchtigkeitssensor.

Beide Sensoren liefern Informationen über die Bodenfeuchtigkeit. Ihre Funktionsweise ist jedoch unterschiedlich. Wir empfehlen dringend die Verwendung des kapazitiven Feuchtigkeitssensors aus folgenden Gründen:

  • Der resistive Bodenfeuchtesensor ist anfällig für Korrosion über die Zeit. Dies liegt daran, dass elektrischer Strom zwischen seinen Sonden fließt, was zu elektrochemischer Korrosion führt.
  • Der kapazitive Bodenfeuchtesensor korrodiert mit der Zeit viel langsamer als der resistive Bodenfeuchtesensor. Dies liegt daran, dass seine Elektroden nicht exponiert sind und vergleichsweise widerstandsfähig gegen Korrosion sind.

Dies ist ein Bild eines resistiven Bodenfeuchtesensors, der durch Korrosion beschädigt wurde.

resistiver Bodenfeuchtesensor korrodiert

Der Rest dieses Tutorials verwendet den kapazitiven Bodenfeuchtesensor.

Pinout des kapazitiven Bodenfeuchtesensors

Der kapazitive Bodenfeuchtesensor hat drei Pins:

  • GND-Pin: Dieser sollte mit GND (0V) verbunden werden
  • VCC-Pin: Dieser sollte mit VCC (5V oder 3,3V) verbunden werden
  • AOUT-Pin: Dies ist der analoge Signalausgangs-Pin, der eine Spannung erzeugt, die proportional zur Bodenfeuchtigkeitsstufe ist. Dieser sollte mit einem analogen Eingangs-Pin des Raspberry Pi verbunden werden.
kapazitiver Bodenfeuchtesensor Pinout

Funktionsweise

Die Wassermenge im Boden beeinflusst die Spannung am AOUT-Pin; je höher der Wassergehalt, desto niedriger wird die Spannung sein.

Schaltplan

Raspberry Pi Bodenfeuchtesensor Schaltplan

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

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Raspberry Pi Code liest Wert vom Bodenfeuchtesensor

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, wenn Sie Bibliotheken installieren müssen.
  • Wenn Sie Raspberry Pi zum ersten Mal verwenden, lesen Sie wie Sie Raspberry Pi einrichten
  • Verbinden Sie Ihren PC mit dem Raspberry Pi über SSH mit dem integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows. Siehe wie Sie Ihren PC mit Raspberry Pi über SSH verbinden.
  • Stellen Sie sicher, dass die RPi.GPIO Bibliothek installiert ist. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installieren Sie die Adafruit_ADS1x15 Bibliothek, indem Sie folgende Befehle im Raspberry Pi Terminal ausführen:
sudo pip install Adafruit-ADS1x15
  • Erstellen Sie eine Python-Skriptdatei soil_moisture.py und fügen Sie folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi 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/raspberry-pi/raspberry-pi-soil-moisture-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Main loop to read the analog value from the soil moisture sensor and print the raw ADC value try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Print the raw ADC value print("Raw Value: {}".format(raw_value)) # Add a delay between readings (adjust as needed) time.sleep(1) except KeyboardInterrupt: print("\nExiting the program.")
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 soil_moisture.py
  • Vergraben Sie den Sensor in Erde, dann gießen Sie Wasser in die Erde. Oder tauchen Sie ihn langsam in eine Tasse Salzwasser.
  • Überprüfen Sie das Ergebnis im Terminal.
PuTTY - Raspberry Pi
Raw Value: 48520 Raw Value: 47235 Raw Value: 46032 Raw Value: 44047 Raw Value: 43195 Raw Value: 42074 Raw Value: 41084 Raw Value: 41072 Raw Value: 40808 Raw Value: 40634 Raw Value: 40800 Raw Value: 40512

※ Notiz:

  • Verwenden Sie NICHT reines Wasser zum Testen, da es keinen Strom leitet, was bedeutet, dass es die Sensorwerte nicht beeinflusst.
  • Die Sensorwerte fallen normalerweise nicht auf null. Es ist normal, dass sie im Bereich von 40000 bis 50000 bleiben, aber dies kann sich je nach Faktoren wie der Tiefe der Sensorplatzierung, der Art des Bodens oder Wassers und der Spannung der Stromversorgung ändern.
  • Vergraben Sie niemals den Schaltungsteil (oben am Sensor) in Erde oder Wasser, da dies den Sensor beschädigen könnte.

Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.

Kalibrierung für kapazitiven Bodenfeuchtesensor

Der vom Feuchtigkeitssensor erhaltene Wert ist nicht absolut. Er variiert je nach Bodenzusammensetzung und Wassergehalt. Daher ist es notwendig, eine Kalibrierung durchzuführen, um eine Grenze zwischen nassen und trockenen Bedingungen zu bestimmen.

Anleitung für die Kalibrierung des kapazitiven Bodenfeuchtesensors:

  • Führen Sie den Code auf Raspberry Pi aus
  • Platzieren Sie den Feuchtigkeitssensor in die Erde
  • Fügen Sie schrittweise Wasser zur Erde hinzu
  • Überwachen Sie die Werte im Terminal
  • Notieren Sie sich den Wert, wenn Sie spüren, dass sich die Erde von trocken zu nass ändert, zum Beispiel: 45000. Dies wird als THRESHOLD (Schwellwert) bezeichnet.

Bestimmen, ob die Erde nass oder trocken ist

  • Erstellen Sie eine Python-Skriptdatei soil_moisture_dry_wet.py und fügen Sie folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi 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/raspberry-pi/raspberry-pi-soil-moisture-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Single threshold for wet/dry classification (adjust as needed) THRESHOLD = 45000 # Function to determine the wet-dry level based on the soil moisture percentage def wet_dry_level(soil_moisture): if soil_moisture > THRESHOLD: return "DRY" else: return "WET" # Main loop to read the analog value from the soil moisture sensor try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Determine the wet-dry level based on the raw ADC value level = wet_dry_level(raw_value) # Print the results print("Raw Value: {} \t Wet-Dry Level: {}".format(raw_value, level)) # Add a delay between readings (adjust as needed) time.sleep(1) except KeyboardInterrupt: print("\nExiting the program.")
  • Aktualisieren Sie den THRESHOLD-Wert, der bei der Kalibrierung notiert wurde, im Code.
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 soil_moisture_dry_wet.py

Die im Terminal angezeigte Ausgabe.

PuTTY - Raspberry Pi
Raw Value: 48520 Wet-Dry Level: DRY Raw Value: 47235 Wet-Dry Level: DRY Raw Value: 46032 Wet-Dry Level: DRY Raw Value: 44047 Wet-Dry Level: WET Raw Value: 41072 Wet-Dry Level: WET Raw Value: 40634 Wet-Dry Level: WET Raw Value: 40512 Wet-Dry Level: WET

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.

Verwandte Tutorials

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