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