Pool Temperatur in Homekit mit D1 mini und DS18B20

Die Messung Pool Temperatur ist aus einigen Gründen sinnvoll, was mich dazu motiviert mit der Recherche nach Lösungen zu beginnen. Dabei kommen einige Herausforderungen ins Spiel die zu lösen sind. Natürlich hängt es immer davon ab, wie komfortabel die Temperatur ermittelt werden soll, um darauf aufbauend weitere Dinge tun zu können. Möchte man nur die Temperatur wissen reicht ganz klar ein einfacher Sensor, der analog oder Digital den Wert ermittelt, wie zum Beispiel dieses hier.

Soll die Pool Temperatur aber in einem Smarthome System wie FHEM und darüber hinaus zum Beispiel auf dem Smartphone abrufbar sein müssen andere Lösungen her. Im weiteren steht man dann vor der Entscheidung eine fertige Lösung wie zum Beispiel diese von Homematic oder Mobile Alerts zu kaufen oder einen Selbstbau zu wagen. Bei der Homematic als auch Mobile Alerts Lösung ist zusätzlich ein Gateway notwendig welches die Sensoren anbindet. Im Falle Mobile Alters kostet dies runde 40€ zusätzlich. So erhöht sich die Gesamtsumme schnell auf 100€. Ebenso muss überlegt werden, über welches Funkprotokoll die Daten gesendet werden können / sollen je nach vorhandener Umgebung.

Eigenbau mit D1 mini und DS18B20

Hier in meiner Umgebung wäre Homematic durchaus eine Lösung gewesen, da ich über FHEM den Sensor schnell und einfach hätte einbinden können. Allerdings war mir der Preis zu hoch und ich hatte in der Vergangenheit viel über den D1 mini und seine Vielfältigkeit gehört. Die hier gezeigte Lösung kann auch ohne Lötkenntnisse umgesetzt werden. Die Stabilität der Verdrahtung wird durch das verlöten der Komponenten aber deutlich verbessert. Im ersten Schritt ist die richtige Verkabelung entscheiden!

Meine Lösung baut auf vorhanden Lösungen auf, die ich ebenfalls aus dem Netz gesammelt habe und dir die größtmögliche Flexibilität liefert. Denn du kannst den Sensor später per 9V Batterie, USB mini Powerbank oder auch Netzteil betreiben!

Bevor ich zur Verdrahtung komme hier meine Projektliste:

Schaltplan Pool Temperatur Sensor

Das Anschlussschema ist relativ einfach. Die roten Kabel werden auf den 5V Anschluss des D1 mini gelegt. Die schwarzen Kabel auf GND. Die gelbe Leitung auf D4 welche die Datenleitung ist. Um genaue Messwerte zu erhalten wird zwischen Datenleitung und und Strom ein Widerstand eingebaut.

Der erste Schaltplan zeigt die Standard Verdrahtung des D1 mini mit dem Temperatursensor DS18B20.

Verbindung des D1 min mit DS18B20
Schaltplan D1 min und DS18B20

Der zweite Schaltplan zeigt die Verdrahtung des Widerstands.

D1 mini mit Widerstand
Schaltplan D1 mit Widerstand

Und hier das Endergebnis. Alle Verbindungen sind in meinem Fall gelötet und mit einem Schrumpfschlauch geschützt. Der Widerstand ist mit rotem Isolierband umwickelt, da an einer Stelle der Lötpunkt nicht so stabil war.

Verkabelung des Schaltplan D1 min und DS18B20 samt 4,7 Ohm Widerstand und Batterieclip zur Messung der Pool Temperatur
D1 min und DS18B20 und Setp-Down

ESPEasy und Firmware

Im nächsten Schritt nach der Verdrahtung muss das Board mit der richtigen Firmware geflasht werden. Das geht zum Beispiel mit der Software ESPEasy und der passenden Firmware, welche es hier gibt. Im entsprechenden ZipFile sind sowohl die unzähligen Firmware Varianten als auch das Flashing Tool Esp.Easy.Flasher.exe. Das Tool starten, den passenden Port und Firmware auswählen. Für den stabilen Betrieb empfehle ich die Versionen, welche im Namen _normal_ enthalten hat. Der D1 Mini hat 4MB Speicher und somit kann die Datei ESP_Easy_mega_20210503_normal_ESP8266_4M1M.bin ausgewählt werden.

ESPEasy Access Point

Für die initiale Konfiguration baut der ESPEasy ein eigenes WLAN Netzwerk auf. Unter den erkannten WLAN Netzwerken sollte eins mit dem Namen Esp-Easy auftauchen. Wurde die Verbindung hergestellt kann über die IP-Adresse 192.168.4.1 eine Verbindung zum D1 aufgebaut werden und alles konfiguriert werden was notwendig ist. Das Standard Passwort lautet: configesp

D1 mini Konfiguration

War der Login erfolgreich sind ein paar Einstellungen notwendig damit die Pool Temperatur erfasst und übermittelt werden kann.

  1. WLAN einrichten im Bereich Config

In dem Bereich bekommst du eine Übersicht der verfügbaren WLAN-Netzwerke. Du wählst das richtige aus und hinterlegst dein Passwort und klickst aud Submit.

Hier konfigurierst du deinen MQTT Server und setzt am Ende den Haken enabled

2. MQTT einrichten

Einrichtung des MQTT Servers.
MQTT Server

3. Datenleitung einstellen

In diesem Anschnitt bestimmst du auf welchem GPIO deine Datenleitung sitzt. In dem Beispiel hier auf D4

Einstellung der Datenleitung in ESPEasy.
GPIO Port

4. Device anlegen

Mit Klick auf Add legst du hier deinen Sensor an und klickst and Ende ebenfalls auf Submit. Folgende Einstellungen habe ich gewählt.

Definition des DS18B20 Sensors in ESPEasy
Temperatursensor anlegen

Einstellungen des Sensors

Definition der Datenleitung im Bereich Devices in ESPEasy
Datenleitung DS18B20

Intervall Datenübermittlung

Einstellung der Zeit wie oft die Daten der Pool Temperatur gesendet werden sollen.
Intervall Datenübermittlung

Daten per MQTT abfragen

Um die Temperatur in Homekit sehen zu können habe ich den D1 per MQTT angebunden und wie oben abgebildet den MQTT Server auf dem D1 definiert. Die Daten werden im Weiteren von meinem FHEM Server empfangen, welcher das MQTT FHEM Modul nutzt.

Sobald die MQTT Server Daten eingetragen sind sollte das neue Device durch Autocreate schnell in FHM angelegt sein. Zum Schluss noch den Homekit Raum zuweisen und nach einem Neustart der Homebridge sollte der Sensor in der Home App sichtbar sein.

Integration des DS18B20 nach Homekit und Anzeige der Pool Temperatur
Homekit Pool Sensor

Am erfolgreichen Ende steht die Freude ein D1 mini Projekt abgeschlossen zu haben! Hast du einmal das Prinzip verstanden lassen sich viele schöne weitere Projekte umsetzen.

Ich hoffe der Artikel hat dir gefallen und du konntest der Anleitung folgen? Schreib mir dazu gerne einen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.