Accueil > ARDUINO > Capteurs > Arduino & capteur DHT11 : Mesure de température et humidité (...)
mercredi 26 octobre 2016, par
octet 1 | octet 2 | octet 3 | octet 4 | octet 5 |
humidité (poids fort) | humidité (poids faible) | température (poids fort) | température (poids faible) | checksum |
Si on utilise le composant DHT11 sans PCB (différent des modules tout faits que l’on trouve sur ebay), il est nécessaire d’ajouter une résistance de pull-up sur la ligne DATA - cf doc)
Pour communiquer avec le capteur, on va utiliser la bibliothèque DHT11 présentée sur le site arduino.
Il suffit de télécharger ce fichier et de la décompresser dans le répertoire "..Arduino/libraries"
Dans les programmes suivants, on va afficher toutes les 2 secondes les valeurs température et humidité sur le port série. Il faut donc ouvrir le terminal série sur l’interface Arduino après avoir "téléversé" le programme.
Sans contrôle de la transmission
#include <dht11.h> #define DHT11PIN 4 // broche DATA -> broche 4 dht11 DHT11; void setup() { Serial.begin(9600); while (!Serial) { // wait for serial port to connect. Needed for native USB (LEONARDO) } Serial.println("DHT11 programme d'essai "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); Serial.println(); } void loop() { DHT11.read(DHT11PIN); Serial.print("Humidité (%): "); Serial.print((float)DHT11.humidity, 2); Serial.print("\t"); Serial.print("Température (°C): "); Serial.println((float)DHT11.temperature, 2); delay(2000); }
Avec contrôle de la transmission et affichage des erreurs si nécessaire (si on débranche le câble data, on a un "time out" qui est signalé).
#include <dht11.h> #define DHT11PIN 4 // broche DATA -> broche 4 int check; dht11 DHT11; void setup() { Serial.begin(9600); while (!Serial) { // wait for serial port to connect. Needed for native USB (LEONARDO) } Serial.println("DHT11 programme d'essai "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); Serial.println(); } void loop() { check= DHT11.read(DHT11PIN); Serial.print("lecture capteur: "); switch (check) { case DHTLIB_OK: Serial.println("OK"); break; case DHTLIB_ERROR_CHECKSUM: Serial.println("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; } Serial.print("Humidité (%): "); Serial.print((float)DHT11.humidity, 2); Serial.print("\t"); Serial.print("Température (°C): "); Serial.println((float)DHT11.temperature, 2); delay(2000); }