So Verbinden Sie Den DHT11 Temperatur- Und Feuchtigkeitssensor Mit Arduino

Inhaltsverzeichnis:

So Verbinden Sie Den DHT11 Temperatur- Und Feuchtigkeitssensor Mit Arduino
So Verbinden Sie Den DHT11 Temperatur- Und Feuchtigkeitssensor Mit Arduino

Video: So Verbinden Sie Den DHT11 Temperatur- Und Feuchtigkeitssensor Mit Arduino

Video: So Verbinden Sie Den DHT11 Temperatur- Und Feuchtigkeitssensor Mit Arduino
Video: Arduino Uno и Датчик температуры и влажности DHT11 (DHT22) 2024, November
Anonim

Der Temperatur- und Feuchtigkeitssensor DHT17 ist ein beliebter und günstiger Sensor, der über einen ziemlich breiten Temperatur- und relativen Feuchtigkeitsbereich verwendet werden kann. Mal sehen, wie man es mit dem Arduino verbindet und wie man Daten daraus liest.

DHT11 Temperatur- und Feuchtigkeitssensor
DHT11 Temperatur- und Feuchtigkeitssensor

Notwendig

  • -Arduino;
  • - DHT17 Temperatur- und Feuchtigkeitssensor.

Anleitung

Schritt 1

Der DHT11-Sensor hat also die folgenden Eigenschaften:

- Bereich der gemessenen relativen Luftfeuchtigkeit - 20..90% mit einem Fehler von bis zu 5%, - Bereich der gemessenen Temperaturen - 0..50 Grad Celsius mit einem Fehler von bis zu 2 Grad;

- Reaktionszeit auf Feuchtigkeitsänderungen - bis zu 15 Sekunden, Temperatur - bis zu 30 Sekunden;

- Die Mindestabfragezeit beträgt 1 Sekunde.

Wie Sie sehen, ist der DHT11-Sensor nicht sehr genau und der Temperaturbereich deckt keine negativen Werte ab, was für Außenmessungen in der kalten Jahreszeit in unserem Klima kaum geeignet ist. Die geringen Kosten, die geringe Größe und die einfache Handhabung gleichen diese Nachteile jedoch teilweise aus.

Die Abbildung zeigt das Aussehen des Sensors und seine Abmessungen in Millimetern.

Aussehen und Abmessungen des DHT11-Sensors
Aussehen und Abmessungen des DHT11-Sensors

Schritt 2

Betrachten Sie das Anschlussdiagramm des DHT11 Temperatur- und Feuchtigkeitssensors zum Mikrocontroller, insbesondere zum Arduino. Auf dem Bild:

- MCU - Mikrocontroller (z. B. Arduino oder ähnlich) oder Einplatinencomputer (Raspberry Pi oder ähnlich);

- DHT11 - Temperatur- und Feuchtigkeitssensor;

- DATEN - Datenbus; wenn die Länge des Verbindungskabels vom Sensor zum Mikrocontroller 20 Meter nicht überschreitet, wird empfohlen, diesen Bus mit einem 5, 1 kOhm-Widerstand an die Stromversorgung zu ziehen; wenn mehr als 20 Meter, dann ein anderer geeigneter Wert (kleiner).

- VDD - Sensorversorgung; zulässige Spannungen von ~ 3,0 bis ~ 5,5 Volt DC; Wenn eine Stromversorgung von ~ 3,3 V verwendet wird, ist es ratsam, eine Zuleitung von nicht mehr als 20 cm Länge zu verwenden.

Eine der Sensorleitungen - die dritte - ist mit nichts verbunden.

Der DHT11-Sensor wird oft als komplette Baugruppe mit der notwendigen Verrohrung verkauft - Pull-up-Widerstand und Filterkondensator.

Diagramm zum Anschluss des DHT11-Sensors an den Mikrocontroller
Diagramm zum Anschluss des DHT11-Sensors an den Mikrocontroller

Schritt 3

Lassen Sie uns das betrachtete Schema zusammenstellen. Ich werde auch einen Logikanalysator an die Schaltung anschließen, damit ich das Zeitdiagramm der Kommunikation mit dem Sensor studieren kann.

DHT11-Sensor und Arduino
DHT11-Sensor und Arduino

Schritt 4

Gehen wir den einfachen Weg: Laden Sie die Bibliothek für den DHT11-Sensor herunter (Link im Abschnitt "Quellen"), installieren Sie sie auf die übliche Weise (entpacken Sie sie in das Verzeichnis \bibliotheken\ der Arduino-Entwicklungsumgebung).

Schreiben wir so eine einfache Skizze. Laden wir es in Arduino. Diese Skizze gibt alle 2 Sekunden die vom DHT11-Sensor gelesenen RH- und Temperaturmeldungen an den seriellen Port des Computers aus.

Skizze zum Arbeiten mit einem DHT11 Temperatur-Feuchte-Sensor
Skizze zum Arbeiten mit einem DHT11 Temperatur-Feuchte-Sensor

Schritt 5

Lassen Sie uns nun anhand des vom Logikanalysator erhaltenen Zeitdiagramms herausfinden, wie der Informationsaustausch durchgeführt wird.

Der Temperatur- und Feuchtigkeitssensor DHT11 verwendet eine serielle Single-Wire-Schnittstelle, um mit dem Mikrocontroller zu kommunizieren. Ein Datenaustausch dauert ca. 40 ms und beinhaltet: 1 Anfragebit vom Mikrocontroller, 1 Bit der Sensorantwort und 40 Datenbits vom Sensor. Die Daten umfassen: 16 Bit Feuchtigkeitsinformationen, 26 Bit Temperaturinformationen und 8 Prüfbits.

Schauen wir uns das Timing-Diagramm der Arduino-Kommunikation mit dem DHT11-Sensor genauer an.

Aus der Abbildung ist ersichtlich, dass es zwei Arten von Impulsen gibt: kurze und lange. Kurze Impulse in diesem Austauschprotokoll bezeichnen Nullen, lange Impulse - Einsen.

Die ersten beiden Impulse sind also die Anfrage des Arduino an DHT11 und dementsprechend die Antwort des Sensors. Als nächstes kommen 16 Bit Feuchtigkeit. Außerdem sind sie in Bytes unterteilt, hoch und niedrig, links hoch. Das heißt, in unserer Abbildung sind die Feuchtigkeitsdaten wie folgt:

0001000000000000 = 00000000 00010000 = 0x10 = 16% r. F.

Temperaturdaten ähnlich wie:

0001011100000000 = 00000000 00010111 = 0x17 = 23 Grad Celsius.

Prüfbits - die Prüfsumme ist nur die Summe von 4 empfangenen Datenbytes:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 binär oder 16 + 23 = 39 dezimal.

Empfohlen: