abonnel-siteweb/data/pages/electronique/arduino/dht11_nano_mega328_lcd_i2c.txt

109 lines
2.7 KiB
Plaintext
Raw Permalink Normal View History

2024-01-07 10:02:35 +01:00
====== Sonde température et humidité sur Arduino ======
{{ electronique:arduino:dht11_arduinouno_lcd.jpg?nolink&800 |}}
===== Materiel utilisé =====
<WRAP group>
<WRAP third column>
* Arduino Nano
</WRAP>
<WRAP third column>
* sonde de température et d'humidité DHT11
</WRAP>
<WRAP third column>
* écran graphique LCD 2x16 avec bus I2C
</WRAP>
</WRAP>
===== Code =====
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.
<code c>
#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
//
</code>
===== Bibliographie =====
Capteur de pression
* http://www.diopter.fr/index.php/technique/electro-numerique/43-capteur-de-pression-et-arduino
Autre réalisation avec la sonde DHT11
* https://www.carnetdumaker.net/articles/utiliser-un-capteur-de-temperature-et-dhumidite-dht11-dht22-avec-une-carte-arduino-genuino/
Sonde de température DS18B20
* https://www.carnetdumaker.net/articles/mesurer-une-temperature-avec-un-capteur-1-wire-ds18b20-et-une-carte-arduino-genuino/
Comparatif des sondes DHT 11 et 22
* https://learn.adafruit.com/dht/overview
Kit SunFounder
* https://www.sunfounder.com/learn/Sensor-Kit-v2-0-for-Arduino/lesson-11-humiture-detection-sensor-kit-v2-0-for-arduino.html
Amazon
* sonde DHT 22 - https://www.amazon.fr/gp/product/B00AZG1RBK/ref=ox_sc_act_title_2?ie=UTF8&psc=1&smid=A3I826466U8R8A