ESP32 S3 - Wassersensor
Lernen Sie in diesem einsteigerfreundlichen Arduino-Tutorial, wie Sie einen Wasserstandssensor an Ihren ESP32 S3 anschließen, um Wasserlecks, Regen und Tanküberläufe zu erkennen und Wasserstände zu messen.
Was Sie bauen werden:
- Einen Wasserstandsleser, der Rohwerte im Seriellen Monitor ausgibt
- Einen Wasserleckdetektor, der eine LED leuchten lässt, wenn Wasser vorhanden ist
- Eine mehrstufige Wassertiefenüberwachung, die Pegel von leer bis hoch einteilt
- Einen kalibrierten Sensoraufbau für genaue Wasserstandsmessungen in der Praxis

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Water Level Sensor
Ein Wasserstandssensor ist ein analoger Sensor, der das Vorhandensein und die Tiefe von Wasser erkennt, indem er den Widerstand zwischen freiliegenden Leiterbahnen auf seiner Platine misst. Je mehr dieser Bahnen durch Wasser überbrückt werden, desto geringer wird der elektrische Widerstand und desto stärker steigt die Ausgangsspannung proportional an. Dadurch lässt er sich einfach mit dem integrierten ADC des ESP32 S3 für verschiedene Anwendungen zur Wassererkennung und -messung kombinieren.
Wichtige Spezifikationen
Der Sensor arbeitet mit 3,3V oder 5V und ist damit ohne Pegelwandler direkt mit den Logikpegeln des ESP32 S3 kompatibel. Er hat drei Pins — Signal, VCC und GND — und gibt eine analoge Spannung aus, die mit der Eintauchtiefe steigt. Der Sensorbereich besteht aus abwechselnd angeordneten Leiterbahnen; nur dieser freiliegende Bereich sollte ins Wasser getaucht werden, während die Elektronik auf der Platine jederzeit trocken bleiben muss.
Pinbelegung des Wasserstandssensors
Der Wasserstandssensor hat drei Pins zum Anschluss an Ihren ESP32 S3.
- S-Pin (Signal): Gibt eine analoge Spannung proportional zum Wasserstand aus — mit einem analogen Eingangspin des ESP32 S3 verbinden
- +-Pin (VCC): Stromversorgungspin — mit 3,3V oder einem als digitalen Ausgang konfigurierten GPIO für stromsparende Messungen verbinden
- --Pin (GND): Massebezug — mit GND verbinden

