|  | 

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.

  • Licenza perpetua: Non sono previste royalty né abbonamenti.
  • Supporto: Include sei mesi di aggiornamenti e supporto tecnico da parte degli esperti SEGGER.

Articoli simili

  •  | 

    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 emRun

    Panoramica La maggior parte delle toolchain che utilizzano GCC o LLVM si appoggia a newlib, newlib-nano o glibc. Sfortunatamente, queste librerie presentano svantaggi significativi rispetto alle librerie di runtime professionali per sistemi embedded. È qui che entra in gioco emRun. Può essere utilizzato con GCC, LLVM e altre toolchain per fornire una libreria di runtime…

  •  | 

    SEGGER Flasher SDK

    Panoramica Flasher SDK consente agli sviluppatori di creare Flasher App che vengono eseguite direttamente sui programmatori SEGGER Flasher. Queste app gestiscono la programmazione, i test di sistema e la diagnostica per garantire flussi di lavoro efficienti e un’elevata qualità del prodotto. L’SDK permette inoltre agli utenti di aggiungere il supporto per dispositivi nuovi o non…

  •  | 

    Segger emCompress

    La riduzione delle dimensioni dei dati per l’archiviazione e il trasferimento è estremamente preziosa nei sistemi embedded. Una dimensione di archiviazione ridotta minimizza la complessità e i costi dei sistemi mantenendo bassi i requisiti di memoria. Una dimensione di trasferimento ridotta permette di superare i limiti della larghezza di banda disponibile per l’invio e la…

  •  |  | 

    Segger IoT Toolkit

    Panoramica L’IoT Toolkit è una raccolta di librerie progettate per comunicare senza sforzo con i moderni dispositivi IoT, permettendoti di concentrarti sulle parti cruciali della tua applicazione. Sebbene i dispositivi IoT parlino tipicamente linguaggi semplici, implementare questi protocolli secondo gli standard ufficiali può diventare un onere gravoso. L’IoT Toolkit fornisce librerie collaudate per aiutarti a…

  •  | 

    SEGGER embOS Ultra

    Panoramica embOS-Ultra è un sistema operativo in tempo reale (RTOS) ad alte prestazioni che sfrutta l’innovativo scheduling RTOS basato sui cicli (cycle-based). Offre massime prestazioni e una precisione al singolo ciclo di CPU con latenza minima in applicazioni mission-critical e ad alto rendimento, dove il tempismo deterministico e la scalabilità sono essenziali. La tecnologia SEGGER…