Description
DHT22 Temperature and Humidity Sensor
The DHT22 is a digital temperature and relative-humidity sensor. It uses a capacitive humidity element and a thermistor for temperature, and provides digital readings to microcontrollers such as Arduino.
Specifications
- Temperature range: −40 °C to +80 °C (as stated in the source listing)
- Temperature accuracy: ±0.5 °C
- Humidity range: 0–100% RH
- Humidity accuracy: ±2% RH
- Operating voltage: 3.5–5.5 V
- Current: up to 2.5 mA during conversion
- Data output: digital single-wire protocol
- Sampling rate: 0.5 Hz (one reading every two seconds)
How it works
An onboard microcontroller converts the temperature and humidity readings into a digital signal that can be read by a compatible microcontroller.
Applications
- Local weather stations
- Automatic climate-control systems
- Environmental monitoring
- Educational and hobby projects
Pinout
The DHT22 may be supplied as a bare sensor or as a module; check the pin labels and arrangement on your version.
- VCC: 3.5–5.5 V supply
- Data: digital data output
- NC: not connected (on the bare 4-pin version)
- GND: ground
Using it with Arduino Uno
Basic example
#include "DHT.h"
#define DHTPIN 2 // Broche à laquelle le capteur est connecté
#define DHTTYPE DHT22 // Définir le type de capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Échec de lecture !");
return;
}
Serial.print("Humidité: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Température: ");
Serial.print(t);
Serial.println(" *C");
delay(2000);
}
Advanced example with I2C LCD
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2 // Broche à laquelle le capteur est connecté
#define DHTTYPE DHT22 // Définir le type de capteur
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
lcd.setCursor(0, 0);
lcd.print("Échec de lecture!");
Serial.println("Échec de lecture !");
return;
}
lcd.setCursor(0, 0);
lcd.print("Hum: ");
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
Serial.print("Humidité: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Température: ");
Serial.print(t);
Serial.println(" *C");
delay(2000);
}
Advanced-example wiring
- DHT22 VCC: Arduino 5 V
- DHT22 Data: Arduino pin 2, with a 10 kΩ pull-up resistor
- DHT22 GND: Arduino GND
- LCD VCC/GND: Arduino 5 V/GND
- LCD SDA/SCL: Arduino A4/A5
Library installation
- In the Arduino IDE, open Sketch → Include Library → Manage Libraries.
- Search for
DHT sensor libraryby Adafruit and install it. - For the LCD example, search for and install
LiquidCrystal_I2C.
Keywords: DHT22 temperature sensor, humidity sensor, relative humidity, Arduino weather sensor.












