Capteur de température et d’humidité – DHT11 et DHT22
Une partie du matériel nous à été gracieusement fourni part Banggood.com .Dans cet article, nous allons découvrir un capteur de température et d’humidité et fabriquer une mini station météo.
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
- Un arduino Uno
- Un écran Oled 128×64 en I2C
- Une résistance de 10K Ohms
- Un capteur DHT11 ( ou mieux un DHT22 )
- Des câbles jumpers
- Une Breadboard
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.