Der auf der Arduino-Plattform ESP8266, ESP32 basierende JSON-Client ermöglicht die Verbindung über einen Websocket mit einem Ethernet-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-Nutzlast kann den JSON-Client aus der HTTP-Antwort parsen und dann diese Zeichenfolge deserialisieren. Nach der Deserialisierung ist es möglich, auf die einzelnen Schlüssel zuzugreifen, denen die Werte zugeordnet sind und diese zu erhalten -> parsen. Die übereinstimmenden Daten werden auf den UART geschrieben - Serielle Leitung - 115200 Baud / s. In einer Benutzeranwendung, die zu bestehenden JSON-Client-Quellcodes hinzugefügt werden kann, können Entitäten basierend auf diesen Werten gesteuert werden, z. 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 an den MQTT-Broker an das Wurzelthema des Thermostats, während die einzelnen Temperaturen in Unterthemen unterschieden 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 -connect mqttserver.com:8883 -showcerts < /dev/null 2>/dev/null | openssl x509 -in /dev/stdin -sha1 -noout -fingerprint
openssl s_client -showcerts -verify 5 -connect mqttserver.com:8883 < /dev/null
637 / 5000 Výsledky prekladov 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.