DHT11: Alles rund um den Sensor zur Messung von Temperatur und Luftfeuchtigkeit

DHT11

Das Messen von Temperatur und Luftfeuchtigkeit ist sehr verbreitet in vielen elektronischen Herstellerprojekten. Beim Heimwerken ist es üblich, diese Parameter messen zu müssen, um bestimmte Systeme zu steuern. Zum Beispiel, um eine Kühl-, Pflanzenpflege- oder Klimaanlage erstellen zu können, die startet, wenn die Temperatur oder Luftfeuchtigkeit einen bestimmten Wert erreicht. Damit dies jedoch möglich ist, benötigen Sie einen Sensor wie den DHT11.

Auf dem Markt Es gibt viele Sensoren sehr unterschiedliche Temperaturbereiche mit unterstützten Temperaturbereichen oder unterschiedlichen Präzisionen. Ein Beispiel dafür ist der LM35, einer der beliebtesten und in der Elektronik verwendeten. Es gibt auch andere Feuchtigkeitssensoren, die durch Variation der Leitfähigkeit wirken, wie z. B. der AD22103KTZ von Analog Devices. Wenn Sie jedoch beide Parameter messen möchten, ist das Gerät, das wir heute in diesem Artikel behandeln, möglicherweise von viel größerem Interesse ...

Was ist DHT11?

El DHT11 ist ein einfacher Sensor, der Temperatur und Luftfeuchtigkeit misst, alles in einem. A) Ja Sie müssen nicht zwei Sensoren kaufen separat. Der Preis liegt bei etwa 2 €, ist also recht günstig, obwohl Sie ihn auch auf einem Modul (zur einfacheren Verwendung auf einer Leiterplatte montiert) finden können, wie es bei dieser Art von elektronischen Bauteilen für Arduino üblich ist. Im Fall der Platine enthält sie einen 5-Kilo-Ohm-Pull-up-Widerstand und eine LED, die uns vor dem Betrieb warnt.

DHT11 hat Hohe Zuverlässigkeit und Stabilität durch kalibriertes digitales Signal. Wenn Sie sich das Datenblatt ansehen, werden Sie feststellen, dass es interessante Funktionen hat, wie Sie in zukünftigen Abschnitten sehen werden.

Ähnliche Produkte

DHT22

Es gibt ein Produkt ähnlich DHT11, an dem Sie interessiert sein könnten. Es ist das DHT22. Es ist auch ein integrierter Temperatur- und Feuchtigkeitssensor, aber in diesem Fall ist der Preis etwas höher, etwa 4 €. Die Genauigkeit zur Messung der Temperatur beträgt ebenfalls 5% Abweichung wie bei DHT11, misst jedoch im Gegensatz dazu über den Feuchtigkeitsbereich zwischen 20 und 80% hinaus. Daher könnte Sie das DHT22 für Projekte interessieren, bei denen Sie die Luftfeuchtigkeit von 0 bis 100% messen müssen.

La Häufigkeit der Datenerfassung es ist auch doppelt so hoch wie bei DHT11, bei DHT22 werden 2 Proben pro Sekunde anstelle von 1 Probe pro Sekunde von DHT11 entnommen. Die Temperatur kann präziser von -40 ° C bis + 125 ° C gemessen werden, da sie Bruchteile von Grad messen kann, insbesondere Abweichungen von plus / minus 0,5 ° C.

Pinbelegung, Funktionen und Datenblatt

DHT11 Pinbelegung

Hier finden Sie einige technische Informationen zu DHT11 in Ihren Datenblättern. Jeder Hersteller dieses Geräts kann einige Werte angeben, die variieren können. Ich empfehle daher immer, das PDF des jeweiligen Herstellers des von Ihnen gekauften Geräts zu lesen. Obwohl die meisten Werte für Sie gleich aussehen, kann es zu geringfügigen Abweichungen von einem zum anderen kommen. Die wichtigsten technischen Merkmale sind:

  • 3,5 V bis 5 V Stromversorgung
  • 2,5mA Stromaufnahme
  • Digitales Ausgangssignal
  • Temperaturbereich von 0ºC bis 50ºC
  • Genauigkeit zur Messung der Temperatur bei 25 ° C mit einer Abweichung von ca. 2 ° C.
  • Die Auflösung zum Messen der Temperatur beträgt 8 Bit, 1 ° C.
  • Die Luftfeuchtigkeit kann zwischen 20% rF und 90% rF liegen
  • Genau für eine Luftfeuchtigkeit von 5% relativer Luftfeuchtigkeit bei Temperaturen zwischen 0 und 50 ° C.
  • Die Auflösung beträgt 1% rF, es können keine Abweichungen darunter festgestellt werden
  • Mouser Datenblatt

