CAPTEUR DE TEMPÉRATURE ET D'HUMIDITÉ DE L'AIR
Ce capteur mesure la température environnante, ainsi que le taux d'humidité de l'air. Il est aussi composé d'une résistance de 1kΩ. Nous pouvons ainsi déterminer les conditions ambiantes. La puce interne du capteur convertit les lectures en un signal numérique série. Ici nous sommes sur le modèle DHT11. Ce capteur peut être couplé avec un écran LCD afin d'afficher les résultats.
Mise en place du dispositif
Points branchements :
-
Écran LCD :
Ce capteur se branche en 5V.
VCC : 5V
GDN : GDN
SDA : A4
SCL : A5
-
Capteur de température et d'humidité de l'air :
Ce capteur se branche en 3,3V. mais il peut aussi être branché en 5V.
+ : 5V
- : GDN
OUT : A0
Mise en place du code
Point techniques :
Ce "pont" permet de gérer le rétroéclairage de l'écran LCD (si nous l'enlevons, il n'y a plus de rétroéclairage).
La vis se trouvant dans le carré bleu permet la gestion du rétroéclairage. L'écran est plus ou moins éclairé lorsqu'on la tourne.
Écran LCD vu du dessous
Afin d'utiliser l'écran LCD, il est impératif d'installer une bibliothèque à Arduino. Pour cela, il faut se rendre dans l'onglet "Croquis" puis "Inclure une bibliothèque", "Gérer les bibliothèques", et enfin chercher la bibliothèque à installer. Ici nous utilisons la bibliothèque "LiquidCrystal_I2C"
!
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include <dht.h>
#define dht_apin A0
dht DHT;
void setup(){
Serial.begin(9600);
delay(500);//On donne du temps pour démarrer
Serial.println("DHT11 capteur Humidite & temperature \n\n");
delay(1000);//Attendre avant de lire les capteurs
lcd.init();
}
void loop(){
DHT.read11(dht_apin);
Serial.print("Humidite = ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.println("C ");
delay(5000);//Attendre 5s avant la prochaine lecture
// Ecriture message écran.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("tempera.");
lcd.setCursor(9,0);
lcd.print(DHT.temperature);
lcd.setCursor(14,0);
lcd.print("c");
lcd.setCursor(0,1);
lcd.print("humidite ");
lcd.setCursor(9,1);
lcd.print(DHT.humidity);
lcd.setCursor(14,1);
lcd.print("%");
}
Mise en scène
#include permet l'insertion de bibliothèques. Ici nous utilisons :
-
Wire.h, elle permet de communiquer avec les composants utilisant le protocole I2C / TWI (communication série sur 2 fils),
-
LiquidCrystal_I2C.h qui permet de communiquer avec l'écran LCD,
-
dht.h qui permet de communiquer et de traiter les données du capteur de température et d'humidité.
#define dht_apin A0 permet la connexion du capteur à A0 (sortie analogique)
Serial.begin(9600) ouverture du port série et fixe le debit de communication à 9600 bauds.
Serial.println("X") renvoie sur le port série, le texte "X" avec un retour chariot (retour à la ligne).
lcd.init() initialise l'écran LCD
Serial.print("X") renvoie sur le port série, le texte "X" sans retour chariot (retour à la ligne).
lcd.setCursor(0,0) permet de positionner le curseur en fonction de coordonnées, par exemple setCursor(0,0) permet de positionner le curseur en haut à gauche.
lcd.print("X") permet d'inscrire le texte "X" sur l'écran LCD.