Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen

Übersicht

In diesem Arduino-Tutorial lernen Sie, wie Sie den DHT11 oder DHT22 Sensor zur Messung von Temperatur und Luftfeuchtigkeit mit einem Arduino-Board verwenden. Sie können das folgende Video ansehen oder die schriftliche Anleitung unten lesen.

Spezifikationen & Unterschiede

Diese Sensoren sind bei Elektronik-Hobbyisten sehr beliebt, da sie günstig sind und dennoch gute Leistung bieten. Hier sind die wichtigsten Spezifikationen und Unterschiede:

EigenschaftDHT11DHT22
Temperaturbereich0 bis 50 °C-40 bis +125 °C
Temperaturgenauigkeit±2 °C±0,5 °C
Luftfeuchtigkeitsbereich20 bis 80 %0 bis 100 %
Luftfeuchtigkeitsgenauigkeit5 %2–5 %
Abtastrate1 Hz (1 Messung/Sekunde)0,5 Hz (1 Messung/2 Sekunden)
GehäusegrößeKleinerGrößer
Betriebsspannung3–5 V
Max. Stromaufnahme2,5 mA

Der DHT22 ist die teurere Version mit besseren Spezifikationen. Der DHT11 punktet lediglich mit höherer Abtastrate und kleinerem Gehäuse.

Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen

Funktionsweise

Beide Sensoren bestehen aus drei Hauptkomponenten:

  • Ein Feuchtesensor-Element
  • Ein NTC-Temperatursensor (Thermistor)
  • Ein IC auf der Rückseite zur Signalverarbeitung

Luftfeuchtigkeitsmessung

Der Feuchtesensor hat zwei Elektroden mit einem feuchtigkeitsspeichernden Substrat dazwischen. Ändert sich die Luftfeuchtigkeit, ändert sich die Leitfähigkeit des Substrats bzw. der Widerstand zwischen den Elektroden. Dieser Widerstandsänderung wird vom IC gemessen, verarbeitet und für den Mikrocontroller bereitgestellt.

Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen
Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen

Temperaturmessung

Für die Temperaturmessung wird ein NTC-Thermistor verwendet. Ein Thermistor ist ein variabler Widerstand, der seinen Widerstandswert mit der Temperatur ändert. Diese Sensoren werden durch Sintern von Halbleitermaterialien wie Keramik oder Polymeren hergestellt, um bei kleinen Temperaturänderungen große Widerstandsänderungen zu erzielen.

„NTC“ steht für „Negative Temperature Coefficient“ – der Widerstand nimmt also mit steigender Temperatur ab.

Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen

Schaltplan

Die DHTxx-Sensoren haben vier Pins: VCC, GND, Daten-Pin und ein nicht verbundener Pin. Ein Pull-Up-Widerstand von 5 kΩ bis 10 kΩ ist erforderlich, um die Datenleitung auf High zu halten und die Kommunikation mit dem Arduino zu ermöglichen. Es gibt auch Versionen mit Breakout-Boards, die bereits einen integrierten Pull-Up-Widerstand haben und nur 3 Pins besitzen.

Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen

Die Sensoren verwenden ein eigenes Single-Wire-Protokoll mit präzisen Timing-Anforderungen. Dank der DHT-Bibliothek müssen wir uns jedoch nicht um die Timing-Diagramme kümmern.

Verwandtes Tutorial: Arduino-basierte drahtlose Wetterstation bauen

Quellcode

Zuerst wird die DHT-Bibliothek eingebunden (verfügbar auf der offiziellen Arduino-Website), der Pin definiert und ein DHT-Objekt erstellt. Im Setup wird die serielle Kommunikation initialisiert. Mit read22() (DHT22) bzw. read11() (DHT11) werden die Daten gelesen und in die Variablen t (Temperatur) und h (Luftfeuchtigkeit) gespeichert. Am Ende werden die Werte im Serial Monitor ausgegeben.

/* DHT11/ DHT22 Sensor Temperatur und Luftfeuchtigkeit Tutorial
 * Program made by Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
#include <dht.h>

#define dataPin 8
dht DHT;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;

  Serial.print("Temperatur = ");
  Serial.print(t);
  Serial.print(" °C  ");
  Serial.print("Luftfeuchtigkeit = ");
  Serial.print(h);
  Serial.println(" %");

  delay(2000); // DHT22 Abtastrate 0,5 Hz
}

Nach dem Hochladen des Codes können die Messwerte im Serial Monitor beobachtet werden.

Erweiterung: Anzeige auf LCD

Hier ist ein Beispiel, das die Werte auf einem LCD-Display anzeigt:

/* DHT11/ DHT22 Sensor mit LCD Anzeige
 * Program made by Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
#include <LiquidCrystal.h>
#include <dht.h>

#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
dht DHT;

void setup() {
  lcd.begin(16, 2);
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;

  lcd.setCursor(0, 0);
  lcd.print("Temp.: ");
  lcd.print(t);
  lcd.print(" C");

  lcd.setCursor(0, 1);
  lcd.print("Feuchte: ");
  lcd.print(h);
  lcd.print(" %");

  delay(2000);
}

Fragen können gerne im Kommentarbereich gestellt werden.

Herstellungsprozess

  1. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  2. Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
  3. MCP3008 ADC zum Auslesen analoger Sensoren mit Raspberry Pi nutzen
  4. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  5. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  6. Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
  7. Frequenz & Tastverhältnis präzise messen mit Arduino UNO
  8. BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen
  9. Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
  10. Temperatur & Luftfeuchte mit DHT11 auf Blynk auslesen – Arduino-Tutorial Schritt für Schritt