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 la carte Raspberry Pi Pico en Python ?

(Mis à jour le 13/02/2023)

Le DHT22 est le grand frère du célèbre et abordable capteur de température et d’humidité DHT11 pour les projets DIY. Il offre une plus grande précision que son prédécesseur, mais il a le même inconvénient : peu de mesures par seconde, soit 0.5 Hz, ou 1 mesure toutes les deux secondes. Malgré cela, il peut parfaitement convenir à la création d’une station météo connectée DIY.

DHT22 sensor overview

Le capteur DHT22 avec son boîtier blanc

Note

Le DHT22 est parfois surnommé AM2302

Prendre en main le capteur DHT22

Le DHT22 fait partie de la famille des DHTxx. Une comparaison entre le DHT11 et le DHT22 est disponible pour mieux voir leurs différences. Le DTH22 a un boîtier plastique blanc tandis que celui du DHT11 est bleu. Si votre capteur est bleu, je vous recommande de lire le tutoriel du DHT11 .

Quelques caractéristiques du DHT22

Le DHT22 peut être directement alimenté en 3.3V, ce qui est très pratique pour la Pi Pico qui fonctionne en 3.3V.

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

Il est plus approprié que le DHT11 pour mesurer des températures à l’extérieur, car il peut mesurer des températures négatives, jusqu’à -40°C.

Les performances du DHT22 sont basiques et ne sont pas aussi fiables que les capteurs BMExxx du fabricant Bosh. Tout dépend de votre application 😉

Branchements du capteur DHT22

Le capteur DHT22 possède entre 3 et 4 broches selon le module. En fait le capteur possède 4 broches, mais certains modules en exposent seulement 3. Faites attention car le brochage du module DHT22 est différent selon le fabricant.

La numérotation se fait depuis la gauche, quand vous tenez le capteur face à vous (la partie avec la grille en face de vous). L’alimentation est toujours la première broche, les autres peuvent varier.

Correspondance des broches

Module DHT22

RPi Pi Pico

1 (VCC )

3V3

2 (GND )

GND

3 (OUT )

GPIO13

Correspondance des broches

Module DHT22

RPi Pi Pico

1 (+ )

3V3

2 (OUT )

GPIO13

3 (- )

GND

Correspondance des broches

Module DHT22

RPi Pi Pico

1

3V3

2

GPIO13

3

Ne pas connecter

4

GND

En dehors des alimentations, le DHT22 n’a qu’une seule broche pour transmettre les données des capteurs.

Schéma électrique pour utiliser le module DHT22 avec une RPi Pi Pico

Si le module ne comprend pas de résistance de pull-up, il faut en ajouter une entre 4,7kΩ (ou 10kΩ) entre les broches 3V3 et le signal (GP13 ). N’importe quelle broche de sortie peut être utilisée et ici, on utilise la broche GP13 . N’oubliez pas de modifier le circuit en fonction de votre modèle s’il est légèrement différent.

dht22 Raspberry Pi Pico circuit Fritzing

Pas facile de réparer les broches 😕

dht22 upesy rp2040 board circuit Fritzing

C’est plus simple quand le numéro est indiqué 😉

Voici un exemple avec la carte uPesy RP2040 DevKit, une Pico améliorée et un module DHT22 avec la broche de signal tout à droite :

Câblage sur plaque de prototypage du DHT22 et RP2040

Câblage du DHT22 avec une carte uPesy RP2040 DevKit

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

Étant donné que 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’avez donc pas besoin d’en télécharger une supplémentaire 😎. On peut directement importer le module avec import dht .

from machine import Pin
from time import sleep
import dht

capteur = dht.DHT22(Pin(13))

while True:
  try:
    sleep(1)     # le DHT22 renvoie au maximum une mesure toute les 1s
    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 Pico sur thonny IDE

En Python, on peut utiliser des f-string pour afficher des variables avec un texte, par exemple : f"Humidite: {capteur.humidity():.1f}" . La chaîne de caractères doit commencer par un f et la variable doit être placée entre crochets. Il est possible de préciser le nombre de chiffres après la virgule qui seront affichés avec :.1f . Ici, on a mis un chiffre après la virgule car le capteur est précis à 0.5°C près.

Calculer la température ressentie

On peut calculer la température réellement ressentie en utilisant l’indice de chaleur (Heat Index en anglais). Il s’agit d’une valeur en °C qui est fondée sur la température et le taux d’humidité relative dans l’air. Plus le taux d’humidité dans l’air est important à une température donnée, plus la température ressentie est importante.

La formule est un peu longue 😨 :

formule température ressentie

Formule venant de Wikipédia

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

Devenir membre premium

Déjà abonné ? Connectez-vous