Projektitason mittarivarasto, jossa on lähdekoodeja JSON-asiakkaille - Github: Tasomittari
Arduino Ethernet Wiznet W5100 / W5500 ESP8266 ESP32 Ultraääni HC-SR04 JSN-SR04T Sigfox JSON MQTT
JSON DATA
JSON DATA
ArduinoJSON
ArduinoJSON
MQTT
MQTT
HTTP
HTTP

JSON-asiakkaat - Tasomittari


Arduino-alustalle rakennettu JSON-asiakas, ESP8266, ESP32 mahdollistaa yhteyden verkkopistorasialla verkkopalvelimeen (Levelerin verkkoliittymä). Asiakas tekee syklisen HTTP GET -pyynnön 60 sekunnin välein noutaakseen /json_output.php sisällön , jossa verkkopalvelin jakaa JSON-tiedot vedenpinnasta (senttiä), kaivon tilavuudesta (litroina) kulloinkin määritetyn syvyyden ja kaivon halkaisijan perusteella. Ladattu JSON-hyötykuorma voi jäsentää JSON-asiakkaan HTTP-vastauksesta ja sitten sarjoittaa tämän merkkijonon. Desaroinnin jälkeen on mahdollista päästä käsiksi yksittäisiin avaimiin, joille arvot on määritetty, ja hankkia ne -> jäsentää. Vastaavat tiedot kirjoitetaan UART - sarjalinjalle - 115200 baudi / s. Käyttäjäsovelluksessa, joka voidaan lisätä olemassa oleviin JSON-asiakkaiden lähdekoodeihin, on mahdollista ohjata kokonaisuuksia näiden arvojen perusteella, esimerkiksi: automaattinen kastelu tietyn vedenpinnan saavuttamisen jälkeen, veden pumppaus, pumpun käynnistys, kulta. Osa laiteohjelmistosta, joka on merkitty nimellä MQTT tai MQTTS (salattu MQTT), on laajennettu JSON-asiakas, joka pystyy lähettämään - Julkaise tiedot MQTT Broker IoT Industries Slovakialle - Slovakian ilmainen MQTT Broker, joka on suunniteltu kehittäjille. Sekä MQTT- että MQTTS-versiot käyttävät pistoketta, jota käytetään myös HTTP-pyyntöihin JSON-hyötykuormien saamiseksi. Olemassa oleva MQTT-palvelin voidaan korvata lähdekoodissasi omallasi, joten voit myös saada tasomittarin tiedot saataville kotiautomaatiojärjestelmissä (Hassio, Mosquitto MQTT, Domoticz, Loxone ym...). Nykyisessä ohjelmistototeutuksessa mikrokontrolleri (JSON-asiakas) lähettää saadut tiedot MQTT Brokerille aihetason mittarissa, kun taas yksittäiset lämpötilat erotetaan ala-aiheittain.

Esimerkkiohjelmatoteutuksia JSON-asiakkaille: TÄSSÄ

Saatavilla olevat kirjastot mikro-ohjaimille (Arduino / ESP) - JSON-asiakkaat


Kirjaston arkisto (.zip) laajenna muotoon C:/Users/[User]/Documents/Arduino/libraries
Kirjaston nimi Kirjaston toiminto ladata
PubSubClient

Kirjasto AVR-mikro-ohjaimille (ATmega) Arduino Uno / Nano / Mega, ESP8266 ja ESP32. Se mahdollistaa viestinnän MQTT-protokollan kautta, on myös mahdollista toteuttaa salattu yhteys MQTT Brokeriin, ESP-mikrokontrollereille vaaditaan WiFiClientSecure-luokan käyttö.

ladata
ArduinoJson

Kirjasto AVR-mikro-ohjaimille (ATmega) Arduino Uno / Nano / Mega, ESP8266 ja ESP32. Sen avulla voit deserialisoida merkkijonon JSON-rakenteessa, se voi jäsentää avaimelle määritetyn arvon.

ladata
MQTTS-toteutus on saatavilla ESP8266- ja ESP32-mikro-ohjaimille. ESP8266 ja ESP32 käyttävät juuri CA -varmennetta salattua yhteyttä varten MQTT-palvelimeen. MQTT-palvelimen salattu portti on oletuksena 8883, salaamaton 1883. Päävarmenteen hankkimiseen tietylle MQTT-palvelimelle (domain) on mahdollista käyttää OpenSSL-työkalua, jonka avulla kyseiset tiedot on helppo hakea ja näyttää. Yksittäiset sertifikaatit on listattu Chain-of-Trust-järjestyksessä, ts. päävarmentajalta keskitasolle.
Komento hankkia juuri CA -varmenne, joka myönsi varmenteen MQTT-palvelimelle (myöntäjä):
openssl s_client -showcerts -verify 5 -connect mqttserver.com:8883 < /dev/null

Esimerkkitietoluettelo JSON-muodossa

{
"value": 378,
"volume": 1900.04
}

Julkaisussa MQTT Brokerissa käytetyt aiheet ovat:


  • hladinomer/objem - kaivon tilavuudelle litroina
  • hladinomer/vyska - nykyiselle vedenkorkeudelle senttimetreinä

  • Aihe Subscribe:


  • hladinomer/# - poistaa kaikki ala-aiheet hladinomer/, siis kaivon tilavuus, vedenpinnan korkeus
  • MQTT-asiakkaalla on pääaihetason mittarin tilaus ja kaikki sen ala-aiheet. Samalla se voi varmistaa, että tiedot on julkaistu onnistuneesti MQTT Brokerissa – se kirjoittaa ne takaisin UART:lle. VAROITUS: Esimerkkitoteutuksessa käytetty MQTT Broker IoT Industries Slovakia on julkinen, joten kuka tahansa käyttäjä voi muuttaa, ylikirjoittaa tai lukea tietoja! Jos joku muu käyttäjä lataa JSON-asiakasohjelmiston mikro-ohjaimeensa ilman muutoksia, sekä sinä että hän korvaa ennalta määritetyn aiheen tiedot. Siksi on suositeltavaa valita toinen aihe, johon tiedot lähetetään varsinaisen toteutuksen aikana.


    JSON PHP -tulostus, jäsentäminen ja julkaisu MQTT Brokerille:


    JSON client (Arduino, ESP8266, ESP32) pre Hladiomer - UART výstup

    HiveMQ-asiakas - Tilaa aihe hladinomer/#

    JSON client MQTT Broker IoT Industries Slovakia - výstup topicu - Subscribe termostat