Come installare un broker MQTT con Mosquitto

preview_player
Показать описание
Il protocollo MQTT (Message Queuing Telemetry Transport) è un protocollo di messaggistica leggero, aperto e flessibile progettato per trasmettere dati tra dispositivi con risorse limitate, come sensori, attuatori e dispositivi IoT (Internet of Things). È stato sviluppato da IBM nel 1999 ed è ora un protocollo open standard ISO/IEC.

Struttura e Caratteristiche di MQTT:
Leggero: MQTT è progettato per essere estremamente leggero e richiede poche risorse di sistema. È ottimizzato per reti a banda stretta e dispositivi con limitazioni di memoria e potenza di calcolo.
Publish/Subscribe Model: MQTT utilizza un modello di pubblicazione/sottoscrizione, dove i dispositivi possono agire sia da editori (publishers) che da sottoscrittori (subscribers). Questo modello consente una comunicazione asincrona e decentralizzata.
Quality of Service (QoS): MQTT offre tre livelli di QoS per garantire la consegna affidabile dei messaggi in ambienti di rete variabili. I livelli di QoS vanno da 0 (al più una volta) a 2 (esattamente una volta).
Topic-based Messaging: MQTT organizza i messaggi intorno a "topic". Un topic è una stringa utilizzata per identificare il contenuto di un messaggio. I sottoscrittori si iscrivono a specifici topic per ricevere messaggi relativi a quei topic.

Ruoli e Interazioni:
Publisher: Un publisher è un dispositivo che invia messaggi su specifici topic a un broker MQTT. Ad esempio, un sensore di temperatura potrebbe pubblicare i dati di temperatura su un topic specifico.
Subscriber: Un subscriber è un dispositivo che si iscrive a topic specifici presso un broker MQTT per ricevere i messaggi pubblicati su quei topic. Ad esempio, un'applicazione di monitoraggio potrebbe sottoscrivere il topic dei dati di temperatura per visualizzare i dati in tempo reale.
Broker: Il broker MQTT è un server che riceve tutti i messaggi pubblicati dai publisher e li instrada ai subscriber corrispondenti. Funziona come intermediario nella comunicazione tra publisher e subscriber. Gestisce le sottoscrizioni ai topic e mantiene traccia dei client connessi.
Interazione:
Un publisher invia un messaggio su un topic specifico al broker MQTT.
Il broker riceve il messaggio e lo instrada ai subscriber che si sono precedentemente sottoscritti a quel topic.
I subscriber interessati ricevono il messaggio e possono agire di conseguenza, ad esempio, aggiornando un'interfaccia utente o attivando un'azione.

Dove si usa MQTT:
MQTT trova applicazione in una vasta gamma di scenari, inclusi:

Internet of Things (IoT): MQTT è ampiamente utilizzato nell'IoT per la comunicazione tra dispositivi connessi.
Monitoraggio e Controllo Industriale: Nei sistemi SCADA (Supervisory Control and Data Acquisition) e nell'automazione industriale per il monitoraggio e il controllo di processi.
Domotica: Per il controllo remoto e il monitoraggio di dispositivi domestici intelligenti.
Telemetria: Nella raccolta e trasmissione di dati da sensori remoti, ad esempio nei veicoli connessi.

In sintesi, MQTT è un protocollo di messaggistica leggero e efficiente che consente la comunicazione affidabile e scalabile tra dispositivi con risorse limitate. Utilizza un modello di pubblicazione/sottoscrizione e coinvolge publisher, subscriber e broker per consentire una comunicazione asincrona e decentralizzata.

Abbonati a questo canale per accedere ai vantaggi:

00:30 Cos'è il protocollo MQTT
02:55 Prepariamo il container su Proxmox
05:05 Installiamo Mosquitto
06:40 Installiamo MQTT Explorer
08:08 Abilitiamo le connessioni in ingresso
10:00 Pubblichiamo un messaggio su un topic
11:49 Il mio broker MQTT per la domotica
12:58 Proteggere il broker con delle credenziali
15:57 Esempio di client

#mqtt #mosquitto #iot #linux
Рекомендации по теме
Комментарии
Автор

Ciao Angelo, ti seguo su Fudeo e come sempre ti faccio i complimenti! Sto facendo degli studi per valutare se utilizzare questo protocollo invece del solito http Rest API, riguardo invio di dati al broker e salvataggio su db non ho problemi, ma se il device iot vorrebbe interrogare il server per ricevere dati presenti sul db come mi consiglieresti di fare? Grazie

lorenzomignacca
Автор

onestamente, ormai, non userei più installazioni su OS, anche se in vm, ma container... si tirano su in un attimo, magari con un docker compose che mappi una cartella locale, e così facendo puoi prenderti l'intera cartella con file di config e cartella data e passarla su hardware diverso, anche a livello di architettura, in pochi secondi... portabilità ed universalità del setup, per me ormai imprescindibili...

squalazzo