Grove temperature humidity sensors
Introduction¶
This page covers the low cost DHT temperature & humidity sensors. These sensors are very basic and slow, but are great for some basic data logging. The DHT sensors are made of two parts, a capacitive humidity sensor and a thermistor. There is also a very basic chip inside that does some analog to digital conversion and spits out a digital signal with the temperature and humidity. The digital signal is fairly easy to read using any microcontroller.
Product Specifications¶
There are different versions of the DHT sensor, they look a bit similar and have the same pinout, but have different characteristics.
DHT11¶
- Power Supply: 3 to 5V DC, 2.5mA max current use during conversion (while requesting data)
- Operating range: Good for 20-80% humidity readings with 5% accuracy
- Good for 0-50°C temperature readings ±2°C accuracy
- No more than 1 Hz sampling rate (once every second)
- Body size: 15.5mm x 12mm x 5.5mm
DHT22¶
- 3 to 5V power and I/O 2.5mA max current use during conversion (while requesting data)
- Good for 0-100% humidity readings with 2-5% accuracy
- Good for -40 to 125°C temperature readings ±0.5°C accuracy
- No more than 0.5 Hz sampling rate (once every 2 seconds)
- Body size: 15.1mm x 25mm x 7.7mm
The DHT22 is a little more accurate. All sensors have a low sampling rate.
Different names¶
They come in different packages, breakoutboards:
- most common : DHT11, DHT22
- SEN11301P, Grove - Temperature&Humidity Sensor (Seeed Studio)
- SEN51035P, Grove - Temperature&Humidity Sensor Pro (Seeed Studio)
- AM2302 , temperature-humidity sensor
- RHT03 , Humidity and Temperature Sensor
Wiring / Connectivity¶
Connection of the SEN11301P or SEN51035P:
- black - GND (Ground)
- red - VCC (3 to 5V power)
- white - NC (not connected)
- yellow - SIG (Signal or data)
Connection of the DHT11 or DHT22:
Don't forget to place a 5K or 4k7 resistor between VCC and the data pin, to act as a medium-strength pull up on the data line.
- pin 1 - VCC (3 to 5V power)
- pin 2 - Data
- pin 3 - NC (not connected)
- pin 4 - GND
Library¶
Test Code¶
#include "mbed.h" #include "DHT.h" DigitalOut myled(LED1); DHT sensor(p23,SEN11301P); // Use the SEN11301P sensor int main() { int err; printf("\r\nDHT Test program"); printf("\r\n******************\r\n"); wait(1); // wait 1 second for device stable status while (1) { myled = 1; err = sensor.readData(); if (err == 0) { printf("Temperature is %4.2f C \r\n",sensor.ReadTemperature(CELCIUS)); printf("Temperature is %4.2f F \r\n",sensor.ReadTemperature(FARENHEIT)); printf("Temperature is %4.2f K \r\n",sensor.ReadTemperature(KELVIN)); printf("Humidity is %4.2f \r\n",sensor.ReadHumidity()); printf("Dew point is %4.2f \r\n",sensor.CalcdewPoint(sensor.ReadTemperature(CELCIUS), sensor.ReadHumidity())); printf("Dew point (fast) is %4.2f \r\n",sensor.CalcdewPointFast(sensor.ReadTemperature(CELCIUS), sensor.ReadHumidity())); } else printf("\r\nErr %i \n",err); myled = 0; wait(5); } }
Output¶