Étape 2: Logiciel aperçu - partie A
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
Bounce2.h
- Par : Thomas O Fredericks
- But : Commutateur entrée de rebondir dans le logiciel
- À partir de : https://github.com/thomasfredericks/Bounce2
LiquidCrystal_I2C_PCF8574.h
- Par : Steve Quinn
- But : Bibliothèque pour contrôler, lecture et écriture à l’écran LCD affiche
- De:
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): adresse IP default (Server)
- Une adresse IP libre d’utiliser pour votre IoT périphérique si vous préférez ne pas utiliser le 'USE_DHCP_FOR_IP_ADDR' #define dans le code.
Vue d’ensemble du code
Au démarrage, le logiciel se connecte au réseau Ethernet en utilisant les coordonnées de connexion préalable fournie ci-dessus.
Une fois connecté à un réseau local l’appareil ITO publiera ses détails sur les sujets suivants de MQTT ;
- /EthernetDevice/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, « WIZNet5100,de:ad:be:ef:fe:ed,EthernetTempHumiCD2.ino ».
- /EthernetDevice/Temp1Status : Sur la connexion initiale au réseau 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é 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.
- /EthernetDevice/Humd1Status : Semblable à Temp1Status, mais est une représentation des teneurs en humidité locale mise à l’échelle en pourcentage.
- /EthernetDevice/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é.
Il s’abonne aux sujets suivants MQTT et répond à eux via une fonction de « rappel » ;
- /EthernetDevice/SwVerCommand : Lorsque la notification est reçue à ce sujet l’appareil répondra avec une publication de /EthernetDevice/SwVerConfirm . Il s’agit d’une réponse de diffusion . C’est à dire. tous les appareils pourraient répondre.
- /EthernetDevice/de : ad : être : ef : fe : ed / SwVerCommand : lorsque la notification est reçue de ce sujet, l’appareil répond par une publication /EthernetDevice/SwVerConfirm . Il s’agit d’une réponse ciblée . C’est à dire. seulement cet appareil répondra.
- /EthernetDevice/Led1Command : 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 /EthernetDevice/Led1Confirm 'On' ou 'Off'
- /EthernetDevice/Button1Status : lors de la réception de la notification de la publication sur ce sujet, l’appareil va répondre en publiant l’état de bouton actuel par un sujet de /EthernetDeviceButton1Command 'Pressed' ou 'Produit'. De cette façon, l’état du bouton peut être vérifiée à tout moment. Notez également si l’état du bouton change indépendamment, via un bouton, puis l’appareil va automatiquement publier un sujet /EthernetDevice/Button1Command .
- /WiFiDevice/Temp1Status : similaire à /EthernetDevice/Temp1Status mais il contient le périphérique distant de l’IoT WiFi température
- /WiFiDevice/Humd1Status : comme indiqué ci-dessus en /EthernetDevice/Humd1Status mais pour les niveaux d’humidité au périphérique distant de IoT WiFi.
Une fois terminé le logiciel maintenant tombe dans une boucle de contrôle les connexions courtier ainsi que tout changement de situation bouton d’entrée, les niveaux locaux de température ou d’humidité ou les nouvelles publications de température et d’humidité. Tous les changements de température et d’humidité les et distants sont affichés sur le système LCD en temps réel.