Cet article montre l’utilisation d’un capteur de température DHT22 connecté sur un ESP32 pour envoyer régulièrement les valeurs de température et d’humidité vers un serveur MQTT. Il est conseillé d’utiliser un module DHT22, car celui-ci est compatible en tension 3.3V avec l’esp32.

L’ESP32 utilisé dans cette présentation est une carte de développement ESP-VROOM-32 de Espressif.

Le développement a été réalisé avec Thonny en MicroPython(esp32). L’application utilise un fichier « mqtt_pub.ini » situé sur la mémoire flash permettant de configurer le logiciel:
Normalement la bibliothèque dht est disponible dans toutes les implémentations MicroPython. Le brochage est simple, on peut utiliser n’importe quelle broche (GPIO) de l’esp32. Exemple:

Ce schéma a été réalisé avec TinyCad. Les modules DHT11 et DHT22 ont le méme brochage
L’application envoie à la période fixée dans le fichier de configuration trois topics
- numéro de bloc
- température
- humidité
Le numéro de bloc est un entier à quatre chiffres permettant de numéroter les messages. Lorsque le compteur passe par 9999, il revient à zéro. Cela permet de faciliter les contrôles pour déterminer si l’application est toujours active.
Sur l’esp32, on utilise la LED bleue pour indiquer si tout est ok (LED bleue allumée).
Sur la mémoire flash, un fichier log « mqtt_out.log » contient les 30 dernières informations décrivant le fonctionnement de l’application. Ce nombre peut être facilement modifié dans le programme source (voir la fonction « pl »).
En cas de problème de connexion wifi, l’application essaie automatiquement de se reconnecter au wifi et au serveur MQTT.
Source à copier sous le nom boot.py de l’esp32: