We interconnect
everyone
and
everything
Produciamo automazione e sistemi di monitoraggio: facciamo comunicare oggetti intelligenti e li mettiamo al tuo servizio nei settori produttivi e non solo.
IoT, IIoT, AIoT
Uno dei protocolli più importanti per l’ Internet of Things
Le origini del Protocollo MQTT (MQTT è l’acronimo di “Message Queue Telemetry Transport”, nonostante non utilizzi code di messaggi) risalgono alla fine degli ormai lontani anni 90, quando Andy Stanford-Clark e Arlen Nipper progettarono il protocollo allo scopo di monitorare gli oleodotti. Il monitoraggio di lunghe condutture in aree remote oggi come allora è un’operazione piuttosto delicata.
Quindi l’idea dei creatori dell MQTT fu quella di inventare qualcosa che fosse estremamente leggero, in modo da poter ottenere le informazioni necessarie (stato, temperatura, ecc.) da dispositivi in luoghi remoti.
Inizialmente si pensò di sviluppare un protocollo in grado di ridurre al minimo l’utilizzo della larghezza di banda (piuttosto limitata negli anni 90, soprattutto rispetto ad oggi) garantendo allo stesso tempo una trasmissione affidabile dei dati. In altre parole, l’idea era quella di facilitare la comunicazione telemetrica tra i sensori degli oleodotti e ridurre al minimo l’utilizzo della larghezza di banda.
Il modello alla base del protocollo MQTT è basato sul binomio pubblicazione-sottoscrizione. Questo modello consente a sensori ed altri dispositivi di inviare dati a un hub centrale (definito broker), dove i sottoscrittori o abbonati (spesso sistemi di monitoraggio) potevano ricevere ed elaborare queste informazioni.
Con la comparsa di prodotti IoT e micro computer quali Raspberry Pi e numeroso microcontrollori qiali Arduini, ESP e STM il protocollo MQTT ha vissuto una nuova primavera, in pratica è diventato un modo pionieristico e molto efficiente per far comunicare i dispositivi più disparati.
Con la crescita della sua adozione e la diversificazione delle sue applicazioni, il protocollo si è evoluto oltre l’uso incentrato sulla telemetria pura e cruda. Ora MQTT è ampiamente utilizzato in ambito di automazione industriale, domotica e building automation, in campo manifatturiero, in agricoltura e nella logistica.
La sua efficienza e la sua leggerezza lo rendono la scelta ideale per ambienti con risorse limitate, come sistemi embedded e microcontrollori.
Come accennato in precedenza il protocollo MQTT utilizza il modello pubblicazione-sottoscrizione. Ciò significa che al centro dell’architettura MQTT ci sono il broker MQTT e i client MQTT.
Il broker è il server che distribuisce le informazioni ai client interessati che si pubblicano/sottoscrivono topics del broker stesso. Questo è il cuore del protocollo di pubblicazione/sottoscrizione. Il broker MQTT è progettato in modo ottimale per gestire molte migliaia di client MQTT connessi contemporaneamente.
Il Client è il dispositivo che si connette al broker per inviare o ricevere informazioni. Il client MQTT, sia esso sottoscrittore o pubblicatore (o entrambi in un unico dispositivo) è un qualsiasi dispositivo, dal piccolo microcontrollore fino a un server high-end, che ha una libreria MQTT in esecuzione ed è connesso a un broker MQTT su qualsiasi tipo di rete.
I messaggi passano da un publischer, tramite un broker, a uno o più subscriber che utilizzano topic/argomenti. Gli argomenti sono stringhe UTF-8 gerarchiche. I clienti pubblicano, si iscrivono o fanno entrambe le cose su un topic. In altre parole, i topic rappresentano il modo in cui si registra interesse per i messaggi in arrivo o come si specifica dove si desidera pubblicare il messaggio.
Pubblica: clienti che inviano informazioni al broker da distribuire ai clienti interessati in base al nome dell’argomento.
I clienti comunicano al broker a quali argomenti sono interessati. Quando un cliente si iscrive a un argomento, qualsiasi messaggio pubblicato sul broker viene distribuito agli abbonati di quell’argomento. I clienti possono anche annullare l’iscrizione per non ricevere più messaggi dal broker su quell’argomento.
QoS è la qualità del servizio. Ciascuna connessione può specificare una qualità di servizio al broker con un valore intero compreso tra 1 e 3.
1) specifica al massimo una volta, oppure una e una sola volta senza richiedere una conferma di consegna. Questo viene spesso definito “fuoco e dimentica“.
2) specifica almeno una volta. Il messaggio viene inviato più volte finché non viene ricevuta una conferma, altrimenti nota come consegna confermata.
3) specifica esattamente una volta. I client mittente e destinatario utilizzano un handshake a due livelli per garantire che venga ricevuta solo una copia del messaggio, noto come consegna assicurata.
Il QoS non influisce sulla gestione delle trasmissioni dati TCP, solo tra i client MQTT.
Il protocolo MQTT è un formidabile trumento a disposizione dei moderni devices appartenenti al vasto mondo dell Internet of Things. La sua implementazione a livello client è piuttosto semplice e rapida da effettuare.
La configurazione del broker in sicurezza dotandolo di accsso utenti profilati e crittografia rappresentano la sfida maggiore di questo protocollo il che richiede lo svolgimento di tali setup a su server da parte di tecnici sistemisti esperti.
Produciamo automazione e sistemi di monitoraggio: facciamo comunicare oggetti intelligenti e li mettiamo al tuo servizio nei settori produttivi e non solo.