Des sketchs à ajouter à ArdPyLog (suite)


4. Capteur DHT 11
(Mesure de la température et du taux d’humidité – Catégorie: Température)

 

 

L’objectif de cette activité est de mesurer la température et le taux d’humidité ambiant à l’aide du module KY-015 composé d’un capteur numérique d’humidité et de température DHT11 et d’une résistance de 1 kΩ.


Le capteur DHT11 a 4 broches, mais il est souvent vendu sur une carte support qui possède 3 broches. Il communique avec l’Arduino très simplement au travers d’une de ses entrées numériques. Les 2 autres broches sont pour son alimentation 5 V et la masse (GND).

Le montage est très simple, il suffit de câbler le 5 V de l’Arduino Uno sur la broche 5 V, la masse de l’Arduino Uno sur la broche GND et la broche DATA du capteur sur la broche numérique 8 de l’Arduino Uno par exemple.


Caractéristiques du DHT 11 :

Tension de fonctionnement: 3,3 V à 5,5 V
Plage de mesure d’humidité: 20% à 90% HR
Précision de la mesure de l’humidité: ± 5% d’humidité relative
Résolution de mesure d’humidité: 1% d’humidité relative
Plage de mesure de température: 0 ° C à 50 ° C [32 ° F à 122 ° F]
Précision de la mesure de la température: ± 2 ° C
Résolution de mesure de température: 1 ° C
Portée de transmission du signal: 20m

 

Le code de l’activité nécessite l’installation au préalable de la librairie « DHT sensor library by Adafruit ».
Afin d’ajouter une librairie à l’IDE Arduino, il faut aller dans le menu « Outils ->Gérer les bibliothèques » :

Il suffit ensuite de rechercher et d’ajouter la librairie «DHT sensor library» d’Adafruit :

 

Le programme

Voici le code de l’activité :

// Insertion de la librairie Adafruit_DHT
#include « DHT.h »

// déclaration de la broche d’entrée
#define DHTPIN 8

// initialisation du capteur
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup()
{
Serial.begin(9600);
Serial.println(« Test du module KY-015 Test – Temperature et humidite: »);

// début de la mesure
dht.begin();
}

// Boucle de programme principale
// Début du programme et lecture des mesures
// Une pause de 2 secondes est insérée entre 2 mesures
void loop() {

// délai de 2 secondes entre 2 mesures
delay(2000);

// mesure de l’humidité
float h = dht.readHumidity();
// mesure de la température
float t = dht.readTemperature();

// on vérifie si les mesures sont exécutées sans faute
// Lors de la détection d’une erreur, affichage d’un message d’erreur
if (isnan(h) || isnan(t)) {
Serial.println(« Erreur de lecture du capteur »);
return;
}

// Envoi dans la console série
Serial.println(« ———————————————————–« );
Serial.print(« Humidite: « );
Serial.print(h);
Serial.print( » %\t »);
Serial.print(« Temperature: « );
Serial.print(t);
Serial.print(char(186)); //Affiche le symbole <°>
Serial.println(« C « );
Serial.println(« ———————————————————–« );
Serial.println( » « );
}

 

Déroulement du programme :

– 1. Insertion des bibliothèques :

. Insertion de la librairie Adafruit_DHT

 

– 2. Déclaration des constantes et variables :

. #define DHTPIN 8 (déclaration de la broche de mesure du capteur)

. #define DHTTYPE DHT11 (déclaration du type de capteur)

. DHT dht(DHTPIN, DHTTYPE) (initialisation du capteur)

 

– 3. Initialisation des entrées et sorties :

. Initialisation de la liaison série à un débit de 9600 bauds

. Début de la mesure

 

– 4. Fonction principale en boucle :

–> lecture des mesures,

–> une pause de 2 secondes est insérée entre 2 mesures,

–> Affichage des valeurs dans le moniteur série.