Pin | Funktion |
---|---|
1 | Vdd (3,3V - 5,5V) |
2 | SDA (serielle Daten) |
3 | -nicht belegt- |
4 | GND (Ground/Masse) |
Laut dem Datenblatt für den DHT22 muss am Daten-Pin ein Pullup-Widerstand von 5,1kΩ verwendet werden. Hier
wird ein 4,7kΩ-Widerstand benutzt, da dieser gebräuchlicher und evtl. leider zur Hand ist.
Unter Umständen kann dieser externe Pullup-Widerstand auch weggelassen werden, wenn die unten verwendete
Library benutzt wird. Diese verwendet nämlich den internen Pullup des Arduinos und liefert dieselben Ergebnisse
auch ohne externen Pullup.
Für diesen Sketch werden zwei externe Libraries benötigt: Adafruit DHT-Sensor und Adafruit Unified Sensor.
#include "DHT.h"
#define DHTTYPE DHT22
#define PIN_DHT22 2
DHT dht(PIN_DHT22, DHTTYPE);
float humidity, temperature;
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
humidity = dht.readHumidity();
temperature = dht.readTemperature();
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("%, Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(1000);
}
Der zweite Sketch macht prinzipiell dasselbe, nur mit dem Unterschied, dass die ermittelten Werte mit Leerzeichen getrennt an die serielle Schnittstelle geschickt werden. Dadurch kann man den seriellen Plotter der Arduino-IDE als grafische Ausgabe der Messwerte verwenden.
#include "DHT.h"
#define DHTTYPE DHT22
#define PIN_DHT22 2
DHT dht(PIN_DHT22, DHTTYPE);
float humidity, temperature;
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
humidity = dht.readHumidity();
temperature = dht.readTemperature();
Serial.print(humidity);
Serial.print(" ");
Serial.println(temperature);
delay(1000);
}
zurück