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

DHT11- und DHT22-Sensoren Temperatur- und Feuchtigkeits-Tutorial mit Arduino

In diesem Arduino-Tutorial erfahren Sie, wie Sie den DHT11- oder DHT22-Sensor zum Messen von Temperatur und Luftfeuchtigkeit mit dem Arduino-Board verwenden. Sie können sich das folgende Video ansehen oder das schriftliche Tutorial unten lesen, um weitere Einzelheiten zu erfahren.

Übersicht

Diese Sensoren sind sehr beliebt bei Elektronikbastlern, da sie sehr billig sind und dennoch eine hervorragende Leistung bieten. Hier sind die wichtigsten Spezifikationen und Unterschiede zwischen diesen beiden Sensoren:

Die DHT22 ist die teurere Version, die offensichtlich bessere Spezifikationen hat. Sein Temperaturmessbereich reicht von -40 bis +125 Grad Celsius mit einer Genauigkeit von +-0,5 Grad, während der Temperaturbereich des DHT11 von 0 bis 50 Grad Celsius mit einer Genauigkeit von +-2 Grad reicht. Außerdem hat der DHT22-Sensor einen besseren Feuchtigkeitsmessbereich von 0 bis 100 % mit einer Genauigkeit von 2–5 %, während der Feuchtigkeitsbereich des DHT11 von 20 bis 80 % mit einer Genauigkeit von 5 % reicht.

Es gibt zwei Spezifikationen, bei denen der DHT11 besser ist als der DHT22. Das ist die Abtastrate, die für den DHT11 1 Hz oder eine Ablesung pro Sekunde beträgt, während die DHT22-Abtastrate 0,5 Hz oder eine Ablesung alle zwei Sekunden beträgt und auch die DHT11 eine kleinere Körpergröße hat. Die Betriebsspannung beider Sensoren beträgt 3 bis 5 Volt, während der maximale Strom, der beim Messen verwendet wird, 2,5 mA beträgt.

Sie können diese Komponenten von einer der folgenden Websites beziehen:

  • DHT11-Sensor……………………………..
  • DHT22-Sensor…………………………….
  • Arduino-Board ……………………………
  • Steckbrett und Schaltdrähte ……… 

DHT11 / DHT22-Arbeitsprinzip

Ok, jetzt wollen wir sehen, wie diese Sensoren tatsächlich funktionieren. Sie bestehen aus einer Feuchtigkeitssensorkomponente, einem NTC-Temperatursensor (oder Thermistor) und einem IC auf der Rückseite des Sensors.

Zur Messung der Feuchtigkeit verwenden sie die Feuchtigkeitserfassungskomponente, die zwei Elektroden mit einem feuchtigkeitshaltenden Substrat dazwischen aufweist. Wenn sich also die Feuchtigkeit ändert, ändert sich die Leitfähigkeit des Substrats oder der Widerstand zwischen diesen Elektroden ändert sich. Diese Widerstandsänderung wird vom IC gemessen und verarbeitet, wodurch sie bereit ist, von einem Mikrocontroller gelesen zu werden.

Andererseits verwenden diese Sensoren zur Temperaturmessung einen NTC-Temperatursensor oder einen Thermistor.

Ein Thermistor ist eigentlich ein variabler Widerstand, der seinen Widerstandswert bei Änderung der Temperatur ändert. Diese Sensoren werden durch Sintern von halbleitenden Materialien wie Keramik oder Polymeren hergestellt, um größere Widerstandsänderungen bei nur geringen Temperaturänderungen bereitzustellen.

Der Begriff „NTC“ bedeutet „Negativer Temperaturkoeffizient“, was bedeutet, dass der Widerstand mit zunehmender Temperatur abnimmt.

Schaltpläne

Die DHTxx-Sensoren haben vier Pins, VCC, GND, Datenpin und einen nicht verbundenen Pin, der keine Verwendung hat. Ein Pull-up-Widerstand von 5K bis 10K Ohm ist erforderlich, um die Datenleitung hoch zu halten und um die Kommunikation zwischen dem Sensor und dem Arduino Board zu ermöglichen. Es gibt einige Versionen dieser Sensoren, die mit Breakout-Boards mit eingebautem Pull-up-Widerstand geliefert werden und nur 3 Pins haben.

