{"id":386567,"date":"2022-01-11T10:57:02","date_gmt":"2022-01-11T09:57:02","guid":{"rendered":"https:\/\/iotworlds.com\/il-significato-di-mqtt-per-connettere-dispositivi-iot-con-applicazioni-web\/"},"modified":"2022-01-11T10:57:08","modified_gmt":"2022-01-11T09:57:08","slug":"il-significato-di-mqtt-per-connettere-dispositivi-iot-con-applicazioni-web","status":"publish","type":"post","link":"https:\/\/iotworlds.com\/it\/il-significato-di-mqtt-per-connettere-dispositivi-iot-con-applicazioni-web\/","title":{"rendered":"Il significato di MQTT per connettere dispositivi IoT con applicazioni Web"},"content":{"rendered":"\n<p>Con tutti i protocolli di messaggistica disponibili, pu\u00f2 essere difficile sceglierne uno solo. E con cos\u00ec tante opzioni disponibili, \u00e8 fin troppo facile trovarsi in una situazione in cui ne provi una che non funziona per te o per il tuo team. Mqtt \u00e8 un protocollo leggero che richiede solo client e broker, quindi \u00e8 perfetto per le situazioni in cui non vuoi problemi. Questo articolo esplorer\u00e0 di cosa \u00e8 capace questo protocollo e come raggiunge queste cose!<\/p>\n\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 MQTT?<\/h2>\n\n<p>Mqtt \u00e8 un protocollo di messaggistica leggero che richiede solo client e broker. \u00c8 perfetto per le situazioni in cui non vuoi problemi o complicazioni, perch\u00e9 richiede cos\u00ec poco da te.<\/p>\n\n<h2 class=\"wp-block-heading\">Che cos&#8217;\u00e8 un protocollo di messaggistica?<\/h2>\n\n<p>Un protocollo di messaggistica \u00e8 un insieme di regole utilizzate per consentire alle applicazioni su macchine diverse di comunicare. Mqtt \u00e8 stato progettato specificamente per l&#8217;Internet delle cose (IoT). Con una gamma cos\u00ec ampia di altri protocolli disponibili, pu\u00f2 sembrare strano crearne un altro per questo scopo. Ma, dal momento che cos\u00ec tanti dispositivi e servizi si basano su questo campo, probabilmente ne vedremo sempre di pi\u00f9 nel tempo!<\/p>\n\n<h2 class=\"wp-block-heading\">Cosa c&#8217;\u00e8 di cos\u00ec bello in MQTT?<\/h2>\n\n<p>Mqtt \u00e8 davvero unico, perch\u00e9 ti d\u00e0 cos\u00ec tanto con quasi niente. Non hai bisogno di un server dedicato o di un forwarder come fanno molti altri protocolli, il che significa che nessun mal di testa per l&#8217;infrastruttura. Tutto ci\u00f2 di cui hai bisogno \u00e8 un broker gi\u00e0 esistente e qualsiasi hardware con una connessione a Internet. Grazie alla qualit\u00e0 del suo lavoro e alla sua leggerezza, questo protocollo sta diventando sempre pi\u00f9 popolare. Poich\u00e9 \u00e8 open source e gratuito, puoi iniziare facilmente senza dover pagare commissioni o costi di abbonamento. E con il supporto del broker integrato nella libreria MQTT per Arduino, siamo entusiasti di vedere quali grandi prodotti arriveranno sulla nostra strada.<\/p>\n\n<h2 class=\"wp-block-heading\">Quali sono le caratteristiche di MQTT?<\/h2>\n\n<p>Mqtt \u00e8 uno dei migliori esempi di protocollo di messaggistica semplice e leggero che troverai. Il suo principale punto di forza \u00e8 la facilit\u00e0 d&#8217;uso: qualsiasi dispositivo con una connessione Internet pu\u00f2 sfruttare ci\u00f2 che questo protocollo ha da offrire. Ma c&#8217;\u00e8 molto di pi\u00f9 della semplice facilit\u00e0 d&#8217;uso di questo protocollo. Esploriamo cos&#8217;altro puoi aspettarti da esso!<\/p>\n\n<h2 class=\"wp-block-heading\">Esempi di utilizzo di MQTT<\/h2>\n\n<p>un. Dispositivi IoT in una fabbrica che controlla pompe e valvole<\/p>\n\n<p>B. Una stazione meteorologica con un sensore che segnala a un database sul cloud<\/p>\n\n<p>C. Un sistema di allarme che segnala quando le porte si aprono o si chiudono<\/p>\n\n<p>D. Alcune luci in un ufficio si accendono quando viene rilevato un movimento<\/p>\n\n<h2 class=\"wp-block-heading\">1. Che cos&#8217;\u00e8 MQTT e quali sono le sue caratteristiche?<\/h2>\n\n<p>MQTT sta per Message Queuing Telemetry Transport, che potrebbe sembrare complicato ma significa semplicemente che \u00e8 un modo per i dispositivi IoT di comunicare tra loro tramite Internet. Funziona su TCP\/IP come HTTP, SMTP ecc., ma a differenza di HTTP che serve per comunicare su Internet, MQTT viene utilizzato con dispositivi collegati tra loro con una rete, di solito una rete IP. \u00c8 pi\u00f9 comunemente usato nell&#8217;IoT con dispositivi embedded a bassa potenza che si connettono a cose come Raspberry Pi o schede Arduino.<\/p>\n\n<h2 class=\"wp-block-heading\">2. Come funziona?<\/h2>\n\n<p>Funziona un po&#8217; come la posta elettronica. Un dispositivo IoT pubblica un messaggio in un argomento. \u00c8 come inviare un&#8217;e-mail a qualcuno, ma invece di una persona \u00e8 il nome di un argomento. Il messaggio pu\u00f2 contenere fino a 2kb di dati e viene inviato come pacchetto.<\/p>\n\n<p>Un secondo abbonato MQTT ascolta i pacchetti con il proprio ID univoco o ID client. Quindi fa qualcosa con il messaggio. \u00c8 come quando qualcuno riceve un&#8217;e-mail, ci fa qualcosa; leggerlo, inviarlo da qualche altra parte ecc.<\/p>\n\n<p>MQTT ha un livello di qualit\u00e0 del servizio (QoS), il che significa che possono esserci diversi livelli di priorit\u00e0 per i messaggi. Il livello di QoS \u00e8 impostato dal client e ogni pacchetto inviato ha quel livello di priorit\u00e0.<\/p>\n\n<h2 class=\"wp-block-heading\">3. Vantaggi di MQTT<\/h2>\n\n<p>\u00c8 leggero, funziona su TCP\/IP, meno sovraccarico di HTTP<\/p>\n\n<p>I messaggi vengono archiviati in una coda finch\u00e9 non possono essere inviati al dispositivo di destinazione<\/p>\n\n<p>Ha il supporto di riconnessione integrato<\/p>\n\n<p>Ogni client pu\u00f2 avere la propria configurazione di sicurezza per l&#8217;autenticazione e la crittografia<\/p>\n\n<p>QoS consente ai diversi tipi di messaggio di avere diversi livelli di priorit\u00e0<\/p>\n\n<h2 class=\"wp-block-heading\">4. Applicazioni di MQTT<\/h2>\n\n<p>Alcuni esempi di come viene utilizzato nel mondo reale sono con M2M Alliance, un progetto che mira a connettere &#8220;cose&#8221; con una piattaforma sicura per il trasferimento di dati tra dispositivi. Un altro caso d&#8217;uso \u00e8 con il progetto CEPH. Questo \u00e8 un sistema di archiviazione cloud in grado di archiviare e condividere file contemporaneamente a pi\u00f9 utenti. Utilizza MQTT per proteggere l&#8217;accesso distribuito crittografando i dati, che consente di trasferirli tra dispositivi IoT utilizzando vari gateway senza doversi preoccupare della sicurezza dei dati.<\/p>\n\n<h2 class=\"wp-block-heading\">5. Iniziare con MQTT<\/h2>\n\n<p>La prima cosa di cui hai bisogno \u00e8 un client MQTT; questa \u00e8 l&#8217;applicazione che invia e riceve messaggi. La fondazione Raspberry Pi ha una guida per iniziare con MQTT sul tuo dispositivo Pi. Ci sono anche altre guide disponibili l\u00e0 fuori come questa di Hackster che ti d\u00e0 il codice da eseguire sul linguaggio di programmazione Python.<\/p>\n\n<h2 class=\"wp-block-heading\">I migliori corsi online MQTT<\/h2>\n\n<ol class=\"wp-block-list\"><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Padroneggiare MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Protocollo MQTT principale<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fdevelop-mqtt-client-android-app%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Sviluppa l&#8217;app Android client MQTT<\/a><\/strong><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-masterclass%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Masterclass MQTT<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Padroneggiare il protocollo MQTT: guida di livello da principiante a avanzato<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fiot-mqtt-esp8266%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>IoT: MQTT con Adafruit, App Inventor ed ESP8266<\/strong><\/a><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-nodemcu-esp8266-node-red-android%2F\" target=\"_blank\" rel=\"noreferrer noopener\">MQTT Nodemcu (ESP8266) con nodo, Wi-Fi e Bluetooth<\/a><\/strong><\/li><\/ol>\n<h2 class=\"wp-block-heading\">TLS e SSL per la creazione di un broker MQTT<\/h2>\n\n<h3 class=\"wp-block-heading\">Vantaggi dell&#8217;utilizzo di TLS:<\/h3>\n\n<p>-Sicurezza: TLS fornisce una connessione sicura tra il client e il broker. Questo aiuta a proteggersi dagli attacchi e dalle intercettazioni man-in-the-middle.<\/p>\n\n<p>-Autenticazione: TLS fornisce l&#8217;autenticazione del broker e del client, contribuendo a garantire che solo i client autorizzati siano in grado di connettersi al broker.<\/p>\n\n<p>-Crittografia: TLS fornisce la crittografia dei dati tra il client e il broker, aiutando a proteggere le informazioni dall&#8217;essere viste da persone non autorizzate.<\/p>\n\n<h3 class=\"wp-block-heading\">Contro dell&#8217;utilizzo di TLS:<\/h3>\n\n<p>-Prestazioni: TLS pu\u00f2 aggiungere un sovraccarico alle comunicazioni, riducendo le prestazioni.<\/p>\n\n<p>-Certificati: per utilizzare TLS, sono necessari certificati sia per il client che per il broker. Questi certificati possono essere difficili da ottenere e possono essere costosi da usare, il che pu\u00f2 aumentare il costo dell&#8217;utilizzo di TLS.<\/p>\n\n<h3 class=\"wp-block-heading\">Vantaggi dell&#8217;utilizzo di SSL:<\/h3>\n\n<p>-Sicurezza: SSL fornisce una connessione sicura tra il client e il broker, proprio come TLS. Aiuta anche a proteggere dagli attacchi e dalle intercettazioni man-in-the-middle.<\/p>\n\n<p>-Certificati: poich\u00e9 SSL \u00e8 basato su TLS, puoi utilizzare gli stessi certificati per crittografare il traffico.<\/p>\n\n<h3 class=\"wp-block-heading\">Contro dell&#8217;utilizzo di SSL:<\/h3>\n\n<p>-Prestazioni: la crittografia tra il client e il broker aggiunger\u00e0 un sovraccarico alle comunicazioni, riducendo le prestazioni.<\/p>\n\n<p>-Utilizzo della memoria: il protocollo SSL utilizzer\u00e0 pi\u00f9 memoria rispetto ad altri protocolli perch\u00e9 mantiene una sessione di crittografia\/decrittografia con il broker.<\/p>\n\n<p>-Problemi di versione: SSL \u00e8 un protocollo meno recente e non supporta alcune delle funzionalit\u00e0 fornite da TLS (ad es. cifrature pi\u00f9 recenti).<\/p>\n\n<p>Come puoi vedere, TLS e SSL forniscono entrambi sicurezza, autenticazione e crittografia per la comunicazione tra client e broker; tuttavia lo fanno in modi leggermente diversi. Non c&#8217;\u00e8 un vincitore chiaro quando si tratta di decidere se utilizzare TLS o SSL per il tuo broker MQTT, poich\u00e9 la decisione dipender\u00e0 da ci\u00f2 di cui hai bisogno dalla tua infrastruttura e da quanto tempo\/denaro hai a disposizione.<\/p>\n\n<p>In conclusione direi che c&#8217;\u00e8 una risposta giusta a seconda delle esigenze del progetto. In questo caso \u00e8 meglio utilizzare TLS, poich\u00e9 offre pi\u00f9 vantaggi rispetto a SSL.<\/p>\n\n<h2 class=\"wp-block-heading\">I 5 principali motivi per utilizzare il protocollo MQTT nei tuoi progetti IoT<\/h2>\n\n<p>MQTT \u00e8 un protocollo di messaggistica machine-to-machine (M2M), progettato per dispositivi con risorse limitate, che collega i dispositivi al cloud.<\/p>\n\n<p>1. \u00c8 leggero e facile da usare: MQTT \u00e8 un protocollo di messaggistica di pubblicazione\/sottoscrizione progettato per essere leggero e facile da usare.<\/p>\n\n<p>2. Ha un ingombro ridotto: MQTT utilizza circa 1\/10 della larghezza di banda di HTTP, rendendolo ideale per applicazioni IoT con risorse di rete limitate.<\/p>\n\n<p>3. Supporta QoS: MQTT supporta Quality of Service (QoS), che garantisce la consegna dei messaggi alla latenza o alla qualit\u00e0 desiderata.<\/p>\n\n<p>4. Pu\u00f2 funzionare su qualsiasi rete: MQTT \u00e8 un protocollo multipiattaforma che pu\u00f2 funzionare su reti cellulari WiFi, Bluetooth Low Energy (BLE) o 2G\/3G.<\/p>\n\n<p>5. Ha diverse librerie client disponibili in molti linguaggi di programmazione: ci sono librerie client per C, C++, JavaScript, Arduino IDE, Python e Java.<\/p>\n\n<h2 class=\"wp-block-heading\">Come configurare un broker MQTT utilizzando un Docker Container sul tuo PC o un server VPS?<\/h2>\n\n<p>MQTT \u00e8 un protocollo di messaggistica da macchina a macchina (M2M)\/&#8221;IoT&#8221;, progettato come un trasporto di messaggistica di pubblicazione\/sottoscrizione estremamente leggero. \u00c8 utile per le connessioni con localit\u00e0 remote in cui \u00e8 richiesta una piccola impronta di codice e\/o la larghezza di banda della rete \u00e8 ridotta.<\/p>\n\n<p>In questo articolo, ti mostreremo come configurare un broker MQTT utilizzando un container Docker sul tuo PC o un server VPS.<\/p>\n\n<p>Docker \u00e8 un motore di containerizzazione che ti aiuta a distribuire facilmente le tue applicazioni con tutte le sue dipendenze. Fornisce un ambiente coerente su ciascun host Docker, consente di risparmiare tempo e migliorare la portabilit\u00e0 del codice tra varie distribuzioni Linux. Ad esempio, se qualsiasi applicazione che dipende da un gran numero di librerie di sistema o da alcune versioni di librerie rare, e quindi non facilmente portabile, puoi semplicemente avvolgerla e distribuirla come un contenitore Docker.<\/p>\n\n<h3 class=\"wp-block-heading\">1) Installazione di Docker per Windows\/Mac<\/h3>\n\n<p>Docker \u00e8 disponibile per gli utenti di Microsoft Windows e Mac OS X. Puoi scaricare la versione appropriata da qui: https:\/\/docs.docker.com\/docker-for-windows\/install\/.<\/p>\n\n<h3 class=\"wp-block-heading\">2) Installazione di Docker-compose sul tuo host<\/h3>\n\n<p>Per distribuire facilmente il nostro broker MQTT fatto in casa, utilizzeremo lo strumento di composizione mobile. Ti consente di definire ed eseguire applicazioni Docker multi-container utilizzando un semplice file YAML. Puoi saperne di pi\u00f9 su docker-compose da qui: https:\/\/docs.docker.com\/compose\/.<\/p>\n\n<p>Puoi scaricare lo strumento docker-compose da qui: https:\/\/github.com\/docker\/compose\/releases\/. Una volta fatto, dovresti essere in grado di eseguire il comando &#8216;docker-compose&#8217; nel tuo terminale e verificarne la versione o utilizzare uno dei suoi sottocomandi.<\/p>\n\n<h3 class=\"wp-block-heading\">Terminologia di base di Docker per questo articolo:<\/h3>\n\n<p>1) &#8220;Contenitore Docker&#8221; \u00e8 il processo che viene eseguito in background quando si esegue un&#8217;immagine utilizzando il comando docker run. Un&#8217;istanza in esecuzione di un&#8217;immagine \u00e8 chiamata &#8216;contenitore&#8217;, per quanto riguarda la sua creazione durante la build docker.<\/p>\n\n<p>2) &#8220;Immagine Docker&#8221; \u00e8 un modello di sola lettura con le istruzioni per creare un contenitore Docker. \u00c8 composto da una serie di livelli di filesystem che rappresentano diversi stati dell&#8217;immagine finale che vogliamo creare<\/p>\n\n<p>3) Il comando copy at docker build crea un&#8217;immagine leggendone la descrizione da un Dockerfile nella directory di lavoro corrente e quindi eseguendo il comando appropriato in un nuovo livello sopra l&#8217;immagine corrente.<\/p>\n\n<p>4) I &#8220;Volumi&#8221; sono cartelle che ti consentono di mappare le cartelle locali sul tuo computer host alle directory all&#8217;interno dei contenitori della finestra mobile. Ci\u00f2 \u00e8 utile se, ad esempio, desideri archiviare alcuni dati sul tuo contenitore o sui file di configurazione. \u00c8 possibile creare un volume specificando il percorso della cartella dal sistema host tramite Docker Run.<\/p>\n\n<p>Il file YAML \u00e8 un file di configurazione che contiene informazioni per la connessione a un database esterno, server MQTT ecc., nonch\u00e9 informazioni su come e quali contenitori devono essere creati. Creeremo un file YAML per configurare il nostro broker nella prossima sezione.<\/p>\n\n<h3 class=\"wp-block-heading\">3) Creazione del file YAML per configurare il tuo broker MQTT<\/h3>\n\n<p>I file YAML sono in genere composti da diverse coppie chiave-valore, che sono collegate da due punti (&#8220;:&#8221;). Puoi saperne di pi\u00f9 su YAML da qui: https:\/\/en.wikipedia.org\/wiki\/YAML#Syntax.<\/p>\n\n<p>Nel nostro caso, creeremo un file YAML per configurare il broker MQTT come segue:<\/p>\n\n<p>versione: &#8220;3&#8221;<\/p>\n\n<p>In questa sezione dello YAML, definiamo il nome del contenitore come &#8220;homer-mqtt&#8221; e specifichiamo l&#8217;immagine che dovrebbe essere utilizzata per crearlo. In questo caso, sceglieremo l&#8217;immagine &#8220;davidtgoldblatt\/homer-mqtt&#8221; da Docker Hub da qui: https:\/\/hub.docker.com\/_\/homer-mqtt\/.<\/p>\n\n<p>Nel nostro file YAML, dichiariamo anche un paio di volumi come segue:<\/p>\n\n<p>volumi:<\/p>\n\n<p>&#8211; \/var\/esegui\/docker.sock:\/var\/esegui\/docker.sock<\/p>\n\n<p>Questi volumi ci consentiranno di avere uno spazio di archiviazione persistente per il contenitore Docker, consentendo alle nostre impostazioni di persistere durante i riavvii e gli arresti anomali del server. Puoi saperne di pi\u00f9 sui volumi da qui: https:\/\/docs.docker.com\/engine\/userguide\/dockervolumes\/.<\/p>\n\n<p>Per specificare i dettagli del nostro database, aggiungiamo una sezione &#8220;db_addresses&#8221; con le seguenti voci:<\/p>\n\n<p>indirizzi_db:<\/p>\n\n<p>&#8211; &#8220;host=172.17.0.2 porta=3306 utente=homer dbname=homer&#8221;<\/p>\n\n<p>Nell&#8217;esempio sopra, specifichiamo un host e una porta per la nostra istanza di database. Si noti che quando si specifica un utente, \u00e8 necessario aggiungere un simbolo &#8220;@&#8221; prima del nome utente. Questo perch\u00e9 il nome utente \u00e8 composto da lettere e numeri nei sistemi Unix. Se lo ometti, Docker si lamenta di errori come questo:<\/p>\n\n<p>devi sfuggire a caratteri speciali come @ o *<\/p>\n\n<p>Per specificare le credenziali del nostro database, aggiungiamo una sezione &#8220;database_password&#8221; come segue:<\/p>\n\n<p>password_database: &#8220;homerun1&#8221;<\/p>\n\n<p>Nell&#8217;esempio sopra, dovresti usare la password di tua scelta. Nel caso in cui desideri impostare una password per il database per la prima volta, puoi consultare la nostra guida su come creare un nuovo utente root senza password qui: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user .html<\/p>\n\n<p>Per specificare i dettagli del nostro server MQTT, aggiungiamo una sezione &#8220;mqtt_server&#8221; con le seguenti voci:<\/p>\n\n<p>mqtt_server:<\/p>\n\n<p>&#8211; nome: mqtt host: 172.17.0.1 porta: 8883 nome utente: &#8220;homerun&#8221; password: &#8220;homerun1&#8221;<\/p>\n\n<p>Nell&#8217;esempio sopra, eseguiamo il broker sulla porta 8883 e utilizziamo il nome utente di &#8220;homerun&#8221; e la password di &#8220;homerun1&#8221;, che abbiamo creato nel nostro database.<\/p>\n\n<h3 class=\"wp-block-heading\">4) Esegui il tuo broker MQTT con Docker<\/h3>\n\n<p>In questo passaggio, creeremo un contenitore docker dal nostro file YAML e lo eseguiremo.<\/p>\n\n<p>Per fare ci\u00f2, cd nella directory in cui hai il file YAML ed esegui &#8220;docker-compose up&#8221; come segue:<\/p>\n\n<p>$ docker-componi<\/p>\n\n<p>Questo comando creer\u00e0 un nuovo contenitore Docker in base alla descrizione nel tuo file YAML e lo avvier\u00e0.<\/p>\n\n<p>Se vuoi iniziare questo in background, usa invece &#8220;docker-compose up -d&#8221;. Se desideri stampare i log del tuo contenitore Docker, esegui &#8220;docker-compose logs mqttclient&#8221; come segue:<\/p>\n\n<p>$ docker-compose logs mqttclient<\/p>\n\n<p>Puoi anche vedere il contenitore docker dal vivo in tempo reale usando &#8220;docker-compose ps&#8221; come segue:<\/p>\n\n<p>$ docker-componi ps<\/p>\n\n<h3 class=\"wp-block-heading\">5) Eseguire il client MQTT con Docker<\/h3>\n\n<p>In questo passaggio, creeremo un contenitore docker dal nostro file YAML e lo eseguiremo.<\/p>\n\n<p>Per fare ci\u00f2, cd nella directory in cui hai il file YAML ed esegui &#8220;docker-compose up&#8221; come segue:<\/p>\n\n<p>$ docker-componi<\/p>\n\n<p>Questo comando creer\u00e0 un nuovo contenitore Docker in base alla descrizione nel tuo file YAML e lo avvier\u00e0.<\/p>\n\n<p>Se vuoi iniziare questo in background, usa invece &#8220;docker-compose up -d&#8221;. Puoi anche vedere il contenitore docker dal vivo in tempo reale usando &#8220;docker-compose ps&#8221; come segue:<\/p>\n\n<p>$ docker-componi ps<\/p>\n\n<h3 class=\"wp-block-heading\">6) Utilizzo del client MQTT con Docker<\/h3>\n\n<p>Ora che il nostro file YAML \u00e8 impostato, ora possiamo iniziare a utilizzare il nostro client MQTT con Docker.<\/p>\n\n<p>Per fare ci\u00f2, vai alla directory in cui hai il tuo file YAML ed esegui &#8220;docker exec&#8221; come segue:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>Ora dovresti vedere una directory chiamata &#8220;\/home\/homerun&#8221; (che \u00e8 la directory home per il nostro contenitore docker) e dovresti trovarti all&#8217;interno di quella directory.<\/p>\n\n<p>Ora puoi vedere i tuoi database digitando &#8220;mysql -uroot -proot&#8221; come segue:<\/p>\n\n<p>$ mysql -uroot -proot<\/p>\n\n<p>Dovresti vedere tutti i tuoi database sullo schermo. Puoi vedere come creare un nuovo utente root senza password per l&#8217;istanza MySQL qui: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user.html<\/p>\n\n<p>Per eseguire il comando client MQTT in Docker, devi digitare &#8220;sbin\/mqtt&#8221; come segue:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>Nell&#8217;esempio sopra, specifichiamo un file di configurazione con il flag -c, che legge le nostre impostazioni MQTT dal file di configurazione che abbiamo creato in questo tutorial.<\/p>\n\n<p>Per verificare se il tuo client MQTT \u00e8 attivo e funzionante, puoi utilizzare &#8220;docker-compose ps&#8221; come segue:<\/p>\n\n<p>$ docker-componi ps<\/p>\n\n<p>Nell&#8217;esempio sopra, il nostro client MQTT \u00e8 stato avviato con successo. Ora dovresti vedere tutti i tuoi database sullo schermo.<\/p>\n\n<p>Per eseguire il comando client MQTT in Docker, devi digitare &#8220;sbin\/mqtt&#8221; come segue:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>Nell&#8217;esempio sopra, specifichiamo un file di configurazione con il flag -c, che legge le nostre impostazioni MQTT dal file di configurazione che abbiamo creato in questo tutorial.<\/p>\n\n<p>Per verificare se il tuo client MQTT \u00e8 attivo e funzionante, puoi utilizzare &#8220;docker-compose ps&#8221; come segue:<\/p>\n\n<p>$ docker-componi ps<\/p>\n\n<p>Nell&#8217;esempio sopra, il nostro client MQTT \u00e8 stato avviato con successo. Ora dovresti vedere tutti i tuoi database sullo schermo e puoi provare a pubblicare alcuni messaggi per verificare se tutto funziona correttamente:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt publish -t &#8216;test&#8217; -h 172.17.0.1 -m &#8216;hello world!&#8217;<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt iscriviti -t &#8216;test&#8217; -h 172.17.0.1 -u mqttuser<\/p>\n\n<h3 class=\"wp-block-heading\">7) Ripulire il client MQTT con Docker<\/h3>\n\n<p>Per arrestare il tuo contenitore mobile, devi eseguire &#8220;docker-compose down&#8221; come segue:<\/p>\n\n<p>$ docker-componi verso il basso<\/p>\n\n<h3 class=\"wp-block-heading\">8) Ripulire il client MQTT con Docker Volumes<\/h3>\n\n<p>Per impedire la creazione del database mysql e dell&#8217;utente mqtt, \u00e8 possibile utilizzare il flag -v.<\/p>\n\n<p>$ docker-componi verso il basso -v<\/p>\n\n<p>Puoi anche ripulire il tuo ambiente eliminando la directory che contiene il tuo file YAML.<\/p>\n\n<p>Database MySQL e utente mqtt creati con successo! Verranno rimossi automaticamente quando si rimuove il contenitore Docker. Ora puoi uscire da questa shell digitando &#8220;exit&#8221;.<\/p>\n\n<p>In questo tutorial, abbiamo visto come configurare il tuo client MQTT tramite un container Docker.<\/p>\n\n<h2 class=\"wp-block-heading\">Conclusione<\/h2>\n\n<p>MQTT \u00e8 un protocollo di connettivit\u00e0 machine-to-machine (M2M) o &#8220;Internet of Things&#8221;. \u00c8 stato progettato come un trasporto di messaggistica di pubblicazione\/abbonamento estremamente leggero. MQTT \u00e8 utile per connettere sensori a bassa potenza, dispositivi indossabili e altri piccoli oggetti connessi a Internet al cloud. Poich\u00e9 MQTT utilizza un modello di pubblicazione\/abbonamento, \u00e8 perfetto per i dispositivi che devono inviare dati di rado o in cui la larghezza di banda della rete \u00e8 ridotta.<\/p>\n\n<h2 class=\"wp-block-heading\">Interessato a sviluppare la tua soluzione MQTT? <a href=\"mailto:info@iotworlds.com\">Contattaci!<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Con tutti i protocolli di messaggistica disponibili, pu\u00f2 essere difficile sceglierne uno solo. E con cos\u00ec tante opzioni disponibili, \u00e8&hellip;<\/p>\n","protected":false},"author":1,"featured_media":386386,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1698,1792],"tags":[],"class_list":["post-386567","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-it","category-smart-device-it-2"],"acf":[],"_links":{"self":[{"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/posts\/386567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/comments?post=386567"}],"version-history":[{"count":0,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/posts\/386567\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/media\/386386"}],"wp:attachment":[{"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/media?parent=386567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/categories?post=386567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotworlds.com\/it\/wp-json\/wp\/v2\/tags?post=386567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}