electronique:arduino:dht11_nano_mega328_lcd_i2c

Sonde température et humidité sur Arduino

  • Arduino Nano
  • sonde de température et d'humidité DHT11
  • écran graphique LCD 2×16 avec bus I2C

Le code suivant permet d'afficher les informations relevées sur la sonde DHT11.

Pour cela j'utilise les méthodes dht.readHumidity() et dht.readTemperature() de la bibliothèque DHT. La fonction isnan (is Not A Number) permet de faire connaitre une défaillance en cas d'une lecture non numérique des valeurs.

#include <Adafruit_Sensor.h>
 
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h> 
 
 
#define DHTPIN 7
#define DHTTYPE DHT11 
 
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2); // affecter l'adresse à 0x27 pour 16 caractères et 2 lignes d'affichage
int tim = 1000; //valeur d'attente
 
 
void setup()
{
  lcd.init(); //initialiser le LCD
  lcd.backlight(); //allumer le LCD
  lcd.setCursor(0,0);
  lcd.print("dht11_test");
  lcd.setCursor(0,1);
  lcd.print("version 20161203");
  delay(5 * tim); //attendre
  lcd.clear();
 
  Serial.begin(9600);
  dht.begin();
 
}
 
void loop()
{
  float h = dht.readHumidity(); // lire la valeur de l'humidité
  float t = dht.readTemperature(); :: lire la valeur de la température
  if (isnan(t) || isnan(h)) { // vérifier le présence d'une valeur numérique
    lcd.setCursor(0,0);
    lcd.println("Failed to read  ");
    lcd.setCursor(0,1);
    lcd.println("from DHT11    ");
  } else {  
    lcd.setCursor(0,0);
    lcd.print("Temp.   ");
    lcd.print(t);
    lcd.print(" *C");
    lcd.setCursor(0,1);
    lcd.print("Humidi. ");
    lcd.print(h);
    lcd.print(" %");
  }
 
  delay(tim);
}
//
// END OF FILE
//
  • electronique/arduino/dht11_nano_mega328_lcd_i2c.txt
  • Dernière modification : 2020/04/17 20:23
  • de