

The DHT22, manufactured by DFRobot, is a digital temperature and humidity sensor designed for precise environmental monitoring. It provides accurate readings of temperature in Celsius and relative humidity in percentage. The DHT22 is widely used in applications such as weather stations, HVAC systems, greenhouses, and IoT-based environmental monitoring systems. Its ease of use, low power consumption, and reliable performance make it a popular choice for both hobbyists and professionals.








The DHT22 sensor offers the following key technical details:
| Parameter | Value |
|---|---|
| Supply Voltage | 3.3V to 6V |
| Operating Current | 0.3mA (measuring), 60µA (standby) |
| Temperature Range | -40°C to +80°C |
| Temperature Accuracy | ±0.5°C |
| Humidity Range | 0% to 100% RH |
| Humidity Accuracy | ±2% RH |
| Sampling Period | 2 seconds |
| Communication Protocol | Single-wire digital signal |
| Dimensions | 15.1mm x 25mm x 7.7mm |
The DHT22 has four pins, as described in the table below:
| Pin Number | Name | Description |
|---|---|---|
| 1 | VCC | Power supply pin (3.3V to 6V) |
| 2 | DATA | Digital data output pin for temperature and humidity |
| 3 | NC | Not connected (leave unconnected) |
| 4 | GND | Ground pin |
Note: A pull-up resistor (typically 10kΩ) is required on the DATA pin for proper communication.
Below is an example of how to use the DHT22 with an Arduino UNO. This code uses the popular DHT library.
// Include the DHT library
#include <DHT.h>
// Define the DHT22 pin and type
#define DHTPIN 2 // Pin connected to the DATA pin of DHT22
#define DHTTYPE DHT22 // Specify the sensor type (DHT22)
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // Start serial communication
Serial.println("DHT22 Sensor Initialization");
dht.begin(); // Initialize the DHT sensor
}
void loop() {
delay(2000); // Wait 2 seconds between readings
// Read temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if the readings are valid
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the readings to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
}
Note: Install the
DHTlibrary in the Arduino IDE by navigating to Sketch > Include Library > Manage Libraries, then search for "DHT" and install the library by Adafruit.
No Data or Incorrect Readings:
Frequent Communication Errors:
Sensor Not Responding:
#define DHTPIN).Q: Can the DHT22 measure negative temperatures?
A: Yes, the DHT22 can measure temperatures as low as -40°C.
Q: What is the maximum cable length for the DHT22?
A: The recommended maximum cable length is 20 meters, but this depends on the pull-up resistor value and environmental noise. For longer distances, use a lower pull-up resistor value (e.g., 4.7kΩ).
Q: Can I use the DHT22 with a 3.3V microcontroller?
A: Yes, the DHT22 is compatible with both 3.3V and 5V systems.
Q: How do I protect the sensor in outdoor environments?
A: Use a weatherproof enclosure with proper ventilation to protect the sensor from rain and direct sunlight while allowing air circulation.
By following this documentation, you can effectively integrate the DHT22 sensor into your projects for reliable temperature and humidity monitoring.