

The DHT11, manufactured by ME with part ID "UNO," is a basic, low-cost digital temperature and humidity sensor. It provides accurate readings of temperature in Celsius and humidity in percentage. The DHT11 is widely used in applications requiring environmental monitoring due to its simplicity and reliability. It communicates via a single-wire digital interface, making it easy to integrate into microcontroller-based projects.








The DHT11 sensor is designed for low-power, high-accuracy environmental sensing. 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 second |
| Communication Interface | Single-wire digital |
The DHT11 has four pins, but only three are typically used in most applications. Below is the pinout:
| 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 (leave unconnected) |
| 4 | GND | Ground (0V reference) |
Below is an example of how to use the DHT11 with an Arduino UNO. This code uses the popular DHT library.
// Include the DHT library for easy communication with the sensor
#include <DHT.h>
// Define the pin connected to the DHT11 DATA pin
#define DHTPIN 2
// Define the type of DHT sensor (DHT11 in this case)
#define DHTTYPE DHT11
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start the serial communication for debugging
Serial.begin(9600);
Serial.println("DHT11 Sensor Initialization");
// Initialize the DHT sensor
dht.begin();
}
void loop() {
// Wait a second between readings (DHT11 requires a 1-second delay)
delay(1000);
// Read temperature and humidity from the sensor
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");
}
No Data or Incorrect Readings:
Frequent Communication Errors:
Sensor Not Responding:
Q: Can the DHT11 measure negative temperatures?
A: No, the DHT11 can only measure temperatures in the range of 0°C to 50°C.
Q: Can I use the DHT11 outdoors?
A: The DHT11 is not waterproof and should not be exposed to direct rain or extreme environmental conditions. Use a protective enclosure if deploying outdoors.
Q: What is the maximum cable length for the DHT11?
A: The recommended maximum cable length is 20 meters, but shorter lengths are preferred for better signal integrity.
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 3.3V systems.