Temperatur- und Feuchtigkeitssensor-Modul (DHT11)

../_images/12_dht11_module.png

Einführung

Der digitale Temperatur- und Feuchtigkeitssensor DHT11 ist ein kombinierter Sensor, der kalibrierte digitale Signalausgaben für Temperatur und Feuchtigkeit liefert. Die Verbindung aus spezieller digitaler Modultechnologie und Temperatur- sowie Feuchtigkeitssensorik sorgt für hohe Zuverlässigkeit und langfristige Stabilität des Produkts.

Der Sensor setzt sich aus einer resistiven Feuchtigkeitsmesskomponente und einer NTC-Temperaturmesseinheit zusammen, die mit einem leistungsfähigen 8-Bit-Mikrocontroller verbunden sind.

Funktionsprinzip

Der Sensor hat lediglich drei benutzbare Anschlüsse: VCC, GND und DATA. Der Kommunikationsprozess beginnt mit Startsignalen, die die DATA-Leitung an den DHT11 sendet. Nach dem Empfang der Signale sendet der DHT11 ein Antwortsignal zurück. Anschließend empfängt der Host das Antwortsignal und beginnt mit dem Empfang der 40-Bit-Temperatur- und Feuchtigkeitsdaten (8-Bit Feuchtigkeit Ganzzahl + 8-Bit Feuchtigkeit Dezimal + 8-Bit Temperatur Ganzzahl + 8-Bit Temperatur Dezimal + 8-Bit Prüfsumme).

../_images/12_dht11_module_2.png

Anwendungsbeispiele

Benötigte Hardware-Komponenten

  • Arduino Uno R4 oder R3 Platine * 1

  • Temperatur- und Feuchtigkeitssensor-Modul (DHT11) * 1

  • Jumperkabel

Schaltungsaufbau

../_images/12_dht11_module_circuit.png

Code

Bemerkung

Zur Installation der Bibliothek nutzen Sie den Arduino Library Manager und suchen Sie nach „DHT sensor library“ und installieren Sie diese.



Code-Erklärung

  1. Einbindung der erforderlichen Bibliotheken und Definition der Konstanten. Dieser Codeabschnitt enthält die DHT-Sensorbibliothek und definiert die verwendete Pinnummer und den Sensortyp für dieses Projekt.

    Bemerkung

    Zur Installation der Bibliothek nutzen Sie den Arduino Library Manager und suchen Sie nach „DHT sensor library“ und installieren Sie diese.

    #include <DHT.h>
    #define DHTPIN 2       // Define the pin used to connect the sensor
    #define DHTTYPE DHT11  // Define the sensor type
    
  2. Erstellung eines DHT-Objekts. Hier erstellen wir ein DHT-Objekt mit der definierten Pinnummer und dem definierten Sensortyp.

    DHT dht(DHTPIN, DHTTYPE);  // Create a DHT object
    
  3. Initialisierungsfunktion. Diese Funktion wird einmalig beim Start des Arduino ausgeführt. Hier initialisieren wir die serielle Kommunikation und den DHT-Sensor.

    void setup() {
      Serial.begin(9600);
      Serial.println(F("DHT11 test!"));
      dht.begin();  // Initialize the DHT sensor
    }
    
  4. Hauptloop. Die loop()-Funktion läuft kontinuierlich nach der Setup-Funktion. Hier lesen wir die Feuchtigkeits- und Temperaturwerte aus, berechnen den Hitzeindex und geben diese Werte an den seriellen Monitor weiter. Sollte der Sensorauslesevorgang fehlschlagen (NaN zurückgeben), wird eine Fehlermeldung ausgegeben.

    Bemerkung

    Der heat index ist ein Maß für das gefühlte Außentemperatur, das durch Kombination von Lufttemperatur und Luftfeuchtigkeit ermittelt wird.

    void loop() {
      delay(2000);
      float h = dht.readHumidity();
      float t = dht.readTemperature();
      float f = dht.readTemperature(true);
      if (isnan(h) || isnan(t) || isnan(f)) {
        Serial.println(F("Failed to read from DHT sensor!"));
        return;
      }
      float hif = dht.computeHeatIndex(f, h);
      float hic = dht.computeHeatIndex(t, h, false);
      Serial.print(F("Humidity: "));
      Serial.print(h);
      Serial.print(F("%  Temperature: "));
      Serial.print(t);
      Serial.print(F("°C "));
      Serial.print(f);
      Serial.print(F("°F  Heat index: "));
      Serial.print(hic);
      Serial.print(F("°C "));
      Serial.print(hif);
      Serial.println(F("°F"));
    }
    

Weitere Ideen

  • Anzeige der Messwerte auf einem LCD- oder OLED-Display

Weitere Projekte