Smarthome-BlogLuftfeuchtigkeit & Temperatur Sensor DHT22

Luftfeuchtigkeit & Temperatur Sensor DHT22

Verkabeln, Kalibrieren & Homeassistant einbinden

Lesezeit: 7 min

Veröffentlicht: 2024.04.26

Letztes Update: 2024.06.15

DHT22

In diesem Artikel zeige ich euch, wie ihr mit einem ESP (z.B.: ESP8266) und einem DHT22-Sensor die Luftfeuchtigkeit und die Temperatur eurer Wohnung messen könnt.

Warum es wichtig ist, die Luftfeuchtigkeit zu messen und zu regulieren, habe ich hier beschrieben: Luftfeuchtigkeit smart regulieren

Voraussetzung für dieses Projekt ist ein ESP auf dem ihr ESPHome installiert und diesen mit Homeassistant verbunden habt.
Wie das funktioniert, habe ich bereits in diesem Artikel erklärt:
ESPHome mit Web Installer flashen

Aufbau und Verkabelung

Am einfachsten ist der Aufbau, wenn ihr einen DHT22 kauft, welcher bereits auf einer passenden Platine verlötet ist, z.B. wie hier:
Amazon DHT22 (Affiliate-Link)

Falls der Link, wenn ihr das hier lest, nicht mehr aktiv sein sollte, so sieht das Bauteil aus:

DHT Vorder- und Rückansicht

Der Vorteil ist, dass diese Platine praktische Pins hat, mit denen ihr eure Patch-Kabel verbinden könnt und zum anderen hat sie bereits den Pull-Up-Widerstand verbaut, welchen der DHT22 für den Betrieb benötigt.
Anschließend müsst ihr nur noch den DHT22 direkt mit eurem ESP verbinden. Für den DATA Pin könnt ihr einen beliebigen digitalen Eingang eures ESP verwenden. Hier als Beispiel mit Pin D2:

DHT22 ESP8266 Schaltplan

Mit einer einfachen Abzweigdose und ein wenig Heißkleber lässt sich ein einfaches Gehäuse bauen, welches unauffällig irgendwo im Raum platziert werden kann:

DHT22 selbst gebautes Gehäuse

Einbindung Homeassistant

Sobald ihr euren ESP verkabelt und mit Spannung versorgt habt, könnt ihr zunächst folgende Konfiguration in ESPHome definieren:

YAML

sensor:
  - platform: dht
    pin: D2
    model: DHT22
    temperature:
      name: "Wohnzimmer Temperatur"
    humidity:
      name: "Wohnzimmer Luftfeuchtigkeit"
    update_interval: 60s

Wie auch im Schaltplan habe ich als Pin D2 definiert.
Die Namen könnt ihr natürlich euren Bedürfnissen gemäß anpassen.
Sobald ihr diese Konfiguration via ESPHome auf euren ESP übertragen habt, stehen euch die entsprechenden Entitäten in Homeassistant zur Verfügung:

Entitäten Homeassistant

Kalibrieren

Nach meiner Erfahrung sind die meisten DHT22 Sensoren nach der initialen Konfiguration sehr ungenau und müssen erst kalibriert werden, bevor man sinnvolle Werte messen kann.
Ich nutze dafür immer andere Luftfeuchtigkeits- & Temperatur-Sensoren und stelle diese gemeinsam mit dem DHT22 auf:

Messaufbau Kalibrierung

Der weiße Kasten rechts im Bild ist die Außenstation für den Wettermonitor, der ganz links steht. Der Wecker in der Mitte hat ebenfalls einen Temperatur- und Luftfeuchtigkeitssensor. Insgesamt haben wir also 3 Messpunkte.

Achtung: Die meisten Sensoren brauchen eine gewisse Zeit, bis sie ihre Werte angepasst haben, wenn ihr sie in eine neue Umgebung stellt. Das kann je nach Sensor sehr unterschiedlich sein. Lasst euer Mess-Setup also am besten so lange an einem Ort stehen, bis sich die Werte aller Sensoren nicht mehr maßgeblich verändern.

Wie ihr seht, zeigen auch die "gekauften" Sensoren sehr unterschiedliche Werte an. Ich nutze meistens einfach den Mittelwert der anderen Sensoren als Richtwert für meinen DHT22.
Mir ist natürlich völlig klar, dass das keine hochpräzise Messmethode ist, aber wir bauen hier eine Messung für einen Wohnraum und nicht für eine Raketen-Abschussrampe ;-).
Falls ihr aber bessere Methoden kennt, euren DHT22 oder ähnliche Sensoren zu kalibrieren, lasst mich das gerne wissen.

Desto mehr Messpunkte ihr festhaltet, desto besser wird eure Kalibrierung.
Baut euer Mess-Setup also am besten in unterschiedlichen Bereichen auf. z.B. Im Wohnzimmer, im Keller, draußen oder im Badezimmer (Hohe Temperatur und viel Luftfeuchtigkeit nach dem Duschen)

Ich habe für dieses Beispiel an 3 Orten gemessen und folgende Werte festgehalten:

Messwerte für die Kalibrierung

Man sieht, dass die Werte des DHT22 deutlich von den Mittelwerten der anderen Sensoren abweichen. Allerdings ist diese Abweichung nicht konstant. Einfach einen bestimmten Wert zum gemessenen Wert hinzuzurechnen oder abzuziehen wäre also nicht zielführend.

Um jetzt den DHT22 mit diesen Daten zu kalibrieren, nutzen wird den calibrate_linear Filter von ESP Home. Mehr Infos dazu hier:
ESPHome Calibrate Linear

Man sieht in den Messwerten, dass die relative Luftfeuchtigkeit für Draußen und dem Wohnzimmer ungefähr gleich sind, der DHT22 aber stark unterschiedliche Werte misst. Ich erkläre mir das so, dass die geringe Temperatur draußen den DHT22 auch bei der Luftfeuchtigkeitsmessung beeinflusst. Wie ich diesen Umstand in einer linearen Kalibrierung darstellen kann, weiß ich allerdings nicht. Mein Sensor ist sowieso für die Verwendung in Innenräumen vorgesehen und deshalb habe ich die Messung der Luftfeuchtigkeit von draußen für meine Kalibrierung ignoriert.

Um jetzt die Kalibrierung auf den ESP anzuwenden, müssen wir Wertpaare in den Filterregeln definieren. Links steht immer der vom DHT22 gemessene Wert und rechts der "korrekte" Wert:

YAML

sensor:
  - platform: dht
    pin: D2
    model: DHT22
    temperature:
      name: "Wohnzimmer Temperatur"
      filters:
        - calibrate_linear:
           method: least_squares
           datapoints:
            - 10.7 -> 10.33
            - 20.6 -> 19.7
            - 25.8 -> 23.27
    humidity:
      name: "Wohnzimmer Luftfeuchtigkeit"
      filters:
        - calibrate_linear:
           method: least_squares
           datapoints:
            - 50 -> 50.33
            - 65 -> 77.33
    update_interval: 60s

Anschließend übertragt ihr wieder eure Konfiguration auf euren ESP. Von nun an solltet ihr brauchbare Messergebnisse in eurem Homeassistant erhalten.

Falls ihr wissen wollt, warum es wichtig ist, die Luftfeuchtigkeit im Auge zu behalten und ein paar Ideen für Automatisierungen, um sie entsprechend unter Kontrolle zu halten, lest hier weiter: Luftfeuchtigkeit smart regulieren

Keinen Beitrag mehr verpassen:

Feedback Me: