109 lines
2.7 KiB
Plaintext
109 lines
2.7 KiB
Plaintext
====== 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 |