Using the DHT11 Sensor on the Raspberry Pi?

The DHT11 is a low-cost digital temperature and humidity sensor that can be easily interfaced with a Raspberry Pi. This sensor provides digital output of temperature and humidity readings, making it easy to integrate into Raspberry Pi projects.

Using the DHT11 Sensor on the Raspberry Pi?

In this comprehensive guide, we will cover everything you need to know about using the DHT11 with a Raspberry Pi, including:

  • DHT11 sensor basics
  • Wiring and connections
  • Installing the Adafruit DHT library
  • Reading temperature and humidity data in Python
  • Useful projects and next steps

DHT11 Sensor Basics

The DHT11 sensor contains a capacitive humidity sensor, thermistor, and a simple 8-bit microcontroller that provides digital outputs of temperature and humidity readings. Some key specs:

  • Power: 3-5V DC power and I/O
  • Sensing: 20-90% humidity, 0-50°C temperature
  • Accuracy: ±2°C, ±5% humidity
  • Interface: Digital output via single-bus communication

The digital output makes this an easy sensor for connecting to microcontrollers like the Raspberry Pi without needing any analog-to-digital conversion.

Wiring the DHT11 to a Raspberry Pi

Interfacing the DHT11 module with a Raspberry Pi is straightforward thanks to the digital output. Only three connections are needed:

DHT11 Pin 1 (VCC) – Connect to Raspberry Pi 5V or 3.3V power pin
DHT11 Pin 2 (DATA) – Connect to any GPIO pin
DHT11 Pin 4 (GND) – Connect to Raspberry Pi ground

Here is a circuit diagram showing how to connect the DHT11 to a Raspberry Pi:

Make sure to check your DHT11 datasheet to verify the pinout matches the above.

Installing the Adafruit DHT Library

To read data from the DHT11, we will use the popular Adafruit DHT library for Python.

Follow these steps to install this library:

  1. Update and upgrade packages:

sudo apt-get update

sudo apt-get upgrade

Enable SPI interface in Raspi Config if it is not already enabled.

Install system dependencies:
sudo apt-get install build-essential python-dev python-opens’

Install the library:

  1. pip3 install Adafruit_DHT

The library should now be installed and ready to import in Python scripts.

Reading the DHT11 in Python

Here is a simple Python 3 script to read temperature and humidity data from the DHT11 sensor connected to your Raspberry Pi:


import Adafruit_DHT

import time

sensor = Adafruit_DHT.DHT11

pin = 4 

while True:

    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

    if humidity is not None and temperature is not None:

        print(“Temp={0:0.1f}*C  Humidity={1:0.1f}%”.format(temperature, humidity))


        print(“Failed to retrieve data from sensor”)

 time. Sleep(2)

Let’s break this script down:

  • We begin by importing the Adafruit_DHT library and time library
  • The sensor type is defined as DHT11 and the data pin connected to GPIO4 is specified
  • Inside an infinite while loop:
    • Temperature and humidity readings are read from the sensor
    • If values are successfully read, they are printed
    • If reading fails, an error message prints
    • A 2 second delay is added before repeating

And that’s all there is to reading temperature and humidity data from the sensor!

This script can easily be adapted to store sensor data, trigger events based on certain values, or integrate into Python applications.

DHT11 Projects and Next Steps

Now that you know how to interface a DHT11 with a Raspberry Pi, here are some project ideas and next steps:

  • Create a simple weather station to record temperature/humidity over time
  • Build a temperature-activated fan that turns on above a specified temp
  • Integrate temperature and humidity readings into a Hydroponics monitoring system
  • Interface readings with an MQTT broker like Adafruit IO for IoT applications
  • Create timelapse visualizations of environmental data with Python

Additionally, this same process applies to other DHTxx sensors with minor tweaks to the library and data pin. Sensors like the DHT22 provide higher accuracy temperature and humidity readings.

I hope you found this DHT11 Raspberry Pi tutorial helpful. Let me know if you have any other questions!

Key Takeaways

  • The DHT11 is an easy-to-use digital temperature and humidity sensor
  • Minimal wiring is required to interface with a Raspberry Pi
  • The Adafruit DHT Python library allows reading the sensor
  • Sample Python script demonstrates getting humidity and temp data
  • Many project applications exist for environmental measurements


The DHT11 provides an inexpensive way to get digital temperature and humidity measurements in your Raspberry Pi projects. With simple wiring to connect the sensor, installation of the Adafruit Python library, and a few lines of code, you can easily read ambient environmental conditions.

Use the DHT11 to create weather stations, HVAC monitors, hydroponics rigs, and other IoT devices. And the process outlined here allows you to swap other DHTxx sensors for higher accuracy measurements.

So when your next Raspberry Pi project calls for reading environmental data, reach for this simple single-wire sensor.

Frequently Asked Questions

  1. What type of communication protocol does the DHT11 use?
    The DHT11 uses a simple single-wire half-duplex communication protocol to transmit temperature and humidity readings.

  2. Do I need any external components other than wires to connect to the Raspberry Pi?
    No, the data pin from the sensor can connect directly to the Raspberry Pi GPIO with no other external components required.

  3. How accurate are the readings from the DHT11?
    The DHT11 provides ±2°C temperature accuracy and ±5% humidity accuracy. For more precise readings, consider using the DHT22 sensor instead.

  4. Why does my DHT11 only work sporadically or stop working on a Raspberry Pi?
    Issues are often due to inadequate power to the sensor. Make sure 5V or 3.3V pin is used to power the VCC pin properly.

  5. Can I use multiple DHT11 sensors on one Raspberry Pi?
    Yes, you can connect multiple DHT11 sensors on different data pins and uniquely address them in software by passing the GPIO pin number used.

  6. Is it safe for my Raspberry Pi or DHT11 if I accidentally connect VCC and a GPIO pin?
    No, sending power into a GPIO pin can damage both the sensor and Raspberry Pi. Double check wiring before powering on.

  7. How far can I place the DHT11 sensor away from my Raspberry Pi board?
    The maximum distance is influenced by wire gauge and data speeds but generally less than 20 meters with precautions.

  8. Do I need something like improved ventilation along with the DHT11 readings in a greenhouse?
    Yes, simply having temperature/humidity readings is useful but actually being able to control the environment is also important for most greenhouse applications.

  9. Can this sensor be used in liquid to detect water temperature changes?
    No, moisture can damage the internals of the DHT11. Waterproof enclosures or different sensor designs better suit liquid temperature monitoring.

  10. What real-world factors might influence my sensor readings?
    Sensor location, airflow, direct sunlight, self-heating, thermal masses, and fluctuations require consideration for the most representative data collection.

  11. How frequently should calibration be performed on the DHT11?
    Annual calibration checks are recommended if actively monitoring thresholds for control systems. Otherwise, allowing for measurement error margins in software is simpler.

  12. What GPIO pins on the Raspberry Pi can I use to connect the data pin of the sensor?
    Any GPIO pin can interface with the data pin besides pins 3, 5, 7, 8, 10, 11, 12, 13, 15 which have special alternate functions that could interfere.

  13. Can I tap the libraries used here to work with similar sensors?
    Yes, the Adafruit DHT library supports DHT11, DHT22, AM2302 and other sensors with compatibility modes available for major differences in calibration or access methodology.

Leave a Comment