Über das Projekt
Dieses Tutorial erklärt, wie mithilfe des Entwicklungsboards D1 Mini (basiert auf ESP8266) und dem digitalen Sensor DHT22 / AM2302 Temperatur und Luftfeuchtigkeit überwacht werden. Die erfassten Daten werden einerseits an einem LCD-Display direkt am Sensor ausgegeben.

Außerdem können sie auch via MQTT an gängige Smart Home Systeme (wie z.B. Home Assistant) übertragen werden.
Der Aufbau erfordert gewisse Elektronik- und PC Kenntnisse. Zum Aufspielen der Software ist ein Computer mit installierter Arduino IDE erforderlich.
Hardware
Bauteile
Zum Aufbau werden folgende Bauteile benötigt:
- D1 mini NodeMCU
- DHT22 / AM2302 Digitaler Temperatur- und Luftfeuchtigkeits-Sensor
- LCD1604 16x4 Zeichen LCD Display Modul inkl. IIC/I2C Interface-Adapter
- 10 Kiloohm Pullup-Wiederstand für den Sensor
- 400 Loch Breadboard / Steckbrett
- 40pin Jumperkabel - 10cm - Male to Male
- 40pin Jumperkabel - 10cm - Female to Male
D1 Mini NodeMCU löten
Damit der „D1 Mini NodeMCU“ mit der Leipterplatte verlötet werden kann, muss er zuerst mit den PINs verlötet werden. Dabei bitte darauf achten, dass die PINs rechtwinklig angelötet werden, damit sie später auch zur Leiterplatte passen.
LCD1604 löten
Nun wird der IIC/I2C Interface-Adapter an die Unterseite des LCD-Displays gelötet. Siehe folgende Abbildung.


Stecken
Im nächsten Schritt werden alle Bauteile auf das Breadboard gesteckt. Das LCD-Display wird über Female-Male Jumperkabel mit dem Breadboard verbunden. Das folgende Fritzing-Schaubild gibt einen guten Überblick.
Erster Test
Werden die Bauteile falsch gesteckt und der NodeMCU an den PC angeschlossen, so kann dies zur Beschädigung des USB-Ports des PCs führen. Daher testen wir erst einmal, indem wir den NodeMCU an ein klassisches USB-Ladegerät oder eine Powerbank mit USB-Kabel anschließen. Wird dort nichts zu heiß, ist das schon einmal ein gutes Zeichen.
ARDUINO PROGRAMMIERUNG
Arduino IDE einrichten
Wir benötigen die Arduino IDE, welche hier kostenlos heruntergeladen werden kann: https://www.arduino.cc/en/Main/Software
Danach gehen wir wie folgt vor:
- Unter „Werkzeuge -> Board“ wählen wir das Board „Generic ESP8266 Module“ aus.
- Unter „Werkzeuge -> Upload Speed“ wählen wir 115200 aus.
- Unter „Werkzeuge -> Bibliotheken“ verwalten binden wir die im Arduino-Sketch (siehe Link im folgenden Abschnitt) verwendeten Bibliotheken ein.
- Dann kopieren wir den Arduino-Sketch (siehe Link im folgenden Abschnitt) und laden ihn per „Sketch -> hochladen“ hoch.
Wenn alles geklappt hat, können wir nun unseren „Raumklimasensor“ nutzen.
Arduino-Sketch auf GitHub
Der im vorherigen Abschnitt erwähnte Arduino-Sketch kann hier von GitHub heruntergeladen werden:
https://github.com/NEOE-IO/NEOE-IOT-Kit-2
ANBINDUNG AN SMART HOME SYSTEM
Die NEOE IOT-Kits werden für Home Assistant entwickelt und getestet, da dieses das aufgrund der umfangreichen und ausgereiften Funktionalitäten aktuell von uns präferierte Smart Home System ist. Weitere Informationen zu Home Assistant siehe https://www.home-assistant.io.
Home Assistant
Zur Grundeinrichtung von Home Assistant siehe https://www.home-assistant.io/getting-started/.
Wir haben den Arduino Sketch so entwickelt, dass er die MQTT Discovery Funktionalität von Home Assistant unterstützt. Dadurch wird der Sensor automatisch von Home Assistant erkannt und die via MQTT übermittelten Daten können direkt in den Dashboards angezeigt werden. Zur Aktivierung der MQTT Discovery Funktion in Home Assistant siehe https://www.home-assistant.io/docs/mqtt/discovery/.
Die Sensordaten können in den Home Assistant Dashboards auf unterschiedliche Art und Weise angezeigt werden.
Sensor Card:


Klickt man auf die jeweilige Card, so wird ein Verlauf angezeigt:

Andere Smart Home Systeme
Dank Nutzung des MQTT-Protokolls sollte eine Anbindung auch an alle anderen Smart Home Systeme, welche MQTT unterstützen, möglich sein. Jedoch können wir aufgrund der Vielzahl unterschiedlicher Systeme dafür keine Garantie übernehmen. Zur Anbindung via MQTT an weitere Smart Home Systeme bitte die Dokumentationen der jeweiligen Smart Home Systeme konsultieren.
Häufige Fragen
Der Arduino-Programmcode funktioniert nicht und es erscheint eine Fehlermeldung in der Arduino IDE
- In manchen Browsern ist eine automatische Übersetzung von Englisch auf Deutsch aktiviert. Dies führt dazu, dass der Arduino-Programmcode auf GitHub automatisch auf Deutsch übersetzt und daher falsch angezeigt wird. In diesem Fall bitte vor dem Kopieren und Übertragen des Arduino-Programmcodes die automatische Übersetzung deaktivieren.
Das LCD-Display zeigt nichts an
- Eventuell ist der Kontrast zu schwach eingestellt. Auf dem IIC/I2C Interface-Adapter befindet sich ein Potentiometer (blau). Diesen mit einem kleinen Schraubenzieher drehen, bis etwas auf dem Display sichtbar ist.
Weitere Fragen sowie Anregungen?
Bitte direkt in unserer Facebook-Gruppe adressieren, damit die gesamte Community davon profitiert: https://www.facebook.com/groups/neoe.io/
Disclaimer - alle Angaben ohne Gewähr:
Die in diesem Tutorial (Beitrag) enthaltenen Informationen wurden nach bestem Wissen und Gewissen recherchiert und zusammengetragen. Jedoch können auch uns Fehler passieren. Und genauso kann bei der Umsetzung des Tutorials etwas schief gehen oder können Inhalte missverstanden werden. Für eventuelle Schäden durch das Befolgen dieses Tutorials können wir daher keine Haftung übernehmen. Wir entwickeln unsere Tutorials laufen weiter. Sollte etwas unstimmig oder unklar sein, bitte Bescheid geben, damit wir den betroffenen Punkt korrigieren oder ergänzen können. Vielen Dank.