Sommario:

Comunicazione wireless SmartHome: le basi estreme di MQTT: 3 passaggi
Comunicazione wireless SmartHome: le basi estreme di MQTT: 3 passaggi

Video: Comunicazione wireless SmartHome: le basi estreme di MQTT: 3 passaggi

Video: Comunicazione wireless SmartHome: le basi estreme di MQTT: 3 passaggi
Video: Come e per cosa utilizzare MQTT via Mosquitto e Paho su Raspberry Pi 2024, Dicembre
Anonim
Comunicazione wireless SmartHome: le basi estreme di MQTT
Comunicazione wireless SmartHome: le basi estreme di MQTT
Comunicazione wireless SmartHome: le basi estreme di MQTT
Comunicazione wireless SmartHome: le basi estreme di MQTT

Nozioni di base MQTT:

** Farò una serie di domotica, seguirò i passaggi che ho seguito per imparare tutto ciò che ho fatto in futuro. Questo Instructable è la linea di base su come configurare MQTT da utilizzare nei miei futuri Instructables. Tuttavia, gli insegnamenti in questo contenuto saranno applicabili a qualsiasi progetto si voglia intraprendere.**

Internet delle cose:

L'Internet of Things sta conquistando il mondo, e specialmente in comunità come la nostra qui a Instructables. Da quando sono entrato a far parte di questa comunità, è stata trincerata con le persone che costruiscono

Dispositivi connessi e controllati tramite Internet. Quando si lavora con Internet of Things è difficile non trovare il protocollo MQTT. Questo è un protocollo di comunicazione come altri utilizzati oggi su Internet come HTTP o FTP, tuttavia il modo in cui funziona è diverso, il che lo rende ideale per le applicazioni Internet of Things.

Cos'è MQTT:

