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.

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
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.
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.
Voici un exemple de circuit pour le premier type de module DHT22 :

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 :

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 venant de Wikipédia
Cette section est réservée aux abonnés. Il vous reste 71% à découvrir.
Devenir membre premiumDéjà abonné ? Connectez-vous