|

Afficher température et humidité avec capteur DHT22 sur LCD 20×4 i2c avec un Arduino UNO

Prérequis :

  • 1 x Carte Arduino Uno
  • 1 x DHT22
  • 1 x résistance 4.7KΩ à 10KΩ
  • 1 x LCD 20×4
  • 1 x Module I2C
  • Fils de connexion

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

#include "DHT.h"
//Connecter la broche 2 du capteur à votre DHTPIN
#define DHTPIN 2
#define DHTTYPE DHT22

// Inclure le code de la bibliothèque:
#include <LiquidCrystal_I2C.h>
// Initialiser la bibliothèque avec les dimensions de l'interface
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Initialisation du capteur DHT.
DHT dht(DHTPIN, DHTTYPE);

char buffer[20];

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

  // Initialisation de l'interface LCD
  lcd.init();
  // Active le rétro-éclairage du LCD
  lcd.backlight();
}

void loop() {
  // Attendre quelques secondes entre les mesures.
  delay(1000);

  // La mesure de la température ou de l'humidité prend environ 250 millisecondes !
  // Les mesures du capteur peuvent également remonter jusqu'à 2 secondes (c'est un capteur très lent).
   // Lit l'humidité et stock ça valeur dans h au format float.
  float h = dht.readHumidity();
  // Lire la température en degrés Celsius (valeur par défaut) et stock ça valeur dans t au format float.
  float t = dht.readTemperature();

  // Vérifiez si des lectures ont échoué et quittez plus tôt (pour réessayer).
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Echec de la lecture à partir du capteur DHT!"));
    return;
  }

  Serial.print(F("Humidité: "));
  Serial.print(h);
  Serial.print(F("%  Température: "));
  Serial.print(t);
  Serial.println(F("°C "));

  //LCD//////////////
  // placer le curseur sur la colonne 4, ligne 0
  // (note : la ligne 0 est la première ligne, puisque le comptage commence par 0):
  lcd.setCursor(4, 0);
  // Imprime un message
  lcd.print ("Temperature");
  // placer le curseur sur la colonne 6, ligne 1
  lcd.setCursor(6, 1);
  // Imprime la température en degrés Celsius qui est stockée dans t
  lcd.print(t);
  // ETC...
  lcd.setCursor(12, 1);
  lcd.print((char)223);
  lcd.setCursor(13, 1);
  lcd.print("C");
  lcd.setCursor(5, 2);
  lcd.print ("Humidite");
  lcd.setCursor(6, 3);
  lcd.print(h);
  lcd.setCursor(13, 3);
  lcd.print("%");
}

Publications similaires

Laisser un commentaire

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