Panoramica
Il Message Queuing Telemetry Transport (MQTT) è un protocollo di trasporto messaggi di tipo publish/subscribe (pubblica/iscriviti) progettato per funzionare sopra il protocollo TCP/IP. È semplice, leggero e aperto. Queste caratteristiche lo rendono ideale per molteplici situazioni, inclusi gli ambienti con risorse limitate come la comunicazione Machine to Machine (M2M) e i contesti Internet of Things (IoT).
L’infrastruttura MQTT è facilmente scalabile e quindi utilizzata per la comunicazione di migliaia di dispositivi. Può essere impiegato per trasmettere dati dai sensori, stati dei dispositivi, informazioni di tracciamento, eventi, dati di configurazione e molto altro.
Perché scegliere emMQTT di SEGGER?
Il client emMQTT di SEGGER funziona con qualsiasi broker MQTT che aderisca allo standard v3.1.1. Ciò consente di aggiungerlo a un’applicazione finale con la totale fiducia che tutto funzionerà correttamente.
- Esempi e Demo: Disponibili per tutti i broker più diffusi, incluso un esempio per Microsoft Windows.
- Ottimizzazione: Sviluppato da zero per ridurre al minimo l’utilizzo dello stack e i requisiti di memoria.
Caratteristiche principali
- Supporto completo MQTT versione 3.1.1.
- Client Publish/Subscribe incluso.
- Supporto per la consegna dei dati con Quality of Service (QoS).
- Basso ingombro di memoria (Low memory footprint).
- Indipendente dallo stack TCP/IP: utilizzabile con qualsiasi stack che supporti i socket.
- Include demo per publisher e subscriber e progetto per PC (Visual Studio).
Background Tecnico: Come funziona MQTT
MQTT utilizza il modello publish/subscribe, un’alternativa al classico modello client/server. A differenza di quest’ultimo, dove un client comunica direttamente con un endpoint, il modello publish/subscribe disaccoppia il mittente (publisher) dal ricevente (subscriber).
- Il Broker: È la terza parte necessaria per il trasporto dei messaggi. Il broker filtra tutti i messaggi in arrivo dai publisher e li distribuisce ai subscriber.
- I Topic: Il filtraggio avviene per “argomento” (topic). I publisher inviano messaggi relativi a un topic, i subscriber ricevono i messaggi solo se sono iscritti a quel determinato topic.
- Vantaggi: Publisher e subscriber non hanno bisogno di conoscersi né di essere attivi contemporaneamente. Devono solo conoscere l’indirizzo IP del broker.
Utilizzo dell’Applicazione emMQTT
È disponibile un’applicazione client per Windows per valutare il protocollo. Sintassi di base:
MQTTClient --pub|--sub [Opzioni]
Esempi di comando:
- Publisher semplice:
MQTTClient --pub -h mqtt.eclipse.org -p 1883 -t SEGGER/Demo -m "Hello World" - Connessione sicura (TLS):
MQTTClient --pub -h [server-aws] -p 8883 -t SEGGER/Demo --tls --cert cert.der --key key.der
Broker Supportati
emMQTT può connettersi a qualsiasi broker compatibile con la versione 3.1.1. È stato testato con successo con:
- Mosquitto: Broker open-source per Linux, Windows, macOS.
- HiveMQ: Broker aziendale per server Linux.
- AWS IoT: Amazon Web Services supporta MQTT per connettersi al suo Message Broker IoT.
Requisiti e Risorse
Stack TCP/IP
emMQTT richiede uno stack TCP/IP. Sebbene sia ottimizzato per emNet, può essere integrato con qualsiasi stack conforme alle RFC tramite una semplice struttura di callback API. Può funzionare anche con emSSL (per TLS) o WebSockets.
Utilizzo delle risorse (misurato su Cortex-M4)
| Risorsa | Valore |
| Dimensione Client (ROM) | Circa 2.4 kByte |
| Dimensione Client (RAM) | 8 Byte |
| Contesto Client (RAM) | 76 Byte |
Licenze
emMQTT è disponibile sotto vari modelli di licenza per software embedded e viene fornito come codice sorgente.
- Pagamento Unico: Non sono previste royalty né abbonamenti.
- Costi Statici: Una volta acquistata, la licenza diventa parte dei costi dell’apparecchiatura.
- Supporto: Include sei mesi di aggiornamenti e supporto tecnico da parte degli esperti SEGGER.