Raspberry Pi - Wassersensor

Dieses Tutorial zeigt Ihnen, wie Sie Raspberry Pi mit dem Wassersensor verwenden. Im Detail werden wir lernen:

Benötigte Hardware

1×Raspberry Pi 5
1×ADS1115 ADC Modul
1×Wassersensor
1×Jumper-Kabel
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.

Über den Wassersensor

Wassersensor Pinout

Der Wassersensor hat 3 Pins:

  • Der S (Signal) Pin: Dies ist ein analoger Ausgang, der an einen der analogen Eingänge Ihres Raspberry Pi angeschlossen werden sollte.
  • Der + (VCC) Pin: Dies versorgt den Sensor mit Strom und es wird empfohlen, zwischen 3,3V – 5V zu verwenden.
  • Der - (GND) Pin: Dies ist eine Masseverbindung.
Wassersensor Pinout

※ Notiz:

Der Signal-Pin des Sensors erzeugt einen analogen Ausgang, der von der am VCC-Pin bereitgestellten Spannung abhängig ist.

Wie der Wassersensor funktioniert

Kurz gesagt, die Ausgangsspannung am Signal-Pin steigt, wenn die Wassermenge, in die der Sensor eingetaucht ist, zunimmt.

Schauen wir uns das genauer an.

Dieser Abschnitt widmet sich vertieftem Wissen. Machen Sie sich KEINE Sorgen, wenn Sie es nicht verstehen. Überspringen Sie diesen Abschnitt, wenn er Sie überfordert, und kommen Sie an einem anderen Tag zurück. Lesen Sie weiter mit den folgenden Abschnitten.

Der Sensor hat zehn freiliegende Kupferleiterbahnen, wobei fünf Stromleiterbahnen und die anderen fünf Erfassungsleiterbahnen sind. Diese Leiterbahnen sind parallel angeordnet, mit einer Erfassungsleiterbahn zwischen jeweils zwei Stromleiterbahnen. Solange sie nicht durch Wasser beim Eintauchen überbrückt werden, bleiben diese Leiterbahnen unverbunden.

Die Leiterbahnen fungieren als variabler Widerstand, ähnlich einem Potentiometer, dessen Widerstand vom Wasserpegel abhängig ist:

  • Der Widerstand wird durch die Entfernung von der Oberseite des Sensors zur Wasseroberfläche bestimmt.
  • Der Widerstand ist umgekehrt proportional zur vorhandenen Wassermenge:
  • Wenn mehr Wasser in den Sensor eingetaucht ist, steigt die Leitfähigkeit und der Widerstand sinkt.
  • Wenn weniger Wasser in den Sensor eingetaucht ist, sinkt die Leitfähigkeit und der Widerstand steigt.
  • Die Ausgangsspannung des Sensors basiert auf dem Widerstand.

Die Bestimmung des Wasserpegels kann durch Messen der Spannung erfolgen.

Verdrahtungsdiagramm

Raspberry Pi Wassersensor Verdrahtungsdiagramm

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 - Werte vom Wassersensor lesen

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, falls Sie einige Bibliotheken installieren müssen.
  • Falls Sie Raspberry Pi zum ersten Mal verwenden, siehe wie Sie den Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe wie Sie Ihren PC über SSH mit Raspberry Pi verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. 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 die folgenden Befehle in Ihrem Raspberry Pi Terminal ausführen:
sudo pip install Adafruit-ADS1x15
  • Erstellen Sie eine Python-Skript-Datei water_sensor.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-water-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC instance ADC = Adafruit_ADS1x15.ADS1115() # Specify the ADC channel (0-3) based on your connection ADC_CHANNEL = 3 # A3 of ADS1115 module # Set the gain (input voltage range) for your application GAIN = 1 # Gain of 1 corresponds to +/-4.096V # Define the conversion factor for water level calculation MIN_ADC_VALUE = 0 # Replace with the minimum ADC value for your sensor MAX_ADC_VALUE = 32767 # Replace with the maximum ADC value for your sensor try: while True: # Read the raw ADC value adc_value = ADC.read_adc(ADC_CHANNEL, gain=GAIN) # Convert the raw ADC value to a water level percentage water_level = (adc_value - MIN_ADC_VALUE) / (MAX_ADC_VALUE - MIN_ADC_VALUE) * 100 print(f"ADC Value: {adc_value} | Water Level: {water_level:.2f}%") time.sleep(1) # Wait for a second before the next reading except KeyboardInterrupt: print("\nScript terminated by user.")
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 water_sensor.py
  • Senken Sie den Sensor vorsichtig in ein Glas Wasser.
  • Überprüfen Sie die Ausgabe im Terminal; sie sollte 0 sein, wenn der Sensor nicht mit etwas in Kontakt steht.