Wie der Wasserstandssensor funktioniert
Der Sensor arbeitet nach dem Prinzip der veränderlichen elektrischen Leitfähigkeit. Sind die freiliegenden Bahnen trocken, fließt zwischen ihnen fast kein Strom, und die Ausgangsspannung liegt nahe null. Steigt das Wasser und bedeckt nach und nach mehr Bahnen, nimmt die Leitfähigkeit zu und die Ausgangsspannung steigt in Richtung der Versorgungsspannung. Der ESP32 S3 liest diese veränderliche analoge Spannung über seinen ADC und wandelt sie in einen Zahlenwert um, der die aktuelle Wassertiefe widerspiegelt.
Verdrahtungsdiagramm
Schließen Sie den Wassersensor sorgfältig an Ihren ESP32 S3 an, um zuverlässige Messwerte und eine lange Lebensdauer des Sensors zu gewährleisten. Da eine dauerhafte Stromversorgung elektrochemische Korrosion an den freiliegenden Bahnen verursacht, sollte der VCC-Pin über einen GPIO-Ausgang statt über eine permanente 3,3V-Schiene versorgt werden — so kann die Firmware die Versorgung zwischen den Messungen abschalten.
Sicherheitshinweise
Versorgen Sie den VCC-Pin des Sensors über einen digitalen GPIO-Ausgangspin statt über den 3,3V-Pin des Boards. Schalten Sie diesen GPIO nur für den kurzen Moment ein, der für eine Messung nötig ist, und ziehen Sie ihn danach sofort auf LOW. Tauchen Sie den Sensor niemals über den Bereich der freiliegenden Bahnen hinaus ein; die Elektronik der Platine und das Steckerende müssen jederzeit vollständig trocken bleiben.
| Pin des Wassersensors | ESP32 S3 Pin |
|---|---|
| S (Signal) | GPIO12 (Analoger Eingang) |
| + (VCC) | GPIO14 (Digitaler Ausgang zur Stromsteuerung) |
| * (GND) | GND |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP32 S3 Code - Wert vom Wassersensor lesen
Der folgende Code liest den analogen Rohwert des Wassersensors an Ihrem ESP32 S3 und gibt ihn im Seriellen Monitor aus. Er steuert die Stromversorgung des Sensors über einen digitalen GPIO-Pin und versorgt den Sensor nur während des Messfensters, um elektrochemische Korrosion an den freiliegenden Bahnen zu minimieren. Nach der Messung schaltet die Firmware die Versorgung sofort ab, sodass der Sensor auch bei längerem Einsatz in gutem Zustand bleibt.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahten Sie den Sensor gemäß der Tabelle im obigen Abschnitt zum Schaltplan mit dem ESP32 S3.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Wählen Sie im Menü Tools Ihr ESP32-S3-Board und den richtigen COM-Port aus.
- Klicken Sie auf die Schaltfläche Upload, um den Sketch zu kompilieren und auf Ihr Board zu flashen.
- Bereiten Sie zum Testen des Sensors ein Glas oder eine Schüssel mit Wasser vor.
- Öffnen Sie den Seriellen Monitor und stellen Sie die Baudrate auf 115200 ein.
- Tauchen Sie die Sensorbahnen langsam von unten beginnend ins Wasser und beobachten Sie, wie die Werte steigen.
- Beobachten Sie, wie die Werte wieder gegen null gehen, wenn Sie den Sensor aus dem Wasser heben.
- Profi-Tipp: Halten Sie die Elektronik und den Stecker des Sensors vollständig oberhalb der Wasserlinie — nur die freiliegenden Leiterbahnen an der Spitze sollten mit Wasser in Kontakt kommen.
※ Notiz:
Der Wassersensor ist nicht dafür ausgelegt, vollständig eingetaucht zu werden. Nur die freiliegenden Bahnen auf der Platine sollten mit Wasser in Kontakt kommen. Bitte installieren und testen Sie den Sensor sorgfältig, um die Elektronik nicht zu beschädigen.
Wie man Wasserlecks erkennt
Die Erkennung von Wasserlecks funktioniert, indem der Analogwert des Sensors mit einem bei der Kalibrierung ermittelten Schwellenwert verglichen wird. Überschreitet der Wert den Schwellenwert, behandelt die Firmware dies als Leckereignis und kann eine Warnung auslösen — in diesem Beispiel eine sichtbare LED-Anzeige. Dieses Muster ist die Grundlage für ausgefeiltere Leckerkennungssysteme wie Wi-Fi-Benachrichtigungen oder automatische Absperrventile.
Schaltplan
| Komponente | ESP32 S3 Pin |
|---|---|
| Wassersensor S | GPIO12 (Analoger Eingang) |
| Wassersensor + | GPIO14 (Digitaler Ausgang) |
| Wassersensor - | GND |
| LED-Anode (+) | GPIO4 (über 220Ω-Widerstand) |
| LED-Kathode (-) | GND |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP32 S3 Code - Wasserlecks erkennen
Der folgende Code überwacht den Wassersensor fortlaufend und vergleicht jeden Messwert mit einem eingestellten Schwellenwert. Steigt der Sensorwert über diesen Schwellenwert, schaltet der ESP32 S3 die LED ein, um ein Leck zu melden; fällt der Wert wieder darunter, erlischt die LED. Der aktuelle Erkennungsstatus wird außerdem im Seriellen Monitor ausgegeben, sodass Sie die Reaktion des Systems in Echtzeit beobachten können.
Wie man den Wasserstand misst
Dieses Beispiel teilt den gesamten Messbereich in vier benannte Kategorien ein — Leer, Niedrig, Mittel und Hoch —, um statt eines rohen Zahlenwerts eine gut lesbare Tiefenangabe zu liefern. Die Firmware bildet den kalibrierten Sensorbereich auf diese vier Stufen ab und gibt bei jeder Messung den Namen der aktuellen Stufe im Seriellen Monitor aus.
※ Notiz:
- SENSOR_MIN und SENSOR_MAX werden durch den im folgenden Abschnitt beschriebenen Kalibrierungsvorgang ermittelt.
- Die hier verwendete lineare Abbildungsmethode ist nicht perfekt genau, für die meisten praktischen Anwendungen aber ausreichend.
Kalibrierung des Wasserstandssensors
Genaue Wasserstandswerte erfordern eine Kalibrierung des Sensors für Ihren konkreten Aufbau, da die rohen ADC-Werte zwischen einzelnen Sensoren und ESP32-S3-Boards variieren. Notieren Sie den Ausgangswert, wenn die Bahnen vollständig trocken sind — das ist SENSOR_MIN —, tauchen Sie dann nur den Bereich der Bahnen vollständig ein und notieren Sie den Maximalwert als SENSOR_MAX. Tragen Sie beide Konstanten in Ihren Sketch ein, damit die Abbildungsfunktionen in Ihrer Umgebung korrekt arbeiten.
Siehe wie man den Wasserstandssensor kalibriert
※ Notiz:
Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen. Der integrierte ADC des ESP32 S3 ist für Projekte ausreichend, die keine hohe Genauigkeit erfordern. Für Projekte, die präzise Messungen benötigen, beachten Sie Folgendes:
- Der ADC des ESP32 S3 ist nicht perfekt linear und muss für genaue Ergebnisse möglicherweise kalibriert werden. Jedes einzelne Board kann leicht abweichen, daher sollte die Kalibrierung pro Board erfolgen.
- Die ADC-Kalibrierung kann für Anfänger schwierig sein und liefert nicht in allen Fällen perfekte Präzision.
Für Anwendungen, die hohe Präzision erfordern, sollten Sie den ESP32 S3 mit einem externen ADC wie dem ADS1115 kombinieren. Wenn Sie den internen ADC des ESP32 S3 kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.
Anwendungsideen
Die Kombination aus ESP32 S3 und Wasserstandssensor eröffnet eine Vielzahl praktischer Überwachungs- und Automatisierungsprojekte.
- Hochwassermelder für den Keller: Benachrichtigt ein Smartphone über Wi-Fi, sobald Wasser auf dem Boden erkannt wird.
- Automatisches Pflanzenbewässerungssystem: Überwacht die Bodenfeuchtigkeit oder den Füllstand eines Vorratsbehälters und schaltet bei Bedarf eine Pumpe ein.
- Wasserstandsüberwachung für Aquarien: Erkennt Verdunstung und aktiviert ein automatisches Nachfüllventil, um einen sicheren Wasserstand zu halten.
- Selbstgebauter Regenmesser: Misst die angesammelte Regenmenge für eine Heim-Wetterstation.
- Warnung für die Tropfschale der Kaffeemaschine: Verhindert ein Überlaufen, indem gewarnt wird, wenn die Tropfschale fast voll ist.
- Überwachung der Sumpfpumpe: Erkennt einen Pumpenausfall, indem steigendes Wasser beobachtet wird, das eigentlich abgepumpt worden sein sollte.
Video-Tutorial
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung zu diesem ESP32-S3-Projekt an.
Fordern Sie sich selbst heraus
Da Ihr Wassersensor nun funktioniert, bringen Sie das Projekt mit einer dieser zunehmend schwierigeren Aufgaben weiter voran.
- Anfänger: Fügen Sie einen Summer hinzu, der piept, wenn Wasser oberhalb des Schwellenwerts erkannt wird.
- Anfänger: Zeigen Sie den Wasserstand im Seriellen Monitor als Prozentsatz des kalibrierten Bereichs statt als rohen ADC-Wert an.
- Fortgeschritten: Bauen Sie einen Wi-Fi-fähigen Leckdetektor, der eine E-Mail oder Push-Benachrichtigung sendet, wenn Wasser erkannt wird.
- Fortgeschritten: Erstellen Sie ein Mehrsensorsystem, das mehrere Orte gleichzeitig überwacht und jeden einzeln meldet.
- Experte: Entwerfen Sie ein automatisches Tankbefüllsystem, das mit einem oberen und einem unteren Füllstandssensor eine relaisgesteuerte Pumpe steuert.
- Experte: Bauen Sie ein Datenprotokollierungssystem, das Wasserstandswerte über die Zeit aufzeichnet und einen Trendgraphen auf einem vom ESP32 S3 bereitgestellten Web-Dashboard anzeigt.