Différences entre versions de « Arduino DHT11 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
 
== Le composant ==
 
== Le composant ==
 
Le DHT11 ressemble à ceci:  
 
Le DHT11 ressemble à ceci:  
[[Fichier:DHT11.jpg|centré|70px]]
+
[[Fichier:DHT11.jpg|centré|150px]]
 
Ce composant permet de mesurer la température ainsi que l'humidité.
 
Ce composant permet de mesurer la température ainsi que l'humidité.
  
Ligne 9 : Ligne 9 :
  
 
= Partie logicielle =
 
= Partie logicielle =
== Récupérer la luminosité ==
+
== Import de la librairie ==
 +
Avant de continuer, il faut importer la librairie nécessaire à l'utilisation des capteurs DHT.
 +
[[Fichier:Arduino_IDE_DHT_Adafruit_install.png|centré|400px]]
 +
== Récupérer la température et l'humidité ==
 
Voila un exemple qui affiche la valeur de la température ainsi que l'humidité
 
Voila un exemple qui affiche la valeur de la température ainsi que l'humidité
 
<source lang="c">
 
<source lang="c">
 +
#include "DHT.h"
 
// PIN data du DHT
 
// PIN data du DHT
int sensorPin = A0;
+
#define DHTPIN 2
int sensorValue = 0;
+
// de-commenter le capteur utilise
void setup() {
+
#define DHTTYPE DHT11 // DHT 11
  Serial.begin(9600);
+
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
 +
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
 +
 
 +
// Déclaration du capteur DHT
 +
DHT dht(DHTPIN, DHTTYPE);
 +
 +
void setup(){
 +
Serial.begin(9600);
 +
// Connexion au capteur
 +
dht.begin();
 
}
 
}
void loop() {
+
 
  // Lit la valeur du capteur
+
void loop(){
   sensorValue = analogRead(sensorPin);
+
delay(2000);
  Serial.print(F("LDR value: "));
+
// Lecture des valeurs:
  Serial.println(sensorValue);
+
// Hygrometrie
  delay(1000);
+
float h = dht.readHumidity();
 +
// temperature en celsius
 +
float t = dht.readTemperature();
 +
// temperature en farenheit
 +
float f = dht.readTemperature(true);
 +
 +
//On verifie si la lecture a echoue, si oui on quitte la boucle pour recommencer.
 +
if (isnan(h) || isnan(t) || isnan(f)){
 +
  Serial.println("Failed to read from DHT sensor!");
 +
   return;
 +
}
 +
 +
// Calcul de l'indice de temperature en Farenheit
 +
float hif = dht.computeHeatIndex(f, h);
 +
// Calcul de l'indice de temperature en Celsius
 +
float hic = dht.computeHeatIndex(t, h, false);
 +
 +
//Affichages :
 +
Serial.print("Humidite: ");
 +
Serial.print(h);
 +
Serial.print(" %\t");
 +
Serial.print("Temperature: ");
 +
Serial.print(t);
 +
Serial.print(" *C ");
 +
Serial.print(f);
 +
Serial.print(" *F\t");
 +
Serial.print("Indice de temperature: ");
 +
Serial.print(hic);
 +
Serial.print(" *C ");
 +
Serial.print(hif);
 +
Serial.println(" *F");
 
}
 
}
 
</source>
 
</source>
Ligne 29 : Ligne 72 :
 
== Résultat ==
 
== Résultat ==
 
Voila le résultat :
 
Voila le résultat :
[[Fichier:Arduino LDR temp reading serial.png|centré|400px]]
+
[[Fichier:Arduino DHT reading serial.png|centré|400px]]

Version actuelle datée du 13 juillet 2017 à 19:25

Partie électronique

Le composant

Le DHT11 ressemble à ceci:

DHT11.jpg

Ce composant permet de mesurer la température ainsi que l'humidité.

Le montage

DHT11 diagram.jpg

Partie logicielle

Import de la librairie

Avant de continuer, il faut importer la librairie nécessaire à l'utilisation des capteurs DHT.

Arduino IDE DHT Adafruit install.png

Récupérer la température et l'humidité

Voila un exemple qui affiche la valeur de la température ainsi que l'humidité

#include "DHT.h"
// PIN data du DHT
#define DHTPIN 2
// de-commenter le capteur utilise
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Déclaration du capteur DHT
DHT dht(DHTPIN, DHTTYPE);
 
void setup(){
 Serial.begin(9600);
 // Connexion au capteur
 dht.begin();
}

void loop(){
 delay(2000);
 // Lecture des valeurs:
 // Hygrometrie
 float h = dht.readHumidity();
 // temperature en celsius
 float t = dht.readTemperature();
 // temperature en farenheit
 float f = dht.readTemperature(true);
 
 //On verifie si la lecture a echoue, si oui on quitte la boucle pour recommencer.
 if (isnan(h) || isnan(t) || isnan(f)){
   Serial.println("Failed to read from DHT sensor!");
   return;
 }
 
 // Calcul de l'indice de temperature en Farenheit
 float hif = dht.computeHeatIndex(f, h);
 // Calcul de l'indice de temperature en Celsius
 float hic = dht.computeHeatIndex(t, h, false);
 
 //Affichages :
 Serial.print("Humidite: ");
 Serial.print(h);
 Serial.print(" %\t");
 Serial.print("Temperature: ");
 Serial.print(t);
 Serial.print(" *C ");
 Serial.print(f);
 Serial.print(" *F\t");
 Serial.print("Indice de temperature: ");
 Serial.print(hic);
 Serial.print(" *C ");
 Serial.print(hif);
 Serial.println(" *F");
}

Résultat

Voila le résultat :

Arduino DHT reading serial.png