Segger emMQTT


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).

  1. 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.
  2. 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.
  3. 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)

RisorsaValore
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.