Weather Sensors, Between DHT11 and DHT22

Weather Sensors, Between DHT11 and DHT22

I've always wondered if there were any real differences between temperature and humidity sensors, especially DHT11 and DHT22.

  • 5,212 views
  • 2 comments
  • 12 respects

Components and supplies

Apps and online services

About this project

When I saw the difference between price and specification, thought it was only about range. I decided to do a test on both of them to figure out the truth.

After this little project and many tests, I discovered that there's a huge difference, even in precision and data.

DHT11 Test

DHT22

It's near to reality so it's too much better...

Code

CodeArduino
Just download the dht library and chose the dht type
#include "DHT.h"

#define DHTPIN 3     // what digital pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
}

Schematics

arduino_dht22_naR9OAW33d.png
Arduino dht22 nar9oaw33d

Comments

Similar projects you might like

Using DHT11

by Arca_Ege

  • 2,861 views
  • 1 comment
  • 15 respects

iShield Weather Station

Project tutorial by Victor Carreño

  • 6,221 views
  • 0 comments
  • 14 respects

Weather Station with Thingspeak

Project showcase by Tittiamo

  • 3,011 views
  • 2 comments
  • 6 respects

DHT11 Temperature/Humidity Sensor

Project tutorial by Zachary Haslam

  • 13,134 views
  • 1 comment
  • 30 respects

Weather Station v.1.0

Project showcase by derapados

  • 10,388 views
  • 3 comments
  • 36 respects
Add projectSign up / Login