In zilele noastre, cand procesele de automatizare au nevoie sa masoare, sa prelucreze si sa acceseze de la distanta tot mai multe date, un mare avantaj il ofera folosirea capacitatii imese de stocare si prelucrare in Cloud.
Conectarea la Cloud pentru salvarea, prelucrarea sau vizualizarea datelor, se poate face folosind protocolul MQTT.
Ce este MQTT
MQTT (Message Queue Telemetry Transport) este un standard de comunicatie prin internet, inventat si dezvoltat de IBM in 1999, care defineste un protocol de transport al mesajelor prin internet (prin TCP/IP in general), intre un server ("message broker") si mai multi clienti, pe modelul "publicare si abonare" ("publish and subscribe").
Este un protocol de conectivitate "mașină - mașină" (M2M) / "Internet of Things", conceput a fi simplu si flexibil, cu cerinte minime de resurse, util pentru conexiunile cu locații la distanță si perfect pentru toate tipurile de aplicatii IoT, fie ca sunt automatizari industriale (IIot) sau automatizari casnice/rezidentiale/de consum (Consumer Iot).
Este, de asemenea ideal si pentru aplicatii mobile, datorita dimensiunilor mici, consumului redus de energie, pachetelor de date minimizate si distributiei eficiente a informatiei catre unul sau mai multi receptori.
Datorita suportului pentru comunicatia asincrona, mesajele fiind decuplate intre client si server, atat in timp cat si in spatiu, MQTT functioneaza perfect in aplicatii in care se stabilesc conexiuni ocazionale cu furnizori de servicii medicale sau alte servicii in care actiunea trebuie sa fie independenta de raspuns.
Modelul de functionare cu MQTT
Modelul descris de standardul MQTT functioneaza dupa urmatoarea secventa de actiuni:
- Un client se conecteaza la server ("broker") si isi publica mesajele cu o anumita eticheta ("topic");
- Alti clienti se aboneaza ("subscribe") la broker, la anumite topicuri
- Brokerul transmite mai departe mesajele cu un anumit topic clientilor abonati la acel topic.
Exemplu:
Un client poate fi un senzor de temperatura IoT, care are libraria MQTT inclusa, si care publica valorile masurate, pentru a fi vizualizate de la distanta.
Daca valorile sunt publicate sub topicul "date_senzor_temperatura", atunci un alt client - care poate fi o aplicatie de procesare si vizualizare - care s-a abonat la topicul "date_senzor_temperatura", le poate accesa si folosi.
In acelasi timp, consola/pagina de administrare poate publica setarile pentru pragurile de alarma de temperatura sub topicul "setari_alarme" iar senzorul IoT abonat la acest topic va primi datele de setare.
Tipuri de mesaje MQTT
MQTT este un protocol binar, in care mesajele sunt organizate in octeti si folosesc formatul Comanda - Confirmare Comanda.
Structura oricarui pachet de date are formatul: un header fix , un header de dimensiune variabila + datele care trebuie transmise.
Headerul fix este prezent in toate mesajele si este format dintr-un octet care reprezinta tipul pachetului ("Control field") si un octet care reprezinta lungimea pachetului de date.
In functie de tipul mesajului, headerul variabil si datele pot sa lipseasca.
Cateva tipuri de mesaje:
CONNECT - mesaj trimis catre broker, care cere stabilirea unei conexiuni de la client la broker
CONNACK - confirmare trimisa de catre broker, care indica stabilirea sau nu a conexiunii
SUBSCRIBE - mesaj trimis catre broker, dupa ce conexiunea a fost stabilita, care indica abonarea la un anumit topic. Mesajul va include atat topicul cat si o indicatie despre nivelul de calitate in trimiterea mesajelor pe topicul respectiv.
SUBACK - confirmarea abonarii, trimisa de broker
UNSUBSCRIBE - mesaj trimis de client, care indica dezabonarea de la un anumit topic
PUBLISH - mesaj prin care un client publica date la broker. Contine topicul si datele care se publica.
Observatie: Librariile de MQTT contin tot ceea ce este necesar pentru o integrare rapida in proiectele Internet of Things, nefiind necesara cunoasterea in detaliu a protocolului pentru a-l putea folosi.
Exemple de aplicatii care folosesc MQTT Facebook Messenger, Amazon Web Services, OpenStack, Adafruit, Microsoft Azure, Node-RED.
Vedeti aici Solutia noastra de monitorizare temperatura si umiditate in Cloud.
Surse text si imagini:
https://en.wikipedia.org/wiki/MQTT
https://developer.ibm.com/articles/iot-mqtt-why-good-for-iot/