Messaging Queuing Telemetry Protocol, o MQTT, è un protocollo di messaggistica leggero progettato per dispositivi e ambienti con larghezza di banda ridotta. È una soluzione veloce, facile da implementare ed efficiente dal punto di vista energetico per connettere e scambiare informazioni tra più dispositivi IoT. Richiede un broker/server MQTT e l'argomento a cui i messaggi vengono pubblicati e sottoscritti dai dispositivi o dagli utenti per inviare o ricevere le informazioni.
In questa guida, implementeremo il broker MQTT e lo strumento Node-RED su Raspberry Pi per connettere dispositivi IoT intelligenti fai-da-te abilitati per MQTT e utilizzarli per l'automazione domestica.
Cose di cui avrai bisogno
Per creare e distribuire un server MQTT con Node-RED, avrai bisogno di quanto segue:
- Un Raspberry Pi Zero W o migliore. Si consiglia di utilizzare un Raspberry Pi 3 o 4 (se disponibile).
- Una scheda microSD (8 GB o superiore).
- Un lettore di schede microSD.
- Un PC Linux, Mac o PC Windows.
- Connessione Internet (Wi-Fi).
Passaggio 1: installa Raspberry Pi OS Lite (64 bit)
Avrai bisogno della versione Lite a 64 bit di Raspberry Pi OS. Nel Imager Raspberry Pi strumento su un altro computer, fare clic su Scegli il sistema operativo > Sistema operativo Raspberry Pi (altro), quindi selezionare Raspberry Pi OS Lite (64 bit). Inoltre, ti consigliamo di utilizzare le impostazioni avanzate di Imager per abilitare SSH (abbiamo usato pi e lampone come nome utente e password per questa guida) e configurare la connessione Wi-Fi. Per maggiori dettagli, consulta la nostra guida su come installare un sistema operativo su un Raspberry Pi. Dopo aver scritto il sistema operativo sulla scheda, espellilo e inseriscilo nel tuo Raspberry Pi.
Passaggio 2: connettersi tramite SSH e aggiornare i pacchetti
Puoi connetterti al tuo Raspberry Pi tramite SSH usando PuTTY su Windows o Terminalon macOS e Linux. Tuttavia, dovresti conoscere l'IP del Raspberry Pi per connetterti tramite SSH. Per scoprirlo, puoi aprire le impostazioni DHCP del tuo router wireless o utilizzare la Fingapp sul tuo smartphone.
Immettere l'indirizzo IP in PuTTY e fare clic Collegare. Digita il tuo nome utente e password per accedere.
Sul terminale Linux o macOS, digita YourPiUsername@IPAddress e quindi digitare la password per accedere. Una volta connesso tramite SSH, eseguire il comando seguente per aggiornare l'elenco dei pacchetti e aggiornare i pacchetti.
sudo apt aggiornamento && sudo apt aggiornamento –y
Passaggio 3: installare il broker MQTT
Per installare e abilitare il broker MQTT (Mosquitto), attenersi alla seguente procedura.
- Installa Mosquitto eseguendo il seguente comando nella finestra Terminale.
Verrà avviata l'installazione di Mosquitto (broker MQTT) e dei servizi client.sudo apt installare mosquitto mosquitto-clients -y
- Dopo l'installazione, abilitare il servizio Mosquitto e verificare la versione MQTT utilizzando i seguenti comandi.
sudosystemctlabilitarezanzara.servizio
zanzara -v - Creare un account utente per consentire l'accesso remoto autenticato utilizzando il comando seguente.
Qui ravi è il nome utente (puoi usare quello che vuoi). Immettere la password quando richiesto. Annotare questo nome utente e password per un uso successivo.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Apri il zanzara.conf file nell'editor nano utilizzando il comando seguente.
Incolla il codice seguente nell'editor nano.sudo nano /etc/mosquitto.conf
Premere CTRL+X seguito da Y e accedere per salvare le modifiche.per_ascoltatore_impostazioni VERO
file_pid /run/mosquitto/mosquitto.pid
persistenza VERO
posizione_persistenza /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
consentire_anonimo falso
ascoltatore 1883
file_password /etc/mosquitto/passwd - Riavvia il broker MQTT eseguendo il comando seguente.
sudo systemctl riavvia mosquitto
- Controlla lo stato del broker MQTT per vedere se MQTT è in esecuzione.
Se vedi l'output sopra, MQTT è in esecuzione.sudo systemctl status mosquitto
Passaggio 4: testare il broker MQTT
Per verificare se il broker MQTT funziona o meno, installa MQTTLens o un'app MQTT simile in Chrome o qualsiasi altro browser web e avviala. Immettere l'indirizzo IP del Raspberry Pi e il nome utente/password MQTT. Clic Crea connessione.
Inserisci qualsiasi argomento nel sottoscrivi campo e lo stesso argomento nel Pubblicare campo. Digita "Ciao" o qualsiasi altra cosa nel campo del messaggio e fai clic Pubblicare.
Se vedi il messaggio sotto gli abbonamenti, il broker MQTT funziona correttamente.
Passaggio 5: installare Node-RED
Con Node-RED puoi pubblicare messaggi o inviare e ricevere payload da o verso i tuoi dispositivi smart. Questo carico utile può essere utilizzato per attivare/disattivare dispositivi intelligenti o ricevere dati (come la temperatura) da un sensore. Puoi utilizzare il tuo browser web per creare tali flussi in Node-RED e controllare i tuoi dispositivi intelligenti.
Per installare Node-RED, eseguire il seguente comando nella finestra Terminale.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Questo scaricherà e installerà Node-RED sul tuo Raspberry Pi. Il completamento potrebbe richiedere del tempo. Una volta installato Node-RED, è necessario creare un file di impostazioni Node-RED eseguendo il comando seguente.
init admin rosso nodo
Quindi segui questi passaggi:
- premi il accedere chiave.
- Vuoi impostare la sicurezza dell'utente? Selezionare sì. Inserisci un nome utente e una password. Tienilo al sicuro poiché verrà utilizzato per accedere e gestire Node-RED tramite un'interfaccia web.
- Scegliere Accesso completo.
- È possibile aggiungere un altro utente o selezionare No procedere.
- Selezionare No quando viene chiesto di abilitare le funzionalità del progetto.
- Premere accedere.
- Digita una passphrase e tienila al sicuro.
- Scegli il tema predefinito > Monaco (predefinito).
- Selezionare No quando viene chiesto di caricare nodi esterni.
Una volta fatto, riavvia Node-RED.
riavvio rosso nodo
Ora puoi visitare Your-Raspberry-Pi-IP: 1880 in un browser web per aprire e accedere al pannello di amministrazione di Node-RED.
Ora puoi creare flussi in Node-RED. Di seguito è riportato un esempio di flusso Node-RED che utilizziamo per eseguire il nostro display a matrice WS2812B 8x32 che mostra varie informazioni sui sensori installati nella nostra casa in tempo reale.
Per iniziare, puoi anche costruisci un orologio intelligente fai-da-te utilizzando la matrice di punti MAX7219e collegalo al tuo server MQTT per visualizzare testo o messaggi su di esso.
Abilita la domotica utilizzando MQTT e Node-RED
Ora puoi creare flussi per controllare o monitorare i tuoi dispositivi domestici intelligenti abilitati per MQTT. Puoi anche costruire interruttori intelligenti Tasmota fai-da-te o sensori intelligenti basati su Arduino e altri dispositivi intelligenti con controllo MQTT e utilizzarli con questo server MQTT e Node-RED. Puoi creare flussi per la domotica in base a eventi, orari o payload ricevuti dal client MQTT del tuo smartphone.
Sul tuo smartphone Android, puoi installare MQTT Dash per connetterti al tuo broker MQTT e inviare o ricevere payload da o verso vari argomenti a cui i tuoi dispositivi intelligenti si abbonano o pubblicano.