Étape 2: Software Overview
Préambule
Pour compiler ce code source, vous aurez besoin des bibliothèques supplémentaires suivantes ;
PubSubClient.h
- Par : Nick o ' Leary
- Objectif : Permet à l’appareil de publier ou de s’abonner aux sujets MQTT avec un courtier de donnée
- À partir de : https://github.com/knolleary/pubsubclient
DHT.h
- Par : Adafruit
- But : Bibliothèque pour capteur de température/humidité DHT
- À partir de : https://github.com/adafruit/DHT-sensor-library
ESP8266WiFi.h
- Par : Jonas Ekstrand
- But : Contrôle de connexion WiFi
- À partir de : https://github.com/ekstrand/ESP8266wifi
Tous les détails aussi donnés dans le code source ci-dessous.
Vous aurez aussi besoin de savoir ;
- L’adresse IP de votre courtier MQTT (au format AAA de l’IPv4. BBB. CCC. DDD): MQTT_SERVER
- Votre réseau WiFi SSID : ssid
- Le mot de passe pour votre réseau Wifi : mot de passe
Vue d’ensemble du code
Au démarrage, le logiciel se connecte au réseau WiFi en utilisant les coordonnées de connexion préalable fournie ci-dessus.
Une fois connecté à un réseau local WiFi l’appareil ITO publiera ses détails sur le thème MQTT ;
- /WiFiDevice/SwVerConfirm : Ce dernier contient un concaténée chaîne, virgules, formée par le nom du périphérique générique, unique adresse MAC du périphérique et le nom du fichier Arduino utilisé pour programmer l’appareil. dans ce cas, « esp8266,18:fe:34:9f:46:a0,ESP8266TempHumi2.ino ». Notez ici que la réponse est dynamique et seulement connu une fois que l’appareil a été mis sous tension et lire l’adresse MAC spécifique à elle.
- /WiFiDevice/Temp1Status : Sur la première connexion au WiFi cette rubrique publie un message « Connecté » au courtier. Par la suite, il est utilisé pour publier la température locale en précision de 2 décimales de degrés Celsius. Mises à jour sont émises uniquement s’il y a un changement de température pour empêcher cette IoT de « boucher » le réseau.
- /WiFiDevice/Humd1Status : Semblable à Temp1Status, mais est une représentation des teneurs en humidité locale mise à l’échelle en pourcentage.
- /WiFiDevice/HeatInd1Status : Semblable à la fois Temp1Status et Humd1Status, bien que dans ce cas, le logiciel calcule l’indice de chaleur de nouveau d’après les relevés de température et d’humidité.
Puis, il s’abonne aux sujets suivants MQTT ;
- /WiFiDevice/SwVerCommand : Lorsque la notification est reçue à ce sujet l’appareil répondra avec une publication de /WiFiDevice/SwVerConfirm . Il s’agit d’une réponse de diffusion . C’est à dire. tous les appareils pourraient répondre.
- /WiFiDevice/18:fe:34:9f:46:a0 / SwVerCommand : lorsque la notification est reçue de ce sujet, l’appareil répond par une publication /WiFiDevice/SwVerConfirm . Il s’agit d’une réponse ciblée . C’est à dire. seulement cet appareil répondra.
- /WiFiDevice/Led2Command : Lorsque la notification est reçue de ce sujet, l’appareil a conduit sortie est définie en conséquence. Charge utile « 1 » = Led allumée, charge utile « 0 » = Led off. Une fois qu’une commande a été mises en œuvre le dispositif répondra en publiant l’état du voyant via la rubrique de /WiFiDevice/Led2Confirm 'On' ou 'Off'
Une fois terminé le logiciel maintenant tombe dans une boucle de contrôle des connexions WiFi et courtier, ainsi que tout changement dans les niveaux de température ou d’humidité ou de nouvelles publications telles que d’allumer la Led locale ou d’éteindre etc..