DHT11: tout sur le capteur pour mesurer la température et l'humidité

DHT11

La mesure de la température et de l'humidité est très courante dans de nombreux projets de fabricants électroniques. Dans le bricolage, il est courant de devoir mesurer ces paramètres pour contrôler certains systèmes. Par exemple, pour pouvoir créer un système de réfrigération, d'entretien des plantes ou de climatisation qui démarre si la température ou l'humidité atteint une certaine valeur. Mais pour que cela soit possible, vous avez besoin d'un capteur comme le DHT11.

Dans le marché il y a de nombreux capteurs des plages de température très différentes, avec des plages de température prises en charge ou des précisions différentes. Un exemple de ceci est le LM35, l'un des plus populaires et des plus utilisés en électronique. Il existe également d'autres capteurs d'humidité qui agissent par variation de conductivité comme le AD22103KTZ d'Analog Devices. Mais si vous souhaitez mesurer les deux paramètres, peut-être que l'appareil dont nous parlons aujourd'hui dans cet article est bien plus intéressant ...

Qu'est-ce que DHT11?

El DHT11 est un capteur simple qui mesure la température et l'humidité, tout en un. A) Oui vous n'aurez pas à acheter deux capteurs séparément. Son prix est d'environ 2 €, il est donc assez bon marché, même si vous pouvez également le trouver monté sur un module (monté sur un PCB pour une facilité d'utilisation) comme d'habitude dans ce type de composants électroniques pour Arduino. Dans le cas de la carte, elle comprend une résistance pull-up de 5 kilo ohms et une LED qui nous alerte du fonctionnement.

DHT11 a fiabilité et stabilité élevées grâce à son signal numérique calibré. De plus, si vous regardez sa fiche technique, vous verrez qu'elle possède des fonctionnalités intéressantes, comme vous le verrez dans les prochaines sections.

Produits similaires

DHT22

Il existe un produit similaire à DHT11 qui pourrait vous intéresser. Il est le DHT22. C'est aussi un capteur de température et d'humidité intégré, mais dans ce cas son prix est un peu plus élevé, environ 4 €. La précision pour mesurer la température est de 5% de variation également comme DHT11, mais contrairement à lui, il mesure au-delà de la plage d'humidité entre 20 et 80%. Par conséquent, vous pourriez être intéressé par le DHT22 pour les projets où vous devez mesurer l'humidité de 0 à 100%.

La fréquence de collecte des données c'est aussi deux fois celui de DHT11, dans DHT22 2 échantillons sont prélevés par seconde au lieu de 1 échantillon par seconde de DHT11. Quant à la température, elle peut mesurer de -40 ° C à + 125 ° C avec plus de précision, car elle peut mesurer des fractions de degrés, en particulier elle peut apprécier des variations de plus / moins 0,5 ° C.

Brochage, caractéristiques et fiche technique

Brochage DHT11

Vous pouvez trouver de nombreuses informations techniques sur le DHT11 dans vos fiches techniques. Chaque fabricant de cet appareil peut fournir des valeurs qui peuvent varier, c'est pourquoi je recommande toujours de lire le PDF du fabricant spécifique de l'appareil que vous avez acheté. Bien que la plupart des valeurs vous semblent identiques, il peut y avoir de légères variations d'une à l'autre. Ses caractéristiques techniques les plus importantes sont:

  • Alimentation 3,5v à 5v
  • Consommation de courant de 2,5 mA
  • Signal de sortie numérique
  • Plage de température de 0 ° C à 50 ° C
  • Précision pour mesurer la température à 25 ° C d'une variation d'environ 2 ° C
  • La résolution pour mesurer la température est de 8 bits, 1 ° C
  • L'humidité peut mesurer de 20% HR à 90% HR
  • Précisément pour une humidité de 5% HR pour des températures comprises entre 0 et 50 ° C
  • La résolution est de 1% HR, il ne peut pas capter des variations inférieures à cela
  • Fiche technique Mouser

