La chiave della tecnologia Internet of Things (IoT) è la comunicazione e i vari protocolli giocano un ruolo importante nel collegare il vasto numero di "cose" a Internet. Questo articolo presenta due protocolli IoT complementari: Message Queuing Telemetry Transport (MQTT), un protocollo Internet scalabile che supporta la comunicazione globale nell'IoT, e Modbus, un protocollo locale per le connessioni dei dispositivi a breve distanza, fornendo una comprensione dettagliata delle differenze tra loro. la differenza.
Protocollo MQTT
MQTT è un protocollo machine-to-machine aperto e leggero progettato per le interazioni IoT. La rete MQTT contiene un broker MQTT, responsabile del coordinamento delle interazioni tra i broker MQTT. Gli agenti sono editori responsabili della pubblicazione di informazioni per gli utenti.
MQTT ha pochissimi requisiti, in quanto è stato progettato per dispositivi embedded con risorse limitate. Oltre all'ingombro ridotto, MQTT offre un'eccellente efficienza di comunicazione (anche su reti a bassa larghezza di banda) e un overhead molto ridotto (rispetto a protocolli come HTTP). Nelle reti 3G, la velocità di throughput di MQTT è 93 volte superiore a quella di Representational State Transfer (REST) con HTTP.
MQTT implementa un modello publish/subscribe utilizzando metodi minimi per indicare le operazioni da eseguire su un argomento specifico. Gli agenti si connettono ai broker prima di pubblicare o sottoscrivere argomenti. Una volta completate, l'agente si disconnette dal broker. Definizione del metodo MQTT:
- Connetti - Stabilisce una connessione al broker MQTT.
- Disconnect - Disconnette dal broker MQTT.
- Pubblica - Pubblica un argomento sul broker MQTT.
- Subscribe - Sottoscrivere un argomento da un broker MQTT.
- Annullamento dell'iscrizione - Annullamento dell'iscrizione all'argomento sul broker MQTT.
MQTT consente di definire la qualità del servizio (QoS). Esistono tre livelli di QoS in MQTT:
QoS 0: Questo livello rappresenta la consegna "al massimo una volta" (nel migliore dei casi). Il messaggio non sarà confermato, quindi si tratta di un approccio one-and-done.
QoS 1: Questo livello indica la consegna "almeno una volta". Gli utenti possono ricevere i messaggi più di una volta, ma il destinatario è autorizzato a confermare la ricezione.
QoS 2: Il livello di qualità del servizio più lento, ma più garantito, è il livello 2. QoS2 sta per "solo una volta" e consiste in un handshake di consegna in quattro fasi. Questo livello è il più lento, ma il più sicuro.
Il livello di QoS scelto dipende dall'importanza dei dati e della loro consegna.
Protocollo Modbus
Modbus è un protocollo di comunicazione seriale che si è evoluto in una serie completa di protocolli che supportano più collegamenti fisici (come RS-485). Il nucleo di Modbus è un protocollo di comunicazione seriale che utilizza la modalità master-slave. Il master invia una richiesta allo slave e lo slave risponde. In una rete Modbus standard, vi è un master e fino a 247 slave (tuttavia, se si utilizza l'indirizzamento a 2 byte, questo limite può essere aumentato in modo significativo).
MQTT Con RS-485, la comunicazione tra master e slave avviene in frame che indicano codici funzione. Il codice funzione identifica la funzione da azionare, come la lettura di un ingresso indipendente, la lettura di una coda first-in-first-out o l'esecuzione di una funzione diagnostica. Lo slave risponde quindi in base al codice funzione ricevuto, che è una risposta semplice indicata da una serie di byte. Pertanto, gli slave possono essere dispositivi intelligenti o semplici dispositivi con un solo sensore.
Da questa descrizione si evince che il protocollo Modbus è molto semplice, ma la sua apertura come protocollo lo rende il protocollo di comunicazione de facto per intere industrie o sistemi SCADA.
MQTT e Modbus possono completarsi a vicenda per migliorare le prestazioni dell'Internet degli oggetti. L'uso di Modbus come interfaccia locale per gestire i dispositivi e l'uso di MQTT come protocollo globale per estendere la portata del dispositivo svolgono entrambi un ruolo importante.