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