smarthome-tricks.de

Wassermelder für ioBroker über ESP8266 und MQTT

In diesem Artikel zeige ich Dir, wie Du Dir einen einfachen und günstigen Wassermelder auf Basis eines ESP8266 Mikroprozessor aufbauen kannst.

Ich habe für einen neuen Wasserspeicher einen kleinen Sensor entwickelt, mit dem ich bei einem Wasseraustritt direkt gewarnt werde. Den Sensor habe ich mittels einem ESP01 Mikroprozessor umgesetzt, da dieser im DeepSleep-Modus sehr geringe Verbrauchswerte aufweist und somit auch über eine längere Zeit mit handelsüblichen AA-Batterien betrieben werden kann.

Für die Integration des Sensors in das Smart-Home habe ich das MQTT-Protokoll verwendet. Bevor wir mit dem Aufbau des Sensors beginnen, hier zunächst die Liste der benötigten Materialien sowie Hilfsmittel zum Einfachen Flashen des ESP01-Mikroprozessor.

Als Gehäuse habe ich das folgende Gehäuse von reichelt.de gewählt:

https://www.reichelt.de/kunststoffgehaeuse-80-x-80-6-x-43-5-mm-rnd-455-00350-p193564.html?&trstct=pos_0&nbc=1

Da der ESP01-Mikroprozessor keinen USB-Anschluss besitzt, benötigst Du für das Flashen einen speziellen Adapter. Ich habe Dir den Adapter oben verlinkt, zudem solltest Du dir den folgenden Artikel zum Flashen ansehen, falls Du noch nicht mit dem ESP01-Mikroprozessor gearbeitet hast:

ESP-01 flashen

.

Nun beginnen wir mit dem Aufbau des Sensor. Ich habe den Sensor im ersten Schritt auf dem Breadboard entwickelt. Im folgenden Schaubild seht ihr die genaue Verkabelung des ESP01, der Batterie sowie die beiden Sensor-Kabel. Die nach oben führenden Anschlüsse habe ich mit einem Pin-Header versehen. Sobald dieser im Wasser ist, wach der ESP01 auf und publiziert die Meldung.

Im nächsten Schritt können wir dann mit der Implementierung des Sketch beginnen. Ich habe den Sketch als Download hier bereitgestellt:

Sketch - ioBroker Wassermelder (3170 Downloads)

Im Sketch müssen wir zunächst die Konfiguration vervollständigen. Hierfür muss die WLAN_SSID sowie das Kennwort eingetragen werden. Zudem muss die IP-Adresse des MQTT-Brokers (in meinem Fall die IP-Adresse von ioBroker) sowie der entsprechende Port definiert werden. Optional habe ich hier auch eine Authentifizierung am MQTT-Broker via Benutzername und Passwort vorgesehen.

In der Arduino IDE müssen wir unter den Werkzeugen das Generic Board für den ESP01 auswählen sowie den Port wählen.

Nach dem Flashen habe ich den Sensor dann das erste mal getestet. Im Kaffee-Becher funktioniert er natürlich auch problemlos 😉

In den ioBroker Objekten wird nun ein neuer Ordner mit der ClientID des Sensors angelegt. In meinem Fall sind die Datenpunkte dann unter mqtt.0.Kellerwassermelder001 zu finden.

Der Datenpunkt water_detected wird aktualisiert, sobald der Sensor einen Wasseraustritt registriert. Mit dem zweiten Datenpunkt wird dann noch die WLAN-Signalstärke übermittelt.

Im folgenden Blockly habe ich mir dann noch ein kleines Script erstellt, mit dem ich mit eine Telegram-Benachrichtigung zusende, sobald sich der Datenpunkt water_detected aktualisiert.

In der Telegram-App sehen wir bei einem Wasseraustritt die folgende Nachricht. Im nächsten Schritt könnten wir hier natürlich noch weitere Aktionen über ioBroker starten (Pumpe einschalten, Signalton anschalten, usw.).

Für ein möglichst lange Batterie-Laufzeit des Sensors müssen die beiden Status-LEDs des ESP01 entfernt werden. Hierfür habe ich einfach mit einer spitzen Zange die beiden LEDs zerstört und vorsichtig entfernt.

Der fertige Sensor wird dann im folgenden Gehäuse direkt im Keller installiert.

Ich hoffe Dir gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Die mobile Version verlassen