Protocolli snelli per l'IoT: MQTT, CoAP e LwM2M

Il volume di dati che un dispositivo IoT trasmette durante la comunicazione ha un grande effetto sulla sua domanda di energia. Più dati trasmette il dispositivo, più a lungo deve rimanere attivo e maggiore è il suo consumo energetico. Oltre ai metodi basati sulla rete, come PSM ed eDRX, che determinano gli intervalli di attività di un dispositivo a livello di rete, la scelta del giusto protocollo di comunicazione può far risparmiare altrettanta energia e forse rendere obsoleti PSM o eDRX.

Serie di blog "Risparmio energetico nelle reti LPWAN cellulari"

  • Parte 1: Possibilità e limiti di PSM e eDRX

  • Parte 2: MQTT, CoAP e LwM2M: protocolli snelli per l'IoT

  • Parte 3: 1NCE Data Broker: Maggiore durata della batteria con NB-IoT e LTE-M

    A differenza di PSM ed eDRX, le cui funzioni dipendono fortemente dai singoli operatori di rete, la scelta dei protocolli di comunicazione si applica in modo universale e rende l'ottimizzazione del consumo energetico del dispositivo coerente ovunque, un prerequisito per scalare un prodotto per distribuzioni di massa, perché lo sviluppatore non deve tenere conto della SIM e dell'operatore di rete in uso.

MQTT: sottile, ma non abbastanza

Il protocollo Message Queuing Telemetry Transport (MQTT) è stato progettato per le comunicazioni machine-to-machine (M2M) nel 1999, molto prima che si parlasse di "Internet degli oggetti". Oggi è un protocollo standard per la comunicazione tra dispositivi. MQTT utilizza il Transport Control Protocol (TCP) per il trasporto dei dati. La comunicazione funziona secondo un modello client/server. Il dispositivo IoT è il client e parla con un server designato come "broker", ad esempio un servizio cloud fornito da Amazon Web Service (AWS).

L'elemento centrale di MQTT è l'organizzazione dei dati in cosiddetti "argomenti". Il topic è una stringa ordinata gerarchicamente. In un esempio di stazione meteorologica, potrebbe essere organizzato come " weatherstation_a/temperature/ground " per un sensore di temperatura al suolo della stazione meteorologica A, mentre " weatherstation_a/temperature/air " definirebbe un sensore di temperatura dell'aria della stessa stazione. A seconda del valore da recuperare, un'applicazione IoT può sottoscrivere questi argomenti per leggere i singoli dati.

Lo svantaggio di queste stringhe è che possono essere antieconomiche nella trasmissione dei dati. Queste stringhe possono diventare lunghe, aumentando il volume di dati che un sensore trasmette e quindi consumando inutilmente energia. Per i sensori semplici, in cui la potenza di calcolo e il consumo energetico sono strettamente limitati, questa architettura può diventare rapidamente un problema.

CoAP: Più snello, grazie a UDP

Il Constrained Application Protocol (CoAP) gestisce le risorse in modo più economico. A differenza di MQTT, si basa sullo User Datagram Protocol (UDP). A differenza del TCP, UPD è un protocollo senza connessione e orientato ai pacchetti. Con il TCP, ad esempio, tutti i pacchetti di dati arrivano al destinatario numerati e devono essere confermati prima che il pacchetto di dati successivo venga inviato. UDP invia i pacchetti di dati uno dopo l'altro, senza ulteriori controlli di errore. Ciò consente di risparmiare fatica, tempo e, soprattutto, energia.

Per questo motivo CoAP è più adatto quando i dispositivi devono prestare molta attenzione alle loro esigenze di risorse. I dispositivi a batteria di solito hanno un hardware semplice con una potenza di calcolo limitata. Non sono progettati per eseguire operazioni di calcolo complesse, ma piuttosto per trasmettere dati in modo rapido e semplice, consumando meno energia possibile.

LwM2M: il nuovo arrivato basato su CoAP

Lightweight M2M (LwM2M) è la risposta alla domanda del mercato di uno standard comune per la gestione dei dispositivi a basso consumo nell'Internet degli oggetti. Sviluppato da Open Mobile Alliance, LwM2M è ancora piuttosto giovane. LwM2M è stato presentato per la prima volta nel febbraio 2017.

Che cos'è LwM2M?

Lightweight M2M si basa su CoAP e mira a semplificare e standardizzare la gestione dei dispositivi nell'Internet degli oggetti. Non è quindi progettato solo per la messaggistica, ma include anche elementi per la gestione dei dispositivi.

Per lo scambio di informazioni tra dispositivo e piattaforma, LwM2M utilizza un modello di dati standardizzato che è indipendente dal rispettivo produttore di dispositivi. Il modello è suddiviso gerarchicamente in tre livelli di oggetti: Oggetto, Istanza di oggetto e Risorsa. A ogni oggetto viene assegnato un ID univoco, che viene poi combinato per formare un percorso e un URL CoAP.

Lightweight M2M è la risposta moderna a MQTT, che ha superato la sua utilità iniziale. Tuttavia, non è ancora pienamente supportato dalle principali piattaforme cloud IoT, come AWS o Azure. A differenza di MQTT, che si limita alla messaggistica, LwM2M può fare di più:

  1. bootstrap sicuro: il meccanismo per connettere un dispositivo alla piattaforma di gestione in modo sicuro e per gestire tutte le chiavi e i certificati necessari.

  2. manutenzione remota: la possibilità di configurare a distanza un dispositivo o di eseguire determinate funzioni.

  3. aggiornamento del firmware: l'esecuzione di un aggiornamento sicuro del firmware attraverso la rete (aggiornamento over-the-air) per dotare il dispositivo di nuove funzioni o per correggere errori funzionali.

  4. gestione dei guasti: abilitazione del dispositivo a segnalare i malfunzionamenti.

  5. segnalazione: consente al dispositivo di segnalare i cambiamenti di stato e di interrogare le impostazioni di configurazione correnti.


Si può pensare a LwM2M come a un browser web che abilita servizi aggiuntivi a valore aggiunto dal puro protocollo di trasporto HTTP. CoAP, la base di comunicazione di LwM2M, non è poi così lontana dall'Hypertext Transfer Protocol (HTTP). Nella terza parte della nostra serie di blog sul risparmio energetico in LPWAN, scopri come l'uso di protocolli snelli influisce sul consumo energetico su un esempio reale.