Tutorial: Thermometer Hygrometer mit OLED-Display

Tutorial: Thermometer Hygrometer mit OLED-Display

Es gibt Räume, bei denen man gerne die Temperatur im Blick behalten möchte. In manchen Fällen auch, ohne den dazu Raum betreten zu müssen. Beispielweise ein Kinderzimmer. Oder Räume, bei denen uns ein Temperaturverlauf interessiert, wie möglicherweise die Speisekammer oder der Gemüsekeller.

Für diesen Einsatz bietet sich der HDC1080 Temperatur- und Luftfeuchtigkeits-Sensor an. Dieser überwacht neben der Temperatur auch gleich noch die Luftfeuchtigkeit, was gerade im Winter in Wohnräumen sehr sinnvoll ist, da dort gerne mal die Luftfeuchtigkeit zu niedrig ist. 

Die ermittelten Messwerte (Temperatur, Luftfeuchtigkeit) werden direkt über ein 1,3 Zoll OLED-Display ausgegeben.

Die Integration mit dem Smarthome-System erfolgt via ESPHome. ESPHome bietet einerseits eine direkte Integration mit Home Assistant und andererseits eine Integration via MQTT mit weiteren Smarthome-Systemen. Aufgrund ihrer Einfachheit und der umfassenden Integrationsmöglichkeiten basiert unsere Referenzimplementierung auf Home Assistant.

Durch die Anbindung an ein Smarthome-System sind neben der bloßen Messung der Werte auch spannende Automatisierungen möglich:

  • Temperaturabhängige Steuerung von Heizkörperthermostaten.
  • Luftfeuchtigkeitsabhängige Steuerung von Luftbefeuchtern.
  • Benachrichtigung wenn sich Temperatur im Kinderzimmer oder Gemüsekeller außerhalb einer gewünschten Komfort-Bandbreite befindet.

Außerdem können die gemessenen Werte auch unabhängig von PC oder Smartphone vom Smarthome-System auf weitere externe Displays übertragen und dort ausgegeben werden.

Hardware

Bauteile

Zum Aufbau werden folgende Bauteile benötigt:

Das komplette Set an Bauteilen in unserem Shop:

D1 Mini NodeMCU löten

Damit der „D1 Mini NodeMCU“ in das Breadboard gesteckt werden kann, muss er zuerst mit den Pin-Leisten verlötet werden.

Dabei bitte darauf achten, dass die Pin-Leisten rechtwinklig angelötet werden, damit sie später auch zum Breadboard passen. Dazu kann man auch erstmal pro Pin-Leiste einen Pin anlöten und nach Abkühlen alles auf das Breadboard setzen (noch nicht einstecken), um zu prüfen, ob es passt. Falls OK, können dann einfach die weiteren Pins gelötet werden. Falls noch nicht OK (falscher Winkel), kann durch Erwärmen des bereits gelöteten Pins der Winkel der Pin-Leiste noch einfach korrigiert werden.

HDC1080 löten

Analog zu vorhergehender Beschreibung löten wir die Pin-Leiste an das HDC1080 Sensor-Modul. Wir achten darauf, dass der Sensor nach oben zeigt.

OLED-Display löten

Analog zu vorhergehender Beschreibung löten wir die Pin-Leiste an das OLED Display-Modul.

Stecken

Im nächsten Schritt werden alle Bauteile auf das Breadboard gesteckt.

Die Verkabelung findet dabei wie folgt statt:

  • Blau: D1 Mini D2 an HDC1080 SDA sowie an OLED SDA
  • Grün: D1 Mini D1 an HDC1080 SCL sowie an OLED SCK
  • Schwarz: D1 Mini G an HDC1080 GND sowie an OLED GND
  • Rot: D1 Mini 3V an HDC1080 VCC sowie an OLED VDD

Das folgende Fritzing-Schaubild gibt einen guten Überblick.

Erster Test

Werden die Bauteile falsch verdrahtet 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.

Home Assistant Grundeinrichtung

Unsere Referenzimplementierung basiert auf Home Assistant.

Zur Grundeinrichtung von Home Assistant siehe: https://www.home-assistant.io/getting-started/.

ESPHome

