ArduinoÉlectronique

Capteur de température et d’humidité – DHT11 et DHT22

Dans cet article, nous allons découvrir un capteur de température et d’humidité et fabriquer une mini station météo.

Une partie du matériel nous à été gracieusement fourni part Banggood.com .

Aujourd’hui, nous allons utiliser un capteur qui nous indique la température et l’humidité et nous permet de nous faire une station météo ” basique”.

Le capteur est présent sous différentes forme, les plus communs sont le DHT11 & le DHT22. La différence est la suivante :

DHT11

La température de 0°C à 50°C ± 2°C, et pour le taux d’humidité: 20-90% ±5%


DHT22

La température de -40°C à +80°C ±0,5°C, et pour le taux d’humidité: 0-100% ±2%

On peut donc constater que le DHT22 est bien plus précis, et accepte une plus grande plage de température.

Dans cet article, nous allons fabriquer une mini station avec un écran nous affichant la température et le taux d’humidité en temps réel.

 Matériel

Découvrez ici comment fabriquer des câbles Jumpers

Câblage

Nous allons commencer par câbler notre capteur DHT11 ( ou DHT22 ) et notre écran Oled à notre Arduino.

Câblage du capteur :

  • Pin1 (vcc) sur 5V de l’arduino
  • Pin2 (data) sur D1
  • Pin4 (gnd) sur GND de l’arduino
  • Placer la résistance de 10K Ohms entre le VCC & DATA du capteur

Câblage de l’écran :

  • VCC sur 5V de l’arduino
  • GND sur GND de l’arduino
  • SCL sur A5
  • SDA sur A4

Installation préalable

Pour Pouvoir commencer à programmer votre capteur, il va falloir ajouter les bibliothèques correspondantes :

 bibliothèques adafruit pour les capteurs DHT11 & DHT22

Pour installer la bibliothèque, dézipper le dossier téléchargé juste au dessus, puis placé le dans Arduino/Librairies.

et la bibliothèque U8glib.h . Pour ceci, aller dans Croquis => inclure une bibliothèque => gérer les bibliothèques. Dans la barre de recherche, taper “U8glib.h” et installer la première.

Une fois ceci fait, vous pouvez ouvrir l’éditeur Arduino IDE. Vous pouvez ensuite brancher votre arduino sur l’ordinateur.

Programmation

Copier coller le programme ci dessous :

#include "DHT.h"
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);

#define DHTPIN 2
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE, 6);

char str[10];

void drawTest(void) {
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 0, 20, "Capteur Hum/Temp");
}

void setup() {
  Serial.begin(9600);
  Serial.println("Capteur Hum/Temp");

  dht.begin();
  u8g.firstPage();
  do {
    drawTest();
  } while ( u8g.nextPage() );
}

void loop() {

  delay(2000);
  
  float h = dht.readHumidity();

  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Impossible de lire les données du capteur DHT!");
    return;
  }

  Serial.print("Humidite': ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");

  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_helvB08);

    u8g.drawStr( 0, 15, "Humidite':");
    u8g.drawStr( 80, 15, dtostrf(h, 5, 2, str));
    u8g.drawStr( 120, 15, "%");

    u8g.drawStr( 0, 45, "Temperature:");
    u8g.drawStr( 80, 45, dtostrf(t, 5, 2, str));
    u8g.drawStr( 120, 45, "\260C");

  } while ( u8g.nextPage() );
}

Il ne vous reste plus qu’à téléverser le programme dans votre arduino et le tour est joué !
Celui-ci vous affichera en temps réel la température et l’humidité de la pièce dans laquelle vous êtes présent.

Pour aller plus loin…

Pour ce tutoriel, nous avons décider de fabriquer un petit boitier, très simple, vous permettant d’y inclure votre arduino, le capteur sur le coté ainsi que l’écran sur le dessus du boitier.
Vous pouvez télécharger le modèle 3D ici.

Télécharger le boitier sur Thingiverse


Ce tutoriel est à présent terminé. N’hésitez pas à nous faire un retour en commentaire !

Par la suite, nous verrons comment intégrer le capteur avec un Node MCU (Ou Wemos D1) et le relier ensuite à Jeedom.

Print Friendly, PDF & Email

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *