Humidity et Temperature Sensor Module DHT11

Humidity et Temperature Sensor Module DHT11
Humidity et Temperature Sensor Module DHT11 Humidity et Temperature Sensor Module DHT11 Humidity et Temperature Sensor Module DHT11 Humidity et Temperature Sensor Module DHT11
Disponibilité: En stock
Ajouter au comparateur | Ajouter le produit à votre liste d'envie

 PROJECT: Temperature and Humidity Display
This project will show air temperature in C and F, and % Humidity on an LCD display. The parts that make up this system are:
  • An Arduino
  • A DHT11 Humidity and Temperature Sensor (uses only 1 Arduino pin)
  • An I2C interface LCD Display ( uses only 2 Arduino pins) NOTE: This examples uses the Version 1 Display shown on this page:Humidity-Temp-Display1-500.jpg
    • A Sensor Shield 
    • Cables (free with Sensor/Display)
  • The Software Sketch below


DHT-22 Humidity-Temperature Sensor

Here we will show how to connect Arduino to an electronic sensor to make these measurements: The DHT11  and DHT22 are relative cheap sensors for measuring temperature and humidity. The DHT22 is similar to the DHT11 but has a greater accuracy and temperature range. (DHT22 shown on right, DHT11 above).(Available here)

The DHT11/22 has three lines, +5V ,a single Signal line, and GND. The connections are as shown on the right photo. NOTE: The third pin is unused. By means of a handshake the values are clocked out over the single signal line. The data formats are different but a library (below, by Rob Tillaart) makes these easy for you to use. More details and updates will be found on Rob's page on the Arduino Playground.

To use these sensors, you have to connect them to V (Arduino +5V), S (An Arduino I/O pin), and G (Arduino GND).

Software Sketch for Temperature and Humidity Display

/* Example Software Sketch
   DHT11 Humidity and Temperature Sensor test
   Displayed on I2C LCD Display
   Credits: Rob Tillaart */
/*-----( Import needed libraries )-----*/
#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address
dht11 DHT11;

/*-----( Declare Constants, Pin Numbers )-----*/
#define DHT11PIN 2

void setup()   /*----( SETUP: RUNS ONCE )----*/
  Serial.begin(9600); //(Remove all 'Serial' commands if not needed)
  lcd.begin(20,4);         // initialize the lcd for 20 chars 4 lines, turn on backlight
  // Print a message to the LCD.
  //lcd.setCursor(0, 1);
  lcd.print("DHT11 Temp/Humid");

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/

  int chk =;

  Serial.print("Read sensor: ");
  switch (chk)
    case 0: Serial.println("OK"); break;
    case -1: Serial.println("Checksum error"); break;
    case -2: Serial.println("Time out error"); break;
    default: Serial.println("Unknown error"); break;
  lcd.setCursor(0, 1);

  lcd.print((float)DHT11.temperature, 0);
  Serial.print("Temperature (oC): ");
  Serial.println((float)DHT11.temperature, 2);

  lcd.print(" F=");
  lcd.print(Fahrenheit(DHT11.temperature), 0);
  Serial.print("Temperature (oF): ");
  Serial.println(Fahrenheit(DHT11.temperature), 2);
  lcd.print("  H=");
  lcd.print((float)DHT11.humidity, 0);
  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);  

  Serial.print("Temperature (K): ");
  Serial.println(Kelvin(DHT11.temperature), 2);

  Serial.print("Dew Point (oC): ");
  Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

  Serial.print("Dew PointFast (oC): ");
  Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

}/* --(end main loop )-- */

/*-----( Declare User-written Functions )-----*/
//Celsius to Fahrenheit conversion
double Fahrenheit(double celsius)
        return 1.8 * celsius + 32;

//Celsius to Kelvin conversion
double Kelvin(double celsius)
        return celsius + 273.15;

// dewPoint function NOAA
// reference: 
double dewPoint(double celsius, double humidity)
        double A0= 373.15/(273.15 + celsius);
        double SUM = -7.90298 * (A0-1);
        SUM += 5.02808 * log10(A0);
        SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
        SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
        SUM += log10(1013.246);
        double VP = pow(10, SUM-3) * humidity;
        double T = log(VP/0.61078);   // temp var
        return (241.88 * T) / (17.558-T);

// delta max = 0.6544 wrt dewPoint()
// 5x faster than dewPoint()
// reference:
double dewPointFast(double celsius, double humidity)
        double a = 17.271;
        double b = 237.7;
        double temp = (a * celsius) / (b + celsius) + log(humidity/100);
        double Td = (b * temp) / (a - temp);
        return Td;

/* ( THE END ) */

DETAILS: Before you can use an "Arduino Software Library", you must make it available by copying it into the correct "libraries" folder. To use the library, unzip the file below into your SKETCHBOOKPATH\libraries.

Here is a .ZIP file available with these files for easier installation:

There are no reviews for this product.

Write Your Own Reviews

Please login to write review.

Catégories d'Articles
Dites-le à un ami
Avertissez un ami à propos de ce produit.
Mots de recherche populaires