Client JSON construit sur la plateforme Arduino, ESP8266, ESP32 permet la connexion via un websocket à un serveur web (interface web de Leveler). Le client effectue une requête HTTP GET cyclique toutes les 60 secondes pour récupérer le contenu du /json_output.php , où le serveur Web distribue les données JSON sur le niveau d'eau (en centimètres), le volume du puits (en litres) en fonction de la profondeur et du diamètre du puits actuellement définis. La charge utile JSON chargée peut analyser le client JSON à partir de la réponse HTTP, puis désérialiser cette chaîne. Après la désérialisation, il est possible d'accéder aux clés individuelles auxquelles les valeurs sont attribuées et de les obtenir -> parse. Les données correspondantes sont écrites sur l'UART - Ligne série - 115200 bauds / s. Dans l'application utilisateur, qui peut être ajoutée aux codes sources existants des clients JSON, il est possible de contrôler des entités en fonction de ces valeurs, par exemple : irrigation automatisée après avoir atteint un certain niveau d'eau, pompage d'eau, démarrage de pompe, chéri. Une partie du firmware marqué comme MQTT ou MQTTS (MQTT crypté) est un client JSON étendu avec la possibilité d'envoyer - Publier des données à MQTT Broker IoT Industries Slovaquie - Broker MQTT gratuit slovaque conçu pour les développeurs. Les variantes MQTT et MQTTS utilisent toutes deux un socket, qui est également utilisé pour les requêtes HTTP afin d'obtenir des charges utiles JSON. Le serveur MQTT existant peut être remplacé dans votre code source par le vôtre, vous pouvez donc également rendre les données du compteur de niveau disponibles dans les systèmes domotiques (Hassio, Mosquitto MQTT, Domoticz, Loxone et autres...). Dans l'implémentation logicielle actuelle, le microcontrôleur (client JSON) envoie les données obtenues au courtier MQTT dans le compteur de niveau de sujet, tandis que les températures individuelles sont différenciées en sous-sujets.
Le nom de la bibliothèque | Fonction bibliothèque | Télécharger |
---|---|---|
PubSubClient |
Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega, ESP8266 et ESP32. Il permet la communication via le protocole MQTT, il est également possible de mettre en place une connexion cryptée avec le MQTT Broker, l'utilisation de WiFiClientSecure est obligatoire pour les microcontrôleurs ESP. |
Télécharger |
ArduinoJson |
Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega, ESP8266 et ESP32. Il permet de désérialiser une chaîne dans une structure JSON, il peut analyser la valeur qui est attribuée à une clé. |
Télécharger |
openssl s_client -showcerts -verify 5 -connect mqttserver.com:8883 < /dev/null
Le client MQTT dispose d'un abonnement à l'indicateur de niveau de sujet principal et à tous ses sous-sujets. Dans le même temps, il peut vérifier que les informations ont été publiées avec succès sur MQTT Broker - il les réécrira dans l'UART. AVERTISSEMENT : MQTT Broker IoT Industries Slovakia, qui est utilisé dans l'exemple d'implémentation, est public et les données peuvent donc être modifiées, écrasées et lues par n'importe quel utilisateur! Si un autre utilisateur télécharge le micrologiciel client JSON sur son microcontrôleur sans aucun changement, il écrasera les données dans la rubrique prédéfinie et vous l'écraserez. Il est donc conseillé de choisir un autre sujet où les données seront envoyées lors de la mise en œuvre proprement dite.