In Bezug auf die Daten, in digital ausgestrahlt. Daher ist es nicht erforderlich, wie bei anderen Sensoren von analog zu digital zu wechseln. Das komplizierte das Schreiben des Codes in die Arduino IDE, aber in diesem Fall wird es nicht benötigt und es ist viel einfacher. Der Sensor selbst ist zwar analog, enthält jedoch ein System zur Durchführung der Konvertierung und kann direkt an einen Arduino-Digitaleingang angeschlossen werden.

Das analoge Signal, das eine Variation der Spannung darstellt, vom Sensor wird in ein digitales Format umgewandelt, um an den Arduino-Mikrocontroller gesendet zu werden. Es wird in übertragen ein 40-Bit-Frame diese entsprechen den vom DHT11 erfassten Feuchtigkeits- und Temperaturinformationen. Die ersten beiden 8-Bit-Gruppen beziehen sich auf die Luftfeuchtigkeit, dh auf die höchstwertigen 16 Bit dieses Rahmens. Dann die anderen 2 verbleibenden 8-Bit-Gruppen für die Temperatur. Das heißt, es hat zwei Bytes für die Luftfeuchtigkeit und zwei Bytes für die Temperatur. Beispielsweise:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

In diesem Fall ist 0011 0101 0000 0010 der Feuchtigkeitswert und 0001 1000 0000 0000 die Temperatur. Ein erster Teil ist für den ganzzahligen Teil und der zweite Teil ist für Dezimalstellen. Wie für 0011 1001, das heißt, die Die letzten 8 Bit sind Parität Fehler vermeiden. Auf diese Weise können Sie überprüfen, ob während der Übertragung alles korrekt ist. Sie entspricht der Summe der vorherigen Bits. Wenn die Summe also der Parität entspricht, ist sie korrekt. In dem Beispiel, das ich gegeben habe, wäre es nicht, denn wie Sie sehen können, entspricht es nicht ... Das würde auf einen Fehler hinweisen.

Sobald dies bekannt ist, sind die Stifte die nächste technische Stufe des DHT11, die beachtet werden sollte. Das Kontakte oder Pinbelegung von diesem Gerät ist einfach, da es nur 4 von ihnen hat. Einer der Pins ist für Strom oder Vcc, der andere für E / A zur Datenübertragung, ein NC-Pin, der nicht verbunden ist, und GND für die Masseverbindung.

Integration mit Arduino

DHT11 mit Arduino verbinden

Sobald Sie die Pinbelegung des DHT11 kennen und auch Beim Arduino-Board ist die Verbindung sehr einfach. Denken Sie daran, dass, wenn Sie ein in eine Leiterplatte integriertes DHT11-Modul ausgewählt haben, die Pins drei sind, da die NC entfernt wird, um die Arbeit zu vereinfachen. Das einzige, was Sie tun müssen, ist, den Erdungsstift an einen der GND-Anschlüsse des Arduino anzuschließen, wie in der Abbildung im vorherigen Bild dargestellt.

Auf der anderen Seite sollte der Power Pin angeschlossen werden die 5V Verbindung von Arduino, Somit wird der Sensor vollständig mit GND und Vcc versorgt, aber jetzt fehlen die Daten. Um die Daten vom DHT11-Sensor auf die Arduino-Karte zu übertragen, können Sie jeden der digitalen Eingänge verwenden, z. B. die im Bild angezeigte 7 ... Jetzt haben Sie alles bereit, um sie zu verwenden, sobald Sie den erforderlichen Code in erstellt haben Arduino IDE ...

Wenn der Sensor in Ihrem Projekt weit entfernt ist und Sie ein Kabel verwenden, das länger als 20 Meter ist, verwenden Sie einen 5k-Pull-up-Widerstand. Bei größeren Kabeln sollte dieser proportional größer sein. Beachten Sie, dass das Kabel aufgrund von Spannungsabfällen nicht länger als 3,5 cm sein sollte, wenn Sie 5 V anstelle von 20 V verwenden.

Denken Sie daran, dass sie empfehlen alle 5 Sekunden messen, Die Abtastfrequenz, mit der der DHT11 arbeiten kann, ist zwar höher, aber wenn sie häufiger durchgeführt wird, ist sie möglicherweise nicht so genau.

Code in der Arduino IDE

Gehen Sie direkt zum Code und sagen Sie das in Arduino IDE Sie können eine Reihe vorhandener Bibliotheken mit Funktionen verwenden, die Ihnen das Leben mit dem DHT11 erleichtern. Zum Beispiel ist einer von ihnen derjenige, der bietet Adafruit. Denken Sie daran, dass wir einen Anfängerleitfaden haben, der mit Arduino in PDF beginnt und den Sie können kostenlos hier herunterladen und es kann dir helfen.

Sobald Sie die entsprechende Bibliothek installiert haben, können Sie einen Kommentar abgeben Code eingeben zur Steuerung des DHT11-Temperatur- und Feuchtigkeitssensors für Ihr Projekt mit Arduino. Beispielsweise:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.