|  | 

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 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 Ozone

    Ozone è un ambiente di debugg grafico stand-alone completo per applicazioni embedded. Con Ozone è possibile eseguire il debug di qualsiasi applicazione basata su Arm o RISC-V a livello di sorgente (C, C++ e Rust) e assembly. Ozone può caricare applicazioni create con quasi tutti i tipi di toolchain o ambienti di sviluppo integrati (IDE),…

  •  | 

    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…

  •  |  | 

    emFile RAID 5

    Sebbene l’acronimo R-A-I-D derivi da Redundant Array of Independent (originariamente Inexpensive) Disks, i termini “recuperabile” e “replicabile” sono più accurati di “ridondante”. Storicamente, i dispositivi di archiviazione sono stati i dischi rigidi. Nelle applicazioni embedded, questi possono essere qualsiasi tipo di dispositivo di memoria (NAND, NOR, SD) e, date le dimensioni del sistema, l’archiviazione è…

  •  |  | 

    Segger emRun++

    emRun++ è una libreria standard C++ completa, utilizzabile con qualsiasi toolchain. È stata specificamente ottimizzata per sistemi e applicazioni embedded. In quanto linguaggio di programmazione moderno, il C++ sta diventando sempre più importante nel settore embedded, offrendo agli sviluppatori opzioni sempre più vaste. Con questo obiettivo, emRun++ viene costantemente aggiornata per soddisfare i più moderni…

  •  |  | 

    Segger emFloat

    Sviluppato e perfezionato per oltre due decenni, emFloat è un componente altamente ottimizzato di emRun (la libreria runtime C di SEGGER) ed è parte integrante di SEGGER Embedded Studio. Progettato per essere “plug-and-play”, emFloat può sostituire la libreria a virgola mobile predefinita, offrendo prestazioni superiori con meno codice. Estremamente veloce e compatto, garantisce prestazioni simili…