Der auf der Arduino-Plattform ESP8266, ESP32 aufgebaute JSON-Client ermöglicht die Verbindung über einen Websocket zu einem Webserver (Webinterface von Leveler). Der Client macht alle 60 Sekunden eine zyklische HTTP-GET-Anfrage, um den Inhalt der /json_output.php abzurufen , wo der Webserver JSON-Daten zu Wasserstand (in Zentimetern), Brunnenvolumen (in Litern) basierend auf der aktuell eingestellten Tiefe und dem Brunnendurchmesser verteilt. Die geladene JSON-Nutzlast kann den JSON-Client aus der HTTP-Antwort analysieren und diese Zeichenfolge dann deserialisieren. Nach der Deserialisierung kann auf die einzelnen Schlüssel, denen die Werte zugeordnet sind, zugegriffen und diese bezogen werden -> parsen. Die abgeglichenen Daten werden auf den UART geschrieben - Serielle Leitung - 115200 Baud / s. In der Benutzeranwendung, die zu den vorhandenen Quellcodes von JSON-Clients hinzugefügt werden kann, ist es möglich, Entitäten basierend auf diesen Werten zu steuern, zum Beispiel: automatische Bewässerung nach Erreichen eines bestimmten Wasserstands, Wasserpumpen, Pumpenstart, Liebling. Ein Teil der Firmware, die als MQTT oder MQTTS (verschlüsseltes MQTT) gekennzeichnet ist, ist ein erweiterter JSON-Client mit der Fähigkeit zum Senden - Veröffentlichen von Daten an MQTT Broker IoT Industries Slovakia - slowakischer kostenloser MQTT-Broker, der für Entwickler entwickelt wurde. Sowohl die MQTT- als auch die MQTTS-Variante verwenden einen Socket, der auch für HTTP-Anforderungen verwendet wird, um JSON-Payloads zu erhalten. Der vorhandene MQTT-Server kann in Ihrem Quellcode durch Ihren ersetzt werden, sodass Sie auch Daten aus dem Pegelmesser in Hausautomationssystemen (Hassio, Mosquitto MQTT, Domoticz, Loxone und andere ...) verfügbar machen können. In der aktuellen Softwareimplementierung sendet der Mikrocontroller (JSON-Client) die gewonnenen Daten an den MQTT-Broker im Topic-Level-Meter, während die einzelnen Temperaturen in Subtopics differenziert werden.
Name der Bibliothek | Bibliotheksfunktion | Herunterladen |
---|---|---|
PubSubClient |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega, ESP8266 und ESP32. Es ermöglicht die Kommunikation über das MQTT-Protokoll, es ist auch möglich, eine verschlüsselte Verbindung mit dem MQTT-Broker zu implementieren, für ESP-Mikrocontroller ist die Verwendung der WiFiClientSecure-Klasse erforderlich. |
Herunterladen |
ArduinoJson |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega, ESP8266 und ESP32. Es ermöglicht Ihnen, eine Zeichenfolge in einer JSON-Struktur zu deserialisieren, es kann den Wert analysieren, der dem Schlüssel zugewiesen ist. |
Herunterladen |
openssl s_client -showcerts -verify 5 -connect mqttserver.com:8883 < /dev/null
Der MQTT-Client hat ein abonniertes Abonnement für das Messgerät auf Hauptthemenebene und alle seine Unterthemen. Gleichzeitig kann es überprüfen, ob die Informationen erfolgreich auf MQTT Broker veröffentlicht wurden – es schreibt sie zurück in den UART. WARNUNG: Der in der Beispielimplementierung verwendete MQTT-Broker IoT Industries Slovakia ist öffentlich und daher können die Daten von jedem Benutzer geändert, überschrieben und gelesen werden! Wenn ein anderer Benutzer die JSON-Client-Firmware unverändert auf seinen Mikrocontroller hochlädt, überschreibt er die Daten im vordefinierten Thema und Sie überschreiben sie. Es ist daher ratsam, während der eigentlichen Implementierung ein anderes Thema zu wählen, an das die Daten gesendet werden.