Arduino UNO Q - Wassersensor
Ein Wassersensor kann Wasserlecks, Niederschlag und Tanküberlauf erkennen. Auf Arduino UNO Q wird das analoge Signal des Sensors vom 12-Bit-MCU-ADC gelesen (Bereich 0–4095). Mit Bridge und Telegram erhalten Sie sofortige Benachrichtigungen auf Ihrem Telefon, sobald Wasser erkannt wird.
In diesem Lernprogramm werden Sie lernen:
- Was ein Wassersensor ist und wie er funktioniert
- Wie man den Wassersensor mit dem Arduino UNO Q MCU verdrahtet
- Wie man den analogen Sensorwert mit dem 12-Bit-ADC ausliest
- Wie man Bridge verwendet, um Sensorablesungen und Wasserereignisse auf die Linux-Seite (Python) freizulegen
- Wie man Telegram-Benachrichtigungen erhält, wenn Wasser auf Arduino UNO Q erkannt wird
- Wie man OpenClaw auf Arduino UNO Q mit dem Wassersensor verwendet

Hardware erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den Wassersensor
Pinbelegung
Der Wassersensor hat drei Pins:
- S (Signal): Analoger Ausgang — mit einem analogen Eingangspin auf dem MCU verbinden
- + (VCC): Stromversorgung — mit 3,3V oder 5V verbinden. In diesem Lernprogramm mit einem digitalen Pin für Stromsteuerung verbunden
- - (GND): Masse

※ Notiz:
Es wird empfohlen, VCC mit einem digitalen Ausgangspin statt mit dem immer eingeschalteten 5V zu verbinden. Schalten Sie den Sensor nur beim Auslesen ein, um Korrosion der Kupferkontakte in feuchten Umgebungen zu verringern.
Funktionsweise
Der Sensor hat 10 Kupferspuren — abwechselnde Strom- und Signalleitungen. Wenn trocken, sind sie isoliert. Wenn ins Wasser getaucht, überbrückt das Wasser die Lücken und ändert den Widerstand.
- Mehr Wasser → niedrigerer Widerstand → höhere Ausgangsspannung → höherer ADC-Wert
- Weniger Wasser → höherer Widerstand → niedrigere Ausgangsspannung → niedrigerer ADC-Wert
Der Arduino UNO Q MCU verwendet einen 12-Bit-ADC mit 3,3V-Referenz, daher reichen die Messwerte von 0 bis 4095 (nicht 0–1023 wie beim klassischen Arduino Uno). Kalibrieren Sie den Schwellwert für Ihren spezifischen Sensor und Wassertyp.
※ Notiz:
Nur die freiliegenden Kupferspuren sollten mit Wasser in Kontakt kommen. Tauchen Sie die gesamte Sensorplatine oder Komponenten niemals ein. Installieren Sie mit den Sensorkontakten nach unten in die Flüssigkeit.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| Wassersensor-Pin | Arduino UNO Q MCU |
|---|---|
| * (GND) | GND |
| + (VCC) | D5 (gesteuerte Stromversorgung) |
| S (Signal) | A0 |
Programmiertipps für Wassersensor
- Pins einrichten:
- Sensorwert auslesen:
- Wasser erkennen:
Arduino UNO Q Code
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:
- Der STM32 MCU liest den Wassersensor über den 12-Bit-ADC jede Sekunde und gibt das Ergebnis aus
- Der Qualcomm MPU läuft unter Debian Linux und verwaltet Wi-Fi, Python und Cloud-Konnektivität
- In diesem Abschnitt wird nur der MCU programmiert — die Linux-Seite bleibt inaktiv. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
※ Notiz:
Der Arduino UNO Q MCU verwendet einen 12-Bit-ADC (0–4095) mit einer 3,3V-Referenz. Dies unterscheidet sich vom klassischen Arduino Uno, der einen 10-Bit-ADC (0–1023) mit 5V-Referenz verwendet. Passen Sie den THRESHOLD-Wert entsprechend an, wenn Sie kalibrieren.
Schnelle Schritte
Erste Erfahrung mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q Lernprogramm, bevor Sie fortfahren.
- Verdrahten: Verbinden Sie den Wassersensor mit dem Arduino UNO Q MCU wie im Verdrahtungsdiagramm gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihr Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, z. B.: WaterSensor
- Klicken Sie auf Erstellen, um zu bestätigen.

- Skizze einfügen: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien als Standard.
- Keine Bibliothek erforderlich — verwendet nur die integrierten Funktionen analogRead() und digitalWrite().
- Hochladen: Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen.

