

The DHT11 Temperature & Humidity Sensor (Manufacturer: Duinotech, Part ID: XC4520) is a digital sensor designed to measure temperature and humidity with reliable accuracy. It outputs data in a digital format, making it easy to interface with microcontrollers and other digital systems. The DHT11 is widely used in applications such as weather monitoring, HVAC systems, and home automation projects due to its simplicity and cost-effectiveness.








The DHT11 sensor is designed for low-cost and low-power applications. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.3V to 5.5V |
| Operating Current | 0.3mA (measuring), 60µA (standby) |
| Temperature Range | 0°C to 50°C |
| Temperature Accuracy | ±2°C |
| Humidity Range | 20% to 90% RH |
| Humidity Accuracy | ±5% RH |
| Sampling Period | 1 reading per second (1Hz) |
| Communication Protocol | Single-wire digital signal |
The DHT11 sensor has four pins, but only three are typically used in most applications. Below is the pinout description:
| Pin Number | Name | Description |
|---|---|---|
| 1 | VCC | Power supply (3.3V to 5.5V) |
| 2 | DATA | Digital data output (connect to microcontroller) |
| 3 | NC (Not Connected) | No connection (leave unconnected) |
| 4 | GND | Ground (0V reference) |
Below is a typical connection diagram for interfacing the DHT11 with an Arduino UNO:
Here is an example Arduino sketch to read temperature and humidity data from the DHT11 sensor:
#include <DHT.h>
// Define the DHT11 pin and type
#define DHTPIN 2 // Pin connected to the DATA pin of DHT11
#define DHTTYPE DHT11 // Specify the sensor type (DHT11)
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud
dht.begin(); // Initialize the DHT sensor
Serial.println("DHT11 Sensor Initialized");
}
void loop() {
delay(2000); // Wait 2 seconds between readings
// Read temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if readings are valid
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT11 sensor!");
return;
}
// Print the results to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% Temperature: ");
Serial.print(temperature);
Serial.println("°C");
}
No Data Output:
Incorrect or NaN Readings:
Slow Response:
Q: Can I use the DHT11 with a 3.3V microcontroller?
A: Yes, the DHT11 operates within a voltage range of 3.3V to 5.5V, making it compatible with both 3.3V and 5V systems.
Q: What is the maximum cable length for the DHT11?
A: The maximum cable length depends on the pull-up resistor value and environmental noise. Typically, a cable length of up to 20 meters is achievable with a 5V power supply and a 10kΩ pull-up resistor.
Q: How does the DHT11 compare to the DHT22?
A: The DHT22 offers a wider temperature and humidity range with higher accuracy but is more expensive. The DHT11 is suitable for basic applications where cost is a priority.
Q: Can I use multiple DHT11 sensors in one project?
A: Yes, you can use multiple sensors by connecting each DATA pin to a separate digital pin on your microcontroller.
By following this documentation, you can effectively integrate the DHT11 sensor into your projects for reliable temperature and humidity measurements.