MQTT (Message Queuing Telemetry Transport è un protocollo di comunicazione leggero che utilizza un'architettura di pubblicazione/sottoscrizione. HTTP, che è ciò che la maggior parte di Internet utilizza, è costruito su un sistema di richiesta/risposta. Ciò significa che riceve una richiesta da un client e invia una risposta a quel client. MQTT ha anche un server (chiamato broker) e molti client. A differenza di HTTP, MQTT consente ai client di pubblicare o iscriversi a "argomenti" specifici. Ciò che consente una comunicazione più ampia attraverso un punto centralizzato, il broker. Ogni nodo può pubblicare su un argomento sul broker e qualsiasi nodo sottoscritto a quell'argomento riceverà il messaggio. Anche i client possono iscriversi a più argomenti e possono quindi ricevere più direttive o aggiornamenti.

L'intero sistema è guidato dagli eventi e consente di inviare messaggi dal broker a ciascun client sottoscritto. Quindi, piuttosto che HTTP, dove il client richiede le informazioni, il client riceve le informazioni direttamente dal broker al momento della ricezione. Ci sono anche servizi integrati che consentono varie garanzie, come le specifiche QOS. Una specifica QOS consente a un broker di determinare se un messaggio deve essere consegnato o meno una volta, almeno una volta o esattamente una volta. Ciò garantisce che i dati vengano consegnati nel modo richiesto a ciascun cliente. I clienti possono anche richiedere che i messaggi pubblicati sul loro argomento siano bufferizzati nel broker nel caso in cui vengano disconnessi da esso per qualsiasi motivo. Una volta tornato online, i dati verranno inviati al client.

Un argomento non è niente di speciale, è solo una varietà di stringhe combinate e separate da barre. Il formato nell'esempio che verrà utilizzato di seguito è il seguente: casa/camera da letto/plafoniera. Ogni barra viene posizionata dopo un argomento per indicare un argomento secondario. Quindi un messaggio potrebbe essere pubblicato a casa, dove lo riceveranno tutti i dispositivi della casa. Potrebbe essere pubblicato direttamente in casa/camera da letto, dove tutti i dispositivi nella camera da letto riceveranno il messaggio. E può scendere al dispositivo specifico come mostrato per primo casa/camera da letto/plafoniera dove solo la plafoniera della camera da letto riceverà il messaggio. Il modo in cui possiamo astrarre singoli dispositivi come questo fino a un intero ecosistema è estremamente utile, soprattutto quando si tratta di domotica. Esistono altri modi per suddividere gli argomenti e li approfondirò ulteriormente in Instructables futuri in cui l'applicazione ha più senso.

Forniture

È necessario solo uno dei seguenti:

Ubuntu:

Sottosistema Windows per Linux: https://ubuntu.com/wsl (Solo se non hai Linux/MacOS)

MacOS: richiede un MacBook

Questo è richiesto:

Mosquitto MQTT Broker - Scaricato utilizzando apt-get (Documentazione:

Passaggio 1: configurazione iniziale (a seconda del sistema operativo)

Mac OS/Linux:

Non è necessaria alcuna configurazione, basta aprire il terminale e passare a Mosquitto Setup!

Finestre:

Se sei su Windows, dovrai installare il sottosistema Windows per Linux. Questo è uno strumento super facile da usare ed estremamente prezioso che ti consente di eseguire un terminale Ubuntu all'interno di Windows. Non c'è bisogno di installare e avviare Ubuntu solo per testare lo sviluppo nel terminale!

Fasi di installazione:

1. Vai su Windows Store e cerca ubuntu

2. Scarica e installa il sottosistema Windows per Linux

3. Apri l'applicazione e segui le istruzioni per completare la configurazione e sei pronto per continuare!

Passaggio 2: configurazione della zanzara:

Configurazione della zanzara
Configurazione della zanzara
Configurazione della zanzara
Configurazione della zanzara
Configurazione della zanzara
Configurazione della zanzara

Quindi, come discusso nell'introduzione su MQTT, il protocollo richiede un broker (server). Questo broker è il punto base per tutte le connessioni stabilite a ciascun client. Tutti i messaggi vengono passati e messi in coda in questo broker. Ci sono molte opzioni tra cui scegliere per un broker e puoi trovarle online, ma quella che useremo è probabilmente la più comune: Mosquitto.

Mosquitto è un broker MQTT basato su Linux con un sacco di funzionalità. Non entrerò nello specifico di tale funzionalità in questo momento, ma alcuni requisiti di base che soddisfa sono l'autenticazione utente/password e il supporto della crittografia TLS, tutti utili nello sviluppo di dispositivi Internet of Things.

Passaggi:

Tutti questi passaggi dovrebbero essere completati in una finestra di terminale.

1. Installa i client Mosquitto e MQTT

sudo apt-get install mosquitto mosquitto-clients

2. Iscriviti a un argomento

mosquitto_sub -t "prova"

Ciò che fa è iscriversi a un argomento. Questo argomento è indicato da "-t" e il valore dell'argomento è "test". Questo valore dopo "-t" può essere qualsiasi cosa tu voglia salvare per alcune prenotazioni speciali.

3. Apri una nuova finestra di terminale e pubblica un messaggio sull'argomento "test"

mosquitto_pub -t "test" -m "Ciao mondo con MQTT!"

Questo pubblica un messaggio sull'argomento "test", consentendo all'altra nostra istanza di terminale di ricevere il messaggio sul lato dell'abbonamento. Il messaggio pubblicato è indicato da "-m" e il valore del messaggio è "Hello World With MQTT". Questo messaggio, proprio come l'argomento, può essere cambiato in quello che vuoi!

4. Vai alla prima finestra del terminale per vedere i tuoi risultati! Dovresti ricevere un messaggio che dice "Hello World With MQTT" visualizzato. Se non lo vedi, assicurati di aver digitato l'argomento giusto. Se lo hai completato con successo, continua a giocarci. Prova argomenti diversi, con argomenti secondari e messaggi diversi!

Passaggio 3: concludi

Questo è tutto! Una volta completato tutto, comprendi le basi di come funziona MQTT. Questo è un tutorial molto rudimentale che mostra solo il minimo indispensabile del protocollo MQTT. Future Instructables illustrerà in modo più approfondito come funziona il protocollo in pratica con l'Internet of Things, in particolare con i moduli ESP8266 che eseguono Arduino. La mia prima applicazione pratica sarà la caffettiera intelligente che ho attualmente nella mia stanza. Se desideri imparare a realizzare una caffettiera che può essere controllata sia dal telefono che da Alexa, assicurati di seguirmi per ulteriori tutorial.

Consigliato: