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()