Sonde température et humidité sur Arduino
Materiel utilisé
- Arduino Nano
- sonde de température et d'humidité DHT11
- écran graphique LCD 2×16 avec bus I2C
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.
#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 //
Bibliographie
Capteur de pression
Autre réalisation avec la sonde DHT11
Sonde de température DS18B20
Comparatif des sondes DHT 11 et 22
Kit SunFounder
Amazon