INHALT
In dieser Übersicht werden wir uns die Pinbelegung und die Eigenschaften des DHT22 Temperatur- und Feuchtigkeitssensor für den Arduino-Mikrocontroller ansehen. Schauen wir uns Beispielprogramme an, um die Temperatur zu messen und die Informationen auf dem OLED-Display auszugeben. Sie können den LCD-Bildschirm mit I2C verwenden, den wir verwendet haben, als wir den DHT11-Temperatursensor angeschlossen haben.
Bestandteile:
- Arduino Uno / Arduino Nano / Arduino Mega
- DHT22 Temperatur- und Feuchtigkeitssensor
- LEDs und Widerstände
- OLED-Display 128×64
- Breadboard
- Dupont-Kabel
- Bibliothek DHT.h und OLED_I2C.h
Bei den meisten Arduino-Projekten geht es darum, Daten über die Umgebung zu sammeln – zum Beispiel mit Wetterstationen. Diese verwenden in der Regel einen preiswerten, aber ungenauen DHT11 Sensor, der nur die Temperatur recht genau misst und die Luftfeuchtigkeit nur indirekt von der Umgebung abhängig ist. Wenn Sie also wirklich genaue Messungen benötigen, ist es besser, den DHT22-Sensor zu verwenden.
DHT22 Temperatur und Feuchtigkeitssensor pinout, datasheet
Merkmale des DHT22 Temperatur und Feuchtigkeitssensor (datasheet)
- Versorgungsspannung: 3 – 5 V
- Luftfeuchtigkeit (relativ %): 0 – 100%
- Genauigkeit (Luftfeuchtigkeit): +/- 2%
- Temperatur: -40 – +150°C
- Genauigkeit (Temperatur): +/- 0,5°C
- Maximale Messfrequenz: 2 Hz (2 Messungen pro Sekunde)
Der AM2302 (DHT22) Temperatur- und Feuchtigkeitssensor kann mit 3,3 bis 6 V betrieben werden, was bedeutet, dass er mit allen Arduino-Boards verwendet werden kann. Der Sensor verwendet ein Ein-Draht-Protokoll für die Kommunikation und der Messbereich ist -40°C bis 80°C und 0 bis 100% Feuchtigkeit. Typische Fehler sind ±2% Feuchtigkeit und weniger als 0,5°C Temperatur. Der DHT22 bietet die höchste Genauigkeit aller Sensoren.
Wie man einen DHT22 Temperatur und Feuchtigkeitssensor
Der Schaltplan des Temperatur- und Feuchtigkeitssensors DHT22 unterscheidet sich nicht vom Beispiel des DHT11-Sensors und das Programm unterscheidet sich durch eine Zeile, in der wir den Sensortyp angeben. Wenn Sie die Schaltung mit LEDs und DHT22 (AM2302) wie im Bild gezeigt aufgebaut haben, laden Sie das folgende einfache Beispielprogramm mit der Universalbibliothek DHT.h, die für diese beiden Modelle geeignet ist.
Programm für DHT22 Temperatur und Feuchtigkeitssensor
#include "DHT.h" DHT dht(2, DHT11); #define RED 12 #define BLU 10 void setup() { dht.begin(); Serial.begin(9600); pinMode(RED, OUTPUT); pinMode(BLU, OUTPUT); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Humidity: "); Serial.println(h); Serial.print("Temperature: "); Serial.println(t); if (t < 24) {digitalWrite(RED, LOW); digitalWrite(BLU, HIGH);} if (t > 24) {digitalWrite(RED, HIGH); digitalWrite(BLU, LOW);} }
- Wenn Sie die Werte für Temperatur und Luftfeuchtigkeit ohne Dezimalstellen erhalten möchten, verwenden Sie den Datentyp int statt float;
- Die Bedingungen für das Ein- und Ausschalten der LEDs können geändert werden.
Anschließen eines DHT22-Sensors Arduino mit OLED-Display
OLED 128×64 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VDD | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
Beachten Sie, dass die Pinbelegung des Moduls je nach Hersteller variieren kann. Wenn die Stromversorgung nicht korrekt angeschlossen ist, kann der Sensor nicht richtig funktionieren. Das OLED-Display-Modul wird über den i2c-Bus an den Pins SDA (A4) und SCL (A5) auf den Arduino Uno und Nano Boards mit dem Arduino verbunden. Beim Arduino Mega 2560 ist das Display über die Pins SDA (20) und SCL (21) mit dem i2c verbunden.
Programm für DHT22-Sensors Arduino und OLED-Display
#include "DHT.h" DHT dht(2, DHT11); #include "OLED_I2C.h" OLED myOLED(SDA, SCL, 8); extern uint8_t BigNumbers[]; void setup() { dht.begin(); myOLED.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); myOLED.setFont(MediumNumbers); myOLED.print(String(t), LEFT, 5); myOLED.update(); myOLED.setFont(MediumNumbers); myOLED.print(String(h), LEFT, 25); myOLED.update(); delay(1000); }
- Die Bibliothek OLED.h verbraucht viel Speicher des Arduino Mikrocontrollers, um die Schriftarten zu laden;
- Variablen werden mithilfe eines String-Objekts OLED 0.96 angezeigt.
Schlussfolgerung. In dieser Übersicht haben wir gesehen, wie man den DHT22 an den Arduino anschließt und welche Eigenschaften der Sensor hat. Wir haben einige Beispielprogramme vorgestellt, um Informationen vom digitalen Sensor an den Arduino IDE Monitor und OLED 0,96 Display zu übertragen. Es gibt viele Wetterstationsprojekte mit dem DHT 22 Temperatur- und Luftfeuchtigkeitssensor, die Sie selbst erstellen können.
Schreibe einen Kommentar