JSON-klient bygget på Arduino-platformen, ESP8266, ESP32 tillader forbindelse via en websocket til en webserver (webgrænseflade af Leveler). Klienten foretager en cyklisk HTTP GET-anmodning hvert 60. sekund for at hente indholdet af /json_output.php , hvor webserveren distribuerer JSON-data på vandstand (i centimeter), brøndvolumen (i liter) baseret på aktuelt indstillet dybde og brønddiameter. Den indlæste JSON-nyttelast kan parse JSON-klienten fra HTTP-svaret og derefter deserialisere denne streng. Efter deserialisering er det muligt at få adgang til de individuelle nøgler, som værdierne er tildelt, og få dem -> parse. De matchede data skrives til UART - Seriel linje - 115200 baud/s. I brugerapplikationen, som kan føjes til de eksisterende kildekoder for JSON-klienter, er det muligt at styre enheder baseret på disse værdier, for eksempel: automatiseret kunstvanding efter at have nået et bestemt vandniveau, vandpumpning, pumpestart, skat. En del af firmwaren markeret som MQTT eller MQTTS (krypteret MQTT) er en udvidet JSON-klient med mulighed for at sende - Publicer data til MQTT Broker IoT Industries Slovakia - Slovakisk gratis MQTT Broker designet til udviklere. Både MQTT- og MQTTS-varianterne bruger en socket, som også bruges til HTTP-anmodninger for at opnå JSON-nyttelast. Den eksisterende MQTT-server kan erstattes i din kildekode af din, så du også kan stille data fra niveaumåleren til rådighed i hjemmeautomationssystemer (Hassio, Mosquitto MQTT, Domoticz, Loxone og andre ...). I den aktuelle softwareimplementering sender mikrocontrolleren (JSON-klienten) de opnåede data til MQTT Broker i emneniveaumåleren, mens de individuelle temperaturer er differentieret i underemner.
Bibliotekets navn | Bibliotek funktion | Hent |
---|---|---|
PubSubClient |
Bibliotek til AVR mikrocontrollere (ATmega) Arduino Uno / Nano / Mega, ESP8266 og ESP32. Det muliggør kommunikation via MQTT-protokollen, det er også muligt at implementere en krypteret forbindelse med MQTT Broker, brugen af WiFiClientSecure er påkrævet for ESP-mikrocontrollere. |
Hent |
ArduinoJson |
Bibliotek til AVR mikrocontrollere (ATmega) Arduino Uno / Nano / Mega, ESP8266 og ESP32. Det giver dig mulighed for at deserialisere en streng i en JSON-struktur, den kan parse den værdi, der er tildelt en nøgle. |
Hent |
openssl s_client -showcerts -verify 5 -connect mqttserver.com:8883 < /dev/null
MQTT-klienten har et abonnement på hovedemneniveaumåleren og alle dens underemner. Samtidig kan den bekræfte, at informationen er blevet offentliggjort på MQTT Broker - den vil skrive den tilbage til UART. ADVARSEL: MQTT Broker IoT Industries Slovakia, som bruges i eksempelimplementeringen, er offentlig, så dataene kan ændres, overskrives, læses af enhver bruger! Hvis en anden bruger uploader JSON-klientens firmware til deres mikrocontroller uden nogen ændring, vil dataene i det foruddefinerede emne blive overskrevet af dig såvel som af ham. Det er derfor tilrådeligt at vælge et andet emne, hvor dataene vil blive sendt under selve implementeringen.