

The DHT22 is a digital temperature and humidity sensor that provides accurate readings of temperature in Celsius and humidity in percentage. It is widely used in applications requiring environmental monitoring, such as weather stations, HVAC systems, greenhouses, and IoT projects. The DHT22 is known for its high precision and reliability, making it a popular choice for both hobbyists and professionals.








The DHT22 has four pins, but only three are typically used in most applications. Below is the pinout:
| Pin Number | Name | Description |
|---|---|---|
| 1 | VCC | Power supply pin (3.3V to 6V). Connect to the positive terminal of the power source. |
| 2 | DATA | Digital data pin. Used for communication with the microcontroller. Requires a pull-up resistor. |
| 3 | NC (Not Connected) | Not used. Leave this pin unconnected. |
| 4 | GND | Ground pin. Connect to the negative terminal of the power source. |
Below is an example of how to connect and use the DHT22 with an Arduino UNO:
// Include the DHT library for communication with the sensor
#include <DHT.h>
// Define the pin where the DATA pin of the DHT22 is connected
#define DHTPIN 2
// Define the type of DHT sensor (DHT22 in this case)
#define DHTTYPE DHT22
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start the serial communication for debugging
Serial.begin(9600);
Serial.println("DHT22 Sensor Initialization");
// Begin communication with the DHT sensor
dht.begin();
}
void loop() {
// Wait 2 seconds between readings to respect the sensor's sampling rate
delay(2000);
// Read temperature in Celsius
float temperature = dht.readTemperature();
// Read humidity in percentage
float humidity = dht.readHumidity();
// Check if the readings are valid
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the readings to the Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
}
No Data or Incorrect Readings
Sensor Fails to Initialize
Frequent NAN (Not a Number) Errors
Inconsistent Readings
Q: Can the DHT22 be powered with 3.3V?
A: Yes, the DHT22 can operate with a power supply voltage between 3.3V and 6V. However, ensure the microcontroller's logic level matches the sensor's output.
Q: What is the difference between the DHT11 and DHT22?
A: The DHT22 offers better accuracy, a wider temperature and humidity range, and faster response times compared to the DHT11. However, it is slightly more expensive.
Q: Can I use multiple DHT22 sensors in the same project?
A: Yes, you can use multiple DHT22 sensors by connecting each sensor's DATA pin to a separate digital pin on the microcontroller.
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.
Q: Why does the sensor require a 2-second delay between readings?
A: The DHT22 has a maximum sampling rate of 1 Hz (one reading per second). A 2-second delay ensures accurate and stable readings.