Ignorer et passer au contenu

Livraison offerte à partir de 50€ d'achats, livrée sous 48h !

Livraison à partir de seulement 2.50€ !

Contents Menu Expand Light mode Dark mode Auto light/dark mode

Comment utiliser le Capteur DHT22 avec un ESP32 et un script MicroPython ?

(Mis à jour le 04/01/2023)

Le DHT22 est une version améliorée du populaire capteur DHT11 pour les projets DIY. Il offre une précision supérieure, mais a le même inconvénient : il ne prend peu de mesures par seconde: uniquement une toutes les 2 secondes. Malgré cela, il peut convenir pour la création d’une station météo connectée DIY.

DHT22 sensor overview

Le capteur DHT22 avec sa protection blanche

Note

Le DHT22 est parfois surnommé AM2302

Prendre en main le capteur DHT22

Le DHT22 fait partie de la famille des capteurs DHTxx. Si vous souhaitez comparer les différences entre le DHT11 et le DHT22, vous pouvez consulter cette ressource . Le DHT22 a un boîtier blanc en plastique, tandis que celui du DHT11 est bleu. Si votre capteur est bleu, je vous recommande de lire le tutoriel sur le DHT11 pour en savoir plus.

Quelques caractéristiques du DHT22

Caractéristiques techniques du DHT22

DHT22

Précision température

± 0.5°C

Précision Humidité

± 2%

Plage de température

-40-80 °C

Plage Humidité

0-100%

Échantillonnage

0.5/s

Tension d’alimentation

3-6V

Courant

~1.5mA

Note

Le DHT22 est plus adapté pour mesurer les températures extérieures que le DHT11, car il peut mesurer des températures négatives jusqu’à -40°C. Cependant, ses performances sont de base et ne sont pas aussi fiables que les capteurs BMExxx de Bosh. Cela dépend de votre application.

Branchements du capteur DHT22

Le DHT22 a entre 3 et 4 broches selon le module utilisé. En réalité, il a 4 broches, mais puisqu’une des broches ne sert à rien, certains modules n’en montrent que 3.

Faites attention, car l’ordre des broches peut varier en fonction du fabricant du module. La numérotation se fait depuis la gauche lorsque vous tenez le capteur face à vous (avec la grille en face de vous). La broche d’alimentation est toujours la première, les autres peuvent varier.

Correspondance des broches

Module DHT22

ESP32

1 (VCC )

3V3

2 (GND )

GND

3 (OUT )

GPIO23

Correspondance des broches

Module DHT22

ESP32

1 (+ )

3V3

2 (OUT )

GPIO23

3 (- )

GND

Correspondance des broches

Module DHT22

ESP32

1

3V3

2

GPIO23

3

Ne pas connecter

4

GND

Le DHT22 ne possède qu’une seule broche de données en dehors de ses alimentations (Protocole One Wire).

Schéma électrique pour utiliser le module DHT22 avec un ESP32

Si votre module ne comporte pas de résistance de pull-up, vous devrez en ajouter une entre 4,7kΩ et 10kΩ entre les broches 3V3 et le signal (GPIO23 ). N’importe quelle broche de sortie peut être utilisée sur l’ESP32 et ici, on utilisera la broche GPIO23 . N’oubliez pas de modifier le circuit en fonction de votre modèle si celui-ci est légèrement différent.

ultrason hcsr04 microptyhon rpi pico

Circuit électrique à réaliser

ultrason hcsr04 microptyhon rpi pico

Circuit électrique à réaliser

ultrason hcsr04 microptyhon rpi pico

Circuit électrique à réaliser

Voici un exemple de circuit pour le premier type de module DHT22 :

Câblage sur plaque de prototypage du DHT22 et RP2040

Câblage du DHT22 avec une carte uPesy ESP32 DevKit

Mesurer la température et l’humidité ambiante du DHT22 en MicroPython

Puisque le DHT22 utilise un protocole propriétaire, il est nécessaire d’utiliser une bibliothèque pour communiquer avec le capteur. Heureusement, une telle bibliothèque est incluse dans les dernières versions de MicroPython, vous n’aurez donc pas besoin d’en télécharger une en plus 😎. Vous pouvez importer le module directement avec import dht .

from machine import Pin
from time import sleep
import dht

capteur = dht.DHT22(Pin(23))

while True:
  try:
    sleep(1)     # le DHT22 renvoie au maximum une mesure toute les 2s
    capteur.measure()     # Recuperère les mesures du capteur
    print(f"Temperature : {capteur.temperature():.1f}°C")
    print(f"Humidite    : {capteur.humidity():.1f}%")
  except OSError as e:
    print("Echec reception")

Dans le terminal de Thonny IDE, vous verrez la température exprimée en °C et le taux d’humidité en pourcentage :

upython  DHT22 avec un ESP sur thonny IDE

En Python, on peut utiliser des f-string pour afficher des variables avec un texte. Cela commence par un f et la variable doit être incluse entre crochets. On peut aussi spécifier le nombre de chiffres après la virgule à afficher en ajoutant :.1f . Par exemple, f"Humidite: {capteur.humidity():.1f}" affichera un chiffre après la virgule car le capteur est précis à 0.5°C près.

Calculer la température ressentie

Afin de connaître la température réellement ressentie, on peut utiliser l’indice de chaleur (Heat Index en anglais). Il s’agit d’une valeur exprimée en °C qui prend en compte la température et le taux d’humidité relative dans l’air. Plus le taux d’humidité dans l’air est élevé à une température donnée, plus la température ressentie est importante.

formule température ressentie

Formule venant de Wikipédia

Cette section est réservée aux abonnés. Il vous reste 71% à découvrir.

Devenir membre premium

Déjà abonné ? Connectez-vous