- Senken Sie die Sensorkontakte graduell in ein Glas Wasser und beobachten Sie, wie die ADC-Werte im Seriellen Monitor ansteigen.
Kalibrierung
Nach dem Hochladen beobachten Sie die Sensorwerte:
- Vollständig trocken: Wert ≈ 0
- Teilweise untergetaucht: Wert ≈ 300–1000
- Meist untergetaucht: Wert ≈ 1500–3000
Stellen Sie THRESHOLD über dem Trocken-Rauschen-Pegel ein (z. B. 500), um die Anwesenheit von Wasser zuverlässig zu erkennen.
App Lab Konsolenausgabe
Bridge: Linux + MCU
Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite Sensorwerte auslesen und Wasserereignisse über Bridge empfangen kann:
- Der Wassersensor ist mit dem MCU verbunden — der MCU liest den ADC jede Sekunde und speichert den Wert
- Der MPU kann den ADC nicht direkt auslesen — er ruft Bridge-Funktionen auf, um den Sensorwert, Status oder Ereignisse abzurufen
- Der MPU hat Wi-Fi — läuft unter vollständiger Debian Linux und kann Telegram-Benachrichtigungen senden, wenn Wasser zuerst erkannt wird
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router — öffnen Sie diese niemals im Benutzercode
Zusammengefasst: MCU liest jede Sekunde ADC → erkennt Zustandsänderung → setzt Ereignis-Flag → MPU fragt ab und sendet Telegram-Benachrichtigung.
MCU-Code (Bridge)
Python-Code (Bridge)
Schnelle Schritte
- Verdrahten: Verbinden Sie den Wassersensor mit dem Arduino UNO Q wie im Verdrahtungsdiagramm gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis die Platine erkannt wird.
- Erstellen Sie eine neue App: Klicken Sie auf Neue App erstellen, nennen Sie sie WaterSensorBridge, und klicken Sie auf Erstellen.
- MCU-Skizze einfügen: Kopieren Sie den MCU-Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Python-Code einfügen: Kopieren Sie den Python-Bridge-Code oben und fügen Sie ihn in die Python-Datei in der App ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen.

- Tauchen Sie die Sensorkontakte in Wasser und beobachten Sie die Statusänderung in beiden Konsolen.
App Lab Konsolenausgabe
Telegram
Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn auf dem Arduino UNO Q Wasser vom Sensor erkannt wird.
MCU-Skizze: Behalten Sie dieselbe MCU-Skizze aus dem vorherigen Bridge-Abschnitt.
Python-Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren aktuellen Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie dieselbe MCU-Skizze).
- Klicken Sie auf die Schaltfläche Ausführen. Tauchen Sie den Sensor ins Wasser — erhalten Sie sofort die Telegram-Benachrichtigung.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele nützliche Projekte mit dem Wassersensor und Arduino UNO Q erstellen:
- Leckalarm-System: Platzieren Sie den Wassersensor unter einer Spüle, Waschmaschine oder Wassererhitzer — erhalten Sie eine sofortige Telegram-Benachrichtigung, wenn ein Leck erkannt wird, mit dem rohen ADC-Wert für die Schweregradbeurteilung
- Regenmesser: Montieren Sie den Sensor im Freien unter einem offenen Unterstand, um Niederschlag zu erkennen — Python protokolliert Regenereignisse mit Zeitstempel in einer Datei und sendet eine tägliche Regenzusammenfassung an Telegram
- Aquarium-Überlauffalle: Positionieren Sie den Sensor am Tankrand — wenn der Wasserspiegel den Sensor erreicht, benachrichtigt Sie der MPU über Telegram und kann optional eine Relaisschaltung über Bridge auslösen, um die Wasserpumpe abzuschalten
- Pflanzen-Bewässerungsüberwacher: Überprüfen Sie die Bodenfeuchte mit dem Wassersensor — wenn Trockenheit erkannt wird (niedriger ADC-Wert), senden Sie eine Telegram-Erinnerung, um die Pflanzen zu gießen
- Keller-Hochwassermonitor: Installieren Sie mehrere Sensoren auf Bodenniveau im ganzen Keller — jeder Sensor ist mit einem separaten analogen Pin verbunden, und Python meldet über Telegram, welche Zonen überflutet sind
Fordern Sie sich selbst heraus
Möchten Sie noch mehr mit dem Wassersensor auf Arduino UNO Q lernen? Versuchen Sie diese Herausforderungen:
- Einfach: Fügen Sie Wasserstands-Kategorien in Python hinzu: wenn int(value) < 200 → "trocken", < 800 → "feucht", < 2000 → "nass", sonst "überflutet" — senden Sie die Kategorie mit jeder Telegram-Status-Antwort.
- Mittel: Implementieren Sie einen Abkühlungs-Timer: Nach einem Wassererkennung-Ereignis, das eine Telegram-Benachrichtigung auslöst, warten Sie 60 Sekunden, bevor Sie eine weitere Benachrichtigung für dasselbe Ereignis senden — verhindern Sie Spam bei anhaltenden Lecks.
- Fortgeschritten: Protokollieren Sie alle Sensorablesungen mit Zeitstempel in eine CSV-Datei auf Linux alle 10 Sekunden, und implementieren Sie einen /report Telegram-Befehl, der eine Zusammenfassung der letzten Stunde sendet: Mindestwert, Höchstwert, Anzahl der Wassererkennung-Ereignisse und Dauer des Wasserkontakts.