PuTTY - Raspberry Pi
ADC Value: 0 | Water Level: 0.00% ADC Value: 8192 | Water Level: 10.00% ADC Value: 8192 | Water Level: 10.00% ADC Value: 13503 | Water Level: 22.30% ADC Value: 13503 | Water Level: 22.30% ADC Value: 18714 | Water Level: 34.59% ADC Value: 18714 | Water Level: 34.59% ADC Value: 23925 | Water Level: 46.89% ADC Value: 29136 | Water Level: 59.18% ADC Value: 29136 | Water Level: 59.18%

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

※ Notiz:

Der Sensor ist nicht dafür gedacht, vollständig eingetaucht zu werden; nur die freiliegenden Leiterbahnen auf der Leiterplatte sollten mit Wasser in Kontakt kommen. Seien Sie vorsichtig bei der Installation.

Wie man Wasserleckagen erkennt

Um Wasserleckagen, Niederschlag und Tanküberlauf zu erkennen, müssen wir nur den Messwert mit einem Schwellenwert vergleichen, der während der Kalibrierung in diesem Tutorial bestimmt wird.

Betrachten wir ein bestimmtes Beispiel. Wenn Wasser erkannt wird, aktiviert der Raspberry Pi eine LED. Für die Verkabelung siehe wie Sie LED an Raspberry Pi anschließen

Raspberry Pi Code - Wasserleckagen erkennen

Schnelle Schritte

  • Erstellen Sie eine Python-Skript-Datei water_sensor_led.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-water-sensor import time import Adafruit_ADS1x15 import RPi.GPIO as GPIO # Create an ADS1115 ADC instance ADC = Adafruit_ADS1x15.ADS1115() # Specify the ADC channel (0-3) based on your connection ADC_CHANNEL = 3 # A3 of ADS1115 module # Set the gain (input voltage range) for your application GAIN = 1 # Gain of 1 corresponds to +/-4.096V # Define the conversion factor for water level calculation MIN_ADC_VALUE = 0 # Replace with the minimum ADC value for your sensor MAX_ADC_VALUE = 32767 # Replace with the maximum ADC value for your sensor # Define the threshold ADC value for triggering the LED LED_THRESHOLD = 20000 # Replace with your desired threshold # Define the LED GPIO pin LED_PIN = 16 # Replace with the GPIO pin number you're using # Set up the GPIO mode and LED pin GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) try: while True: # Read the raw ADC value adc_value = ADC.read_adc(ADC_CHANNEL, gain=GAIN) # Convert the raw ADC value to a water level percentage water_level = (adc_value - MIN_ADC_VALUE) / (MAX_ADC_VALUE - MIN_ADC_VALUE) * 100 print(f"ADC Value: {adc_value} | Water Level: {water_level:.2f}%") # Turn on the LED if the water level is greater than the threshold if adc_value > LED_THRESHOLD: GPIO.output(LED_PIN, GPIO.HIGH) else: GPIO.output(LED_PIN, GPIO.LOW) time.sleep(1) # Wait for a second before the next reading except KeyboardInterrupt: print("\nScript terminated by user.") GPIO.cleanup() # Clean up GPIO settings on exit
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 water_sensor_led.py
  • Senken Sie den Sensor vorsichtig in ein Glas Wasser.
  • Überprüfen Sie die Ausgabe des LED-Zustands

Wassersensor Kalibrierung

Die Ausgabe des Sensors wird nicht nur vom Wasserpegel beeinflusst, sondern auch von der Leitfähigkeit des Wassers. Reines Wasser ist nicht leitfähig, während Wasser mit Mineralien und Verunreinigungen leitfähig ist. Je höher die Leitfähigkeit des Wassers, desto empfindlicher ist der Sensor. Zusätzlich hängt der Ausgangswert auch von der am VCC-Pin des Sensors zugeführten Spannung ab.

Um Genauigkeit beim Lesen des Wassersensors zu gewährleisten, empfehlen wir, den Sensor für den spezifischen Wassertyp zu kalibrieren, der überwacht werden soll.

Anweisungen für die Kalibrierung:

  • Verwenden Sie das oben bereitgestellte Skript, um den Sensorwert zu lesen.
  • Tauchen Sie den Sensor in das Wasser auf der gewünschten Höhe ein, um den Schwellenwert zu setzen.
  • Notieren Sie den Wert, den der Sensor im Terminal anzeigt.
  • Verwenden Sie diesen Wert als Schwellenwert, um eine Aktion auszulösen.

Der Test kann auch verwendet werden, um zu ermitteln:

  • MIN_ADC_VALUE Wert, wenn der Sensor nicht in die Flüssigkeit eingetaucht ist
  • MAX_ADC_VALUE Wert, wenn der Sensor vollständig in die Flüssigkeit eingetaucht ist

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.

Fordern Sie sich selbst heraus

  • Wenn Wasserleckage erkannt wird:
  • Senden Sie eine E-Mail
  • Senden Sie eine SMS-Nachricht
  • Aktivieren Sie einen akustischen Alarm

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