Die DHTXX-Sensoren haben ein eigenes Single-Wire-Protokoll, das zur Übertragung der Daten verwendet wird. Dieses Protokoll erfordert ein genaues Timing und die Timing-Diagramme zum Abrufen der Daten von den Sensoren finden Sie in den Datenblättern der Sensoren. Wir müssen uns jedoch keine großen Gedanken über diese Zeitdiagramme machen, da wir die DHT-Bibliothek verwenden, die sich um alles kümmert.

Zugehöriges Tutorial:Erfahren Sie, wie Sie eine Arduino-basierte drahtlose Wetterstation bauen

Quellcode

Zuerst müssen wir die DHT-Bibliothek einschließen, die auf der offiziellen Arduino-Website zu finden ist, dann die Pin-Nummer definieren, mit der unser Sensor verbunden ist, und ein DHT-Objekt erstellen. Im Setup-Abschnitt müssen wir die serielle Kommunikation initiieren, da wir den seriellen Monitor verwenden, um die Ergebnisse zu drucken. Mit der Funktion read22 () lesen wir die Daten vom Sensor und geben die Werte der Temperatur und der Luftfeuchtigkeit in die Variablen t und h ein. Wenn Sie den DHT11-Sensor verwenden, benötigen Sie die Funktion read11(). Am Ende drucken wir die Temperatur- und Feuchtigkeitswerte auf dem seriellen Monitor aus.

/* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial * Program made by Dejan Nedelkovski, * www.HowToMechatronics.com */ /* * You can find the DHT Library from Arduino official website * https://playground.arduino.cc/Main/DHTLib */ #include <dht.h> #define dataPin 8 // Defines pin number to which the sensor is connected dht DHT; // Creats a DHT object void setup() { Serial.begin(9600); } void loop() { int readData = DHT.read22(dataPin); // Reads the data from the sensor float t = DHT.temperature; // Gets the values of the temperature float h = DHT.humidity; // Gets the values of the humidity // Printing the results on the serial monitor Serial.print("Temperature = "); Serial.print(t); Serial.print(" *C "); Serial.print(" Humidity = "); Serial.print(h); Serial.println(" % "); delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz } Codesprache:Arduino (arduino)

Nachdem wir diesen Code auf das Arduino-Board hochgeladen haben, können die Temperatur- und Feuchtigkeitsergebnisse des Sensors auf dem seriellen Monitor angezeigt werden.

Ich habe auch ein Beispiel gemacht, wo ich die Ergebnisse auf einem LCD anzeigen. Hier ist der Quellcode dieses Beispiels:

/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */

#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>


#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;

void setup() {
  lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
  lcd.print("Temp.: "); // Prints string "Temp." on the LCD
  lcd.print(t); // Prints the temperature value from the sensor
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Humi.: ");
  lcd.print(h);
  lcd.print(" %");
  delay(2000);
} Codesprache:Arduino (arduino) 

Fühlen Sie sich frei, Fragen im Kommentarbereich unten zu stellen.


Herstellungsprozess

  1. Python- und Raspberry Pi-Temperatursensor
  2. Einfache Temperatur und Luftfeuchtigkeit auf Raspberry Pi
  3. Analoge Sensoren auf dem Raspberry Pi mit einem MCP3008
  4. Universelle Fernbedienung mit Arduino, 1Sheeld und Android
  5. DIY-Voltmeter mit Arduino und Smartphone
  6. Temperatur- und Feuchtigkeitsdatenlogger
  7. Frequenz- und Duty-Cycle-Messung mit Arduino
  8. BME280 Temperatur, Luftfeuchtigkeit und Druck auf dem Nextion-Display
  9. Steuerung der LED-Helligkeit mit Bolt und Arduino
  10. So liest man Temperatur und Luftfeuchtigkeit auf Blynk mit DHT11