|  | 

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.

Articoli simili

  •  |  |  | 

    Segger emSSL

    emSSL offre un supporto completo per i più recenti protocolli TLS, fornendo funzionalità avanzate senza i vincoli delle licenze open-source o dell’obbligo di attribuzione. Può essere integrato senza problemi in prodotti gratuiti, commerciali o proprietari senza la necessità di divulgare il codice sorgente combinato. Fornito come codice sorgente in ANSI C, emSSL garantisce la massima…

  •  |  | 

    Segger SystemView

    Panoramica SystemView è uno strumento di testing embedded progettato per analizzare e profilare il comportamento dei sistemi real-time. Offre approfondimenti dettagliati sul comportamento a runtime, superando le capacità dei debugger tradizionali. Ideale per sistemi complessi con thread multipli e interrupt, SystemView aiuta gli sviluppatori di software embedded a garantire che i propri sistemi funzionino come…

  •  |  | 

    Segger emFTP

    FTP significa File Transfer Protocol (Protocollo di Trasferimento File). È il meccanismo di base per spostare file tra macchine su reti basate su TCP/IP, come Internet. L’FTP è un protocollo client/server, il che significa che una macchina (il client) avvia il trasferimento contattando un’altra macchina (il server) ed effettuando delle richieste. Il server deve essere…

  •  | 

    Segger Flasher

    La programmazione a singola unità consiste nel caricamento del software su un unico microcontrollore o processore dedicato all’interno di un sistema più ampio. La famiglia di programmatori Flasher di SEGGER per unità singole include i modelli Flasher Pro, Pro XL, Compact e Portable PLUS. Questi strumenti universali per la programmazione in-system (ISP) offrono una programmazione…

  •  | 

    Segger Embedded Studio

    Embedded Studio di SEGGER è un ambiente di sviluppo integrato (IDE) completo, progettato specificamente per la gestione, la compilazione, il test e l’implementazione di applicazioni embedded. Grazie a una vasta gamma di funzionalità, garantisce operazioni di sviluppo fluide ed efficienti. Progettato per soddisfare le esigenze degli sviluppatori che lavorano con svariati microcontrollori, Embedded Studio ottimizza…

  •  |  | 

    Segger emPower OS

    emPower OS di SEGGER è un sistema operativo completo che fornisce l’ambiente ideale per qualsiasi sviluppatore impegnato nella creazione di sistemi embedded o dispositivi IoT. Può essere adattato per girare in sistemi a microcontrollore singolo con risorse limitate (senza memoria esterna) o scalato per ottenere le massime prestazioni su processori applicativi (MPU) senza sovraccarichi inutili….