Der auf der Arduino-Plattform ESP8266, ESP32 basierende JSON-Client ermöglicht die Verbindung über einen Websocket mit einem WLAN-Thermostat. Der Client führt alle 15 Sekunden eine zyklische HTTP-GET-Anfrage aus, um den Inhalt der Unterseite /get_data.json abzurufen, auf der der Webserver Zieltemperatur-, Hysterese- und aktuelle Temperaturdaten an den DS18B20-Sensor auf dem OneWire-Bus im JSON-Format verteilt . Die geladene JSON-Payload kann vom JSON-Client in einer HTTP-Antwort (Webserver-Antwort) gelesen werden und deserialisiert dann diesen String. Nach der Deserialisierung ist es möglich, auf die einzelnen Schlüssel des JSON-Formats, denen die Werte zugeordnet sind, zuzugreifen und diese zu parsen. Die übereinstimmenden Daten werden auf den UART geschrieben - Serielle Leitung - 115200 Baud / s. In der Benutzeranwendung, die zu den bestehenden Quellcodes von JSON-Clients hinzugefügt werden kann, ist es möglich, basierend auf diesen Werten Entitäten zu steuern, zum Beispiel: Öffnen von Heizkörperventilen, Magnetventil, Lüftung, Schließen von Fenstern bei aktivem Heizen usw . . Alternativ ist es möglich, Daten zu archivieren – an einen Webserver zu senden, wo sie beispielsweise in einer MySQL-Datenbank in der Loxone Hausautomation gespeichert werden können. Ein Teil der Firmware, die als MQTT oder MQTTS (encrypted MQTT) gekennzeichnet ist, ist ein erweiterter JSON-Client mit der Möglichkeit zum Senden - Publish to MQTT Broker IoT Industries Slovakia - Slowakischer kostenloser MQTT-Broker für Entwickler. Sowohl die MQTT- als auch die MQTTS-Variante verwenden einen Socket, der auch für HTTP-Anfragen zum Abrufen von JSON-Nutzlasten verwendet wird. Der vorhandene MQTT-Server kann in Ihrem Quellcode durch Ihren ersetzt werden, sodass Sie die Daten des Thermostats auch Hausautomationssystemen (Hassio, Mosquitto MQTT, Domoticz, Loxone und andere ...) zur Verfügung stellen können. In der aktuellen Software-Implementierung sendet der Mikrocontroller (JSON-Client) die erfassten Daten im Thermostat-Thema an den MQTT-Broker, während die einzelnen Temperaturen in Unterthemen 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 realisieren, die Verwendung der WiFiClientSecure-Klasse ist für ESP-Mikrocontroller erforderlich und das Einfügen eines Root-CA-Zertifikats im .pem-Format. |
Herunterladen |
ArduinoJson |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega, ESP8266 und ESP32. Es ermöglicht Ihnen, einen String in einer JSON-Struktur zu deserialisieren, es kann den Wert analysieren, der einem 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 Hauptthema Thermostat und alle seine Unterthemen. Es kann auch überprüfen, ob die Informationen erfolgreich auf MQTT Broker veröffentlicht wurden. WARNUNG: Der in der Beispielimplementierung verwendete MQTT Broker IoT Industries Slovakia ist öffentlich und somit können die Daten von jedem Benutzer geändert, überschrieben und gelesen werden! b> Wenn ein anderer Benutzer die JSON-Client-Firmware unverändert auf seinen Mikrocontroller hochlädt, werden die Daten im vordefinierten Thema sowohl von Ihnen als auch von ihm überschrieben. Es empfiehlt sich daher, während der eigentlichen Umsetzung ein anderes Thema zu wählen, an das die Daten gesendet werden.