Coucou,
J’avais récemment acheté un capteur DHT11 qui a fini par traîner au fond de ma boite à bordel, mais en ce jour de congé je viens juste de le sortir pour lui montrer la lumière du jour 🙂
Le capteur DHT11 permet de mesurer la température et l’humidité et ressemble à ça :
J’ai préféré acheter la version PCB qui du coup ressemble à ça :
Avant de réaliser le montage vous pouvez déjà récupérer la librairie du DHT11 car elle n’est pas incluse de base dans arduino. Téléchargez le fichier et dé-zippez le dossier dans votre répertoire d’installation des librairies, chez moi et par défaut : C:\Program Files (x86)\Arduino\libraries.
Pour les curieux vous pouvez trouver les détails de la librairies ici.
Pour les encore plus curieux, vous pouvez regarder la datasheet.
Sommaire
Le montage.
Je pense qu’on peut difficilement faire plus simple, voilà à quoi ça ressemble :
Voici la correspondance des broches :
DHT11 <=> Arduino
Vcc = 5V
DATA = PIN 2
GND = GND
Le programme.
Voilà le sketch que j’ai utilisé, rien d’extraordinaire non plus :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
// On charge la librairie #include <dht11.h> // On crée l'objet du capteur dht11 DHT11; // On définit le PIN qui sera utilisée pour les données #define DHT11_PIN 2 void setup() { // On initialise la liaison série Serial.begin(115200); } void loop() { // On va lire l'état du capteur int chk = DHT11.read(DHT11_PIN); // Et on va l'afficher en fonction du retour Serial.print("Etat du capteur: "); switch (chk) { case DHTLIB_OK: Serial.println("OK"); break; case DHTLIB_ERROR_CHECKSUM: Serial.println("Checksum erreur"); break; case DHTLIB_ERROR_TIMEOUT: Serial.println("Timeout erreur"); break; default: Serial.println("Erreur inconnue"); break; } // On affiche l'humidité Serial.print("Humidite : "); Serial.print((float)DHT11.humidity, 2); Serial.println("%."); // Et la température Serial.print("Temperature : "); Serial.print((float)DHT11.temperature, 2); Serial.println(" degres."); Serial.println(""); // Pause entre 2 interogations. delay(1000); } |
Les commentaires devraient suffire à comprendre le programme. Si ce n’est pas le cas vous pouvez toujours me contacter.
Quand vous affichez le moniteur série vous devriez voir un truc du genre (attention à bien utiliser la même vitesse que celle définie dans le sketch, chez moi 115200 baud. :
Et voilà, c’est déjà terminé !
Je vous ai fais un petit package qui regroupe tous les éléments du TP (librairie, sketch, datasheet).
Bonne journée 🙂
Ne marche pas avec moi ^^ je ne sais pas pourquoi mais plus aucun sketch ne fonctionnent depuis peu ^pour le DHT11, j’ai beau refaire a partir des différents tuto… pourtant j’avais écrit la procédure complète avec tout les branchement => qui marche il y a 2-3 mois !
je creuse le problème ( changer d’arduino, capteurs câbles …. rien tout tout )
J’ai trouver mon problème ^^ la librairie était installer au mauvais endroit 🙂
Bsr stp j’ai un projet de mécatronik ici au Cameroun sur les capteurs pluie et j’aimerais programmer avec un arduino comment faire?
Il y’a pleins de tuto sur internet, et sur YouTube, de qualité différents.
Dans un premier temps apprend a utilisé chaque « module » séparément, ( un bouton, une led, un relais, etc…) et ensuite essaye de faire un programme en mixant tes acquis ( déclencher un relais quand la pluie est détecter, allumé une led… Etc
personne ne répond ?
bonjour,
j’ais téléchargé le programme concernant Le capteur DHT11 mais lorsque j’affiche le moniteur série je voie ce si :
status humidity (%) température (c) (F)
timeout nan nan nan
j’aimerais savoir ou se trouve le problème
merci.
Vérifie tes branchements et le code, parfois un ; mal placer ou oublier, ou bien tout simplement le mauvais capteur utilisé ou cité dans le sketch ( là ou tu écrit ça : #define DHTTYPE DHT11 )
Bon bricolage 😉
Je penses que cet appareil est indispensable afin de garder notre maison hors de dangers des mérules et des moisissures .Cela m’intéresse beaucoup