Inclure un objet connecté ESP8266 + DHT22 + Homie MQTT dans Home Assistant (HASS) • Domotique et objets connectés à faire soi-même

rohjyty2plvtaorwchoy-9028490
nxaylhft3ffncw3cgs6u-7119425

Après avoir présenté la librairie Homie dans les deux articles précédents (bien débuter avec Homie, principe de programmation), il est temps de passer à un exemple complet d’application. Dans ce tutoriel nous allons apprendre comment inclure une sonde de température dans le serveur domotique Home Assistant développée à base d’un ESP8266 et d’une sonde DHT22. Pour réaliser cette sonde, nous utiliserons le code développé dans le tutoriel précédent.

Si vous débutez avec Homie ou le développement d’objets connectés, vous pouvez commencer par lire ces articles

Matériel utilisé

Le circuit est un classique du genre. Si vous utilisez un shield DHT22 ou DHT11 pour Wemos d1 mini, le capteur est relié à la broche D4 (GPIO-2) de l’ESP8266.

Code Arduino du projet Homie

Créez un nouveau croquis depuis l’IDE Arduino et collez le code suivant.

Modifiez la broche sur laquelle est branchée le DHT22 puis téléversez le code. Vous pouvez changer la fréquence d’envoi des mesures en modifiant la variable TEMPERATURE_INTERVAL.

Suivez les instructions du tutoriel d’introduction à Homie pour configurer la connexion au réseau Wi-Fi et au broker MQTT (Mosquitto par exemple).

#include 
#include 

const int TEMPERATURE_INTERVAL = 300;
unsigned long lastTemperatureSent = 0;

const int PIN_DHT22 = D4;    // Broche - Pin DHT22
DHT dht(PIN_DHT22, DHT22);

HomieNode temperatureNode("temperature", "temperature");
HomieNode humidityNode("humidity", "humidity");

void loopHandler() {
  if (millis() - lastTemperatureSent >= TEMPERATURE_INTERVAL * 1000UL || lastTemperatureSent == 0) {
    float t = dht.readTemperature();
    float h = dht.readHumidity();
    
    // Affiche les mesures dans le journal - send values to the logger
    Homie.getLogger()