ESP32 et capteur température DHT22
C’est très simple de capter la température ambiante et l’humidité à l’aide d’un capteur DHT22 et un micro-contrôleur ESP32. Dans cet exemple j’ai pris une PYBSTICK-ESP32-C3, ça fonctionnera tout aussi bien avec les autres modèles d’ESP32, il suffira d’adapter le câblage.
Circuit électronique
Il y a 4 pattes sur le DHT22.
- La première est à relier au +3v.
- La seconde doit être reliée à un PIN du micro-contrôleur (Pin 3 dans mon exemple) et reliée aussi au 3v avec une résistance de 10kΩ.
- La troisième n’est reliée à rien
- La quatrième est reliée à la masse GND.
Code micro-python
Pour faire communiquer un DHT22 avec un Raspberry pi, il faut installer tout un tas de dépendances à récupérer chez Adafruit en passant par leur système circuit-python: il y a beaucoup de setup à faire avant de pouvoir coder. Avec un ESP32 c’est bien plus simple car micro-python contient nativement une bibliothèque “dht” qui permet de communiquer avec un tel capteur: le code est enfantin:
from machine import Pin
from time import sleep
import dht
#patte 2 du capteur reliée au PIN3 du micro-controleur
sensor = dht.DHT22(Pin(3))
while True:
try:
sleep(2)
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print("Température: {}°C, humidié: {}%".format(temp, hum))
except OSError as e:
print('Failed to read sensor.')
Ce code va afficher la température et l’humidité ambiante toutes les 2 secondes. Pour ne pas fausser les mesures il conviendra de bien éloigner le capteur de toute source de chaleur “électronique”. Par ailleurs il ne sert à rien d’interroger trop fréquemment ce capteur il ne suivrait pas la cadence: toutes les 2 secondes c’est déjà bien assez vite pour lui.