• Die Auswahl an Temperatursensoren für Arduino, ESP8266 und Raspberry Pi ist groß. Neben dem DS18B20 und dem BME280 kann man mit dem DHT22 eine Temperaturmessung durchführen. Zusätzlich zur Temperatur kann man mit dem DHT22 aber auch noch die Luftfeuchtigkeit bestimmen. Und genau um diese Kombination geht es in diesem Tutorial. Wir werden zusammen den DHT22 als Shield am D1 Mini zum laufen bekommen um die Temperatur sowie die Luftfeuchtigkeit auszulesen. Dieser Code dient als Basic-Code - als Ausgangsbasis für Projekte mit dem DHT22-Shield für den D1 Mini.

    Solltest du nicht wissen, wie man einen ESP8266 D1 Mini programmiert, kannst du dir gerne diese Schritt-für-Schritt Tutorial anschauen, in dem alles detailliert erklärt wird.

    makesmart_dht22_d1_mini_shield

    Die Verdrahtung

    Die Verdrahtung ist selbsterklärend. Das Shield kann einfach auf den D1 Mini gesteckt werden. Um die Verdrahtung muss man sich dabei natürlich keine Gedanken machen. Es muss lediglich darauf geachtet werden, dass das Shield richtigherum auf den D1 Mini gesteckt wird. Dazu reicht es, die Bezeichnungen der Pins auf dem Shield mit den Bezeichnungen auf dem D1 Mini zu vergleichen.

    Solltet ihr kein Shield haben, sondern nur den DHT22 standalone, könnt ihr den DHT22 wie folgt mit dem D1 Mini verdrahten:

    ESP8266 D1 Mini DHT22
    3.3V / 5V VCC
    GND GND
    D4 DATA
    - NC

    Die Produkte die ich für dieses Tutorial hier verwende, findet ihr hier im Warenkorb im makesmart.shop.

    Arduino IDE - Benötigte Libaries

    Bevor wir die Temperatur und Luftfeuchtigkeit des DHT22 auslesen können, müssen erstmal die passenden Libraries installiert werden. Libraries werden immer gleich installiert. Und zwar über den Bibliotheksverwalter innerhalb der Arduino IDE.

    Arduino IDE
    └───Werkzeuge
        └───Bibliotheken verwalten...
    

    Die passende Library findet ihr über den Suchbegriff DHT22 Sensor Library. Wie die Suche schon verrät, verwenden wir die DHT22 Sensor Library von Adafruit.

    makesmart_DHT22_sensor_library_arduino_ide

    Der Code

    Nach allen Vorbereitungen kann endlich der passende Programmcode ausgeführt werden. Der nachfolgende Code dient als Ausgangslage für eure Projekte mit dem DHT22.

    /*
        DHT22 Basic Code
        Temperatur und Luftfeuchtigkeit auslesen mit einem DHT22 Shield
        Created by cooper, 2020
        my.makesmart.net/user/cooper
    */
    
    #include "DHT.h"
    #define sensor DHT22
    
    int dataPin = 2; // PIN D4 = GPIO 2
                   
    // DHT22 initialisieren
    DHT dht(dataPin, sensor);                
    
    // Temperatur
    float temperature;
    // Luftfeuchtigkeit
    float humidity;
    //Gefühlte Temperatur
    float heatindex;
     
    void setup() {
      Serial.begin(115200);
      delay(100);
      
      pinMode(dataPin, INPUT);
      dht.begin();              
    }
    
    
    
    void loop() {
      
      temperature = dht.readTemperature(); // Die Temperatur des Sensors
      humidity = dht.readHumidity(); // Die Luftfeuchtigkeit des Sensors
      
      // Gefühlte Temperatur wird errechnet aus temperature und humidity
      heatindex = dht.computeHeatIndex(temperature, humidity, false);
    
      Serial.println("##############################");
      Serial.println("Temperatur: " + String(temperature) + " °C");
      Serial.println("Feuchtigkeit: " + String(humidity) + " %");
      Serial.println("Gefühlte Temperatur: " + String(heatindex) + " °C");
    
      
      delay(3500);
      
    }
    

    Es sind drei Variablen verfügbar.

    temperature enthält die aktuelle Temperatur als float.

    humidity enthält die aktuelle Luftfeuchtigkeit als float.

    heatindex enthält die aktuell gefühlte Temperatur als float.

    Die Ausgabe im seriellen Monitor sieht wie folgt aus:

    ##############################
    Temperatur: 26.10 °C
    Feuchtigkeit: 32.10 %
    Gefühlte Temperatur: 25.60 °C
    

    Abschluss

    Mit diesem minimal Basic-Code könnt ihr jedes Projekt mit einem DHT22 realisieren. 🍾

    Ich für meinen Teil möchte mir jetzt dann einen realtime Temperaturlogger programmieren. Da ist die Temperatur bei gewissen Aktionen festhalten und aufzeichnen möchte. Der D1 Mini dient in dem Fall nur als Messstation, welche die Daten an einen zentralen Server sendet.


    Viel Spaß mit euren Projekten! 🙂

    #Arduino-IDE #D1-Mini #DHT22 #ESP8266 #Sensor

Ähnliche Themen

  • 1
  • 1
  • 1
  • 36
  • 6