cactus.io logo

How to Hookup DHT22 Temperature Sensor to Arduino Board

The DHT-22 is a low cost device for measuring humidity and temperature. The DHT sensors are made of two parts, a capacitive humidity sensor and a thermistor. The device requires a 3 to 5V power supply. It uses a single data wire to communicate back to the Arduino. It has a fairly slow update rate and should only be sampled every 2 seconds.

Images

DHT-22 Humidty Temperature Sensor
Note: Images shown on this page are not to scale.

Parts List

  • Arduino Board
  • DHT-22 Sensor or DHT-22 on Breakout Board
  • 10K Pullup Resistor if using DHT-22 Sensor without Breakout Board
  • Breadboard hookup wires
  • USB Cable to suite Arduino

Data Sheets


Wiring Diagram for connecting the DHT-22 to a Arduino Board

The wiring of the sensor to the Arduino depends on how the sensor was purchased. If the sensor was supplied mounted on a breakout board then it means we do not require the pull up resistor as its already pre installed on the board.


This sensor will run from 3.3V. So if you are using an Arduino Board that only has 3.3V then connect the power pin to the 3.3V output on the Arduino instead of 5V. This would be the red wire that is shown in the diagrams below.
Connect Arduino to Aosong DHT-22 Temperature Sensor Hookup

Breadboard Diagram for connecting the DHT-22 to a Arduino Board

Connect Arduino to Aosong DHT-22 Temperature Sensor Hookup

Software

To test this sensor we can use sample sketch shown below. You can download the sketch file and the cactus.io DHT22 library to communicate with the sensor. It reads the DHT22 every 2 seconds and prints the results to the console on the computer connected to the USB port on the Arduino.

We are using digital pin 2 to connect to the data pin on the sensor. If you are using a different digital pin then you will need to change the pin number defined on line 6 in the sketch code.

DHT22 Sample Sketch
Download as (Arduino Sketch) (Text File)
1
// Example sketch for DHT22 humidity - temperature sensor
2
// Written by cactus.io, with thanks to Adafruit for bits of their library. public domain
3
4
#include "cactus_io_DHT22.h"
5
6
#define DHT22_PIN 2 // what pin on the arduino is the DHT22 data line connected to
7
8
// For details on how to hookup the DHT22 sensor to the Arduino then checkout this page
9
// http://cactus.io/hookups/sensors/temperature-humidity/dht22/hookup-arduino-to-dht22-temp-humidity-sensor
10
11
// Initialize DHT sensor for normal 16mhz Arduino.
12
DHT22 dht(DHT22_PIN);
13
// Note: If you are using a board with a faster processor than 16MHz then you need
14
// to declare an instance of the DHT22 using
15
// DHT22 dht(DHT22_DATA_PIN, 30);
16
// The additional parameter, in this case here is 30 is used to increase the number of
17
// cycles transitioning between bits on the data and clock lines. For the
18
// Arduino boards that run at 84MHz the value of 30 should be about right.
18
19
void setup(){
20
Serial.begin(9600);
21
Serial.println("DHT22 Humidity - Temperature Sensor");
22
Serial.println("RH\tTemp (C)\tTemp (F)\tHeat Index (C)\tHeat Index (F)");
23
24
dht.begin();
25
}
26
27
void loop(){
28
// Reading temperature or humidity takes about 250 milliseconds!
29
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
30
dht.readHumidity();
31
dht.readTemperature();
32
33
// Check if any reads failed and exit early (to try again).
34
if (isnan(dht.humidity) || isnan(dht.temperature_C)) {
35
Serial.println("DHT sensor read failure!");
36
return;
37
}
38
39
Serial.print(dht.humidity); Serial.print(" %\t\t");
40
Serial.print(dht.temperature_C); Serial.print(" *C\t");
41
Serial.print(dht.temperature_F); Serial.print(" *F\t");
42
Serial.print(dht.computeHeatIndex_C()); Serial.print(" *C\t");
43
Serial.print(dht.computeHeatIndex_F()); Serial.println(" *F");
44
45
// Wait a few seconds between measurements. The DHT22 should not be read at a higher frequency of
46
// about once every 2 seconds. So we add a 3 second delay to cover this.
47
delay(3000);
48
}

Sketch Output

Connect Arduino to DHT22 Humidity - Temperature Sensor

License