Concernant les données, diffusé en numérique. Par conséquent, il n'est pas nécessaire de passer de l'analogique au numérique comme dans d'autres capteurs. Cela a compliqué le code à écrire dans l'IDE Arduino, mais dans ce cas, ce n'est pas nécessaire et c'est beaucoup plus facile. Bien que le capteur lui-même soit analogique, il comprend un système pour effectuer la conversion et peut être connecté directement à une entrée numérique de l'Arduino.

Le signal analogique, qui est une variation de la tension, du capteur est converti au format numérique pour être envoyé au microcontrôleur Arduino. Il est transmis en une trame de 40 bits qui correspondent aux informations d'humidité et de température capturées par le DHT11. Les deux premiers groupes de 8 bits concernent l'humidité, c'est-à-dire les 16 bits les plus significatifs de cette trame. Puis les 2 autres groupes 8 bits restants pour la température. Autrement dit, il a deux octets pour l'humidité et deux octets pour la température. Par exemple:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

Dans ce cas, 0011 0101 0000 0010 est la valeur d'humidité et 0001 1000 0000 0000 est la température. Une première partie est pour la partie entière et la deuxième partie est pour les décimales. Quant à 0011 1001, c'est-à-dire le les 8 derniers bits sont la parité pour éviter les erreurs. De cette façon, vous pouvez vérifier que tout est correct pendant les transmissions. Cela correspond à la somme des bits précédents, donc, si la somme est égale à la parité, elle sera correcte. Dans l'exemple que j'ai donné, ce ne serait pas le cas, car comme vous pouvez le voir, cela ne correspond pas ... Cela indiquerait un échec.

Une fois que cela est connu, la prochaine chose à noter au niveau technique du DHT11, ce sont les broches. Les contacts ou brochage de cet appareil est simple, car il n'en a que 4. L'une des broches est pour l'alimentation ou Vcc, l'autre pour les E / S pour transmettre des données, une broche NC qui ne se connecte pas et GND pour la connexion à la terre.

Intégration avec Arduino

Connexion du DHT11 avec Arduino

Une fois que vous connaissez le brochage du DHT11 et aussi la carte Arduino, la connexion est très simple. N'oubliez pas que si vous avez choisi un module DHT11 intégré dans un PCB, les broches seront au nombre de trois, puisque le NC est retiré pour faciliter les choses. La seule chose que vous devez faire est de connecter la broche de terre à l'une des connexions GND de l'Arduino telle qu'elle apparaît dans le diagramme de l'image précédente.

D'autre part, la broche d'alimentation doit être connectée à la connexion 5v d'Arduino, ainsi le capteur sera entièrement alimenté avec GND et Vcc, mais maintenant les données sont manquantes. Pour transmettre les données du capteur DHT11 à la carte Arduino, vous pouvez utiliser l'une des entrées numériques, comme le 7 qui apparaît dans l'image ... Maintenant, vous avez tout prêt à l'utiliser une fois que vous avez créé l'IDE Arduino nécessaire code ...

Si le capteur est loin dans votre projet et que vous allez utiliser un câble de plus de 20 mètres, utilisez une résistance pull-up de 5k, pour des câbles plus gros, elle devrait être proportionnellement plus grande. Notez que si vous utilisez une alimentation de 3,5 V au lieu de 5 V, le câble ne doit pas dépasser 20 cm en raison de chutes de tension.

N'oubliez pas que ce qu'ils recommandent est prendre des mesures toutes les 5 secondes, bien que la fréquence d'échantillonnage à laquelle le DHT11 peut fonctionner soit plus élevée, mais si elle est effectuée plus fréquemment, elle peut ne pas être aussi précise.

Code dans l'IDE Arduino

Aller directement au code, dis que dans IDE Arduino vous pouvez utiliser un certain nombre de bibliothèques existantes avec des fonctionnalités qui vous faciliteront la vie avec le DHT11. Par exemple, l'un d'eux est celui qui fournit Adafruit. N'oubliez pas que nous avons un guide du débutant qui commence par Arduino en PDF que vous pouvez télécharger gratuitement d'ici et cela peut vous aider.

Une fois que vous avez installé la bibliothèque correspondante, vous pouvez commenter Entrer le code pour contrôler le capteur de température et d'humidité DHT11 pour votre projet avec Arduino. Par exemple:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.