cactus.io logo

How to Hookup Keyes AM2302 DHT22 Humidity Temperature Module

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

Keyes DHT-22 (AM2302 - RHT03) Humidity Temperature Module
Note: Images shown on this page are not to scale.

Parts List

  • Arduino Board
  • Keyes AM2302 DHT-22 Temperature Humidity Sensor Module
  • Breadboard hookup wires
  • USB Cable to suite Arduino

Data Sheets


Wiring Diagram for connecting Keyes AM2302 DHT-22 Module to a Arduino Board

Connect Arduino to Aosong DHT-22 Breakout Board Temperature Sensor Hookup

The breakout board already has the pullup resistor installed so we do not need to connect a resistor to our circuit.

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.

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.

Keyes AM2302 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