The DHT11 is a digital temperature and humidity sensor that provides accurate readings of temperature in Celsius and humidity in percentage. It is a low-cost, easy-to-use sensor that outputs calibrated digital signals, making it ideal for a wide range of applications. The DHT11 is commonly used in weather stations, HVAC systems, greenhouses, and other projects requiring environmental monitoring. Its compact size and low power consumption make it suitable for embedded systems and IoT applications.
The DHT11 sensor has four pins, but typically only three are used in most applications. Below is the pinout:
Pin Number | Name | Description |
---|---|---|
1 | VCC | Power supply pin (3.3V to 5.5V) |
2 | DATA | Digital data output pin (requires a pull-up resistor, typically 10kΩ) |
3 | NC (Not Connected) | No internal connection (leave unconnected) |
4 | GND | Ground pin |
Below is an example code to read temperature and humidity data from the DHT11 using the Arduino UNO. This code uses the popular DHT
library.
#include <DHT.h>
// Define the pin where the DHT11 is connected
#define DHTPIN 2 // Pin 2 is connected to the DATA pin of DHT11
// Define the type of DHT sensor
#define DHTTYPE DHT11 // DHT11 sensor
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // Start the serial communication
Serial.println("DHT11 Sensor Initialization");
dht.begin(); // Initialize the DHT sensor
}
void loop() {
delay(2000); // Wait 2 seconds between readings
// Read humidity and temperature
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 results 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:
"Failed to read from DHT sensor!" Error:
Inconsistent Readings:
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 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.
Q: What is the difference between the DHT11 and DHT22?
A: The DHT22 offers a wider temperature and humidity range with higher accuracy compared to the DHT11, but it is more expensive.
Q: How do I extend the cable length for the DHT11?
A: Use shielded cables and keep the length as short as possible. Adding a capacitor (e.g., 100nF) near the sensor can help stabilize the signal.
By following this documentation, you can effectively integrate the DHT11 sensor into your projects for reliable temperature and humidity monitoring.