Automatische Einrichtung

Über folgenden Link kann die bereits vorbereitete Firmware einfach über USB aus dem Browser installiert werden: https://neoe-io.github.io/thermometer-hygrometer-mit-oled-display/

Alternativ: manuelle Einrichtung

Grundeinrichtung von ESPHome

Zur Grundeinrichtung von ESPHome befolgen wir die auf https://esphome.io/ verfügbare "getting started" Anleitung. Diese ist in zwei Varianten verfügbar:

  • From Home Assistant
    Diese Variante der Anleitung erklärt die Einrichtung von ESPHome mit Home Assistant. Wir empfehlen diese Variante aufgrund ihrer Einfachheit und der umfassenden Integration mit Home Assistant.
  • Using the command line
    Diese Variante der Anleitung erklärt die Einrichtung von ESPHome "standalone". Diese Variante ist erforderlich, wenn ESPHome mit anderen Smarthome-Systemen via MQTT verbunden werden soll.

Schrift hochladen

ESPHome bietet die Möglichkeit TrueType Schriften bei der Anzeige auf OLED-Displays zu verwenden. Wir haben hier die frei verfügbare Schriftart OpenSans ausgewählt. Wir laden zunächst den Font OpenSans-Regular.ttf in den Ordner von ESPHome hoch.

+ New Device

Im ESPHome Dashboard klicken wir rechts unten auf "+ New Device" und hinterlegen im darauffolgenden Wizzard folgende Informationen:

  • Name: moodlight
  • Device type: pick specific board -> Wemos D1 and Wemos D1 mini

Anschließend klicken wir auf "install" und wählen die von uns favorisierte Installationsart. 

YAML-Datei ergänzen

Die generierte YAML-Datei ergänzen wir am Ende nun um folgende Zeilen:

i2c:

sensor:
  - platform: hdc1080
    temperature:
      id: temperature
      name: "Temperatur"
      accuracy_decimals: 1
      filters:
      - sliding_window_moving_average:
          window_size: 60
          send_every: 60
    humidity:
      id: humidity
      name: "Luftfeuchtigkeit"
      accuracy_decimals: 1
      filters:
      - sliding_window_moving_average:
          window_size: 60
          send_every: 60
    update_interval: 1s

font:
  - file: 'OpenSans-Regular.ttf'
    id: font1
    size: 12
  - file: 'OpenSans-Regular.ttf'
    id: font2
    size: 36

display:
  - platform: ssd1306_i2c
    model: "SH1106 128x64"
    lambda: |-
      if (id(temperature).has_state()) {
        it.printf(64, 0, id(font2), TextAlign::TOP_CENTER, "%.1f °C", id(temperature).state);
      }
      if (id(humidity).has_state()) {
        it.printf(64, 64, id(font1), TextAlign::BOTTOM_CENTER, "Luftfeuchtigkeit: %.0f %%", id(humidity).state);
      }

Anschließend klicken wir auf "safe" und erneut auf "install", um die ergänzte Konfiguration hochzuladen.

Home Assistant

Nachdem die Konfiguration nun via ESPHome installiert ist, wird unser Thermometer Hygrometer automatisch von Home Assistant erkannt und über die Meldung "New devices discovered" zur Einrichtung angeboten.

Danach bearbeiten wir das gewünschte Lovelace-Dashboard und suchen nach dem Sensor und fügen ihn hinzu.

Die Sensordaten können in den Home Assistant Dashboards auf unterschiedliche Art und Weise angezeigt werden. Siehe folgendes Beispiel:

Sensor Card:

 

Andere Smarthome-Systeme

Es gibt eine Vielzahl spannender Smarthome-Systeme, welche eine MQTT-Anbindung via ESPHome unterstützen. Allerdings würde eine Beschreibung für jedes MQTT-kompatible Smarthome-System den Rahmen dieses Tutorials sprengen. Daher haben wir uns bewusst auf das Beispiel mit Home Assistant konzentriert, da hier die Integration mit ESPHome besonders einfach und umfassend ist. Für Details zu anderen Smarthome-Systemen verweisen wir auf die Websites und Internetforen der jeweiligen Anbieter

 

 

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.

Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.