Sommario:
- Passaggio 1: cos'è MQTT e come funziona
- Passaggio 2: Raspberry Pi
- Passaggio 3: come impostare l'indirizzo IP statico
- Passaggio 4: NodeMCU
- Passaggio 5: script Python
- Passaggio 6: collegamenti e schema elettrico
- Passaggio 7: risultato
Video: Raspberry Pi che parla con ESP8266 usando MQTT: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
In questo progetto, spiegherò cos'è il protocollo MQTT e come viene utilizzato per comunicare tra i dispositivi. Quindi, come dimostrazione pratica, dimostrerò come configurare un sistema client e brocker, in cui un modulo ESP8266 e RPi parlano tra loro o inviare un messaggio quando viene premuto un pulsante.
Materiale richiesto
1. Raspberry Pi 3
2. NodoMCU
3. LED
4. Pulsante
5. Resistori (10k, 475 ohm)
Passaggio 1: cos'è MQTT e come funziona
MQTT
MQTT è un protocollo di trasferimento dati da macchina a macchina (M2M). MQTT è stato creato con l'obiettivo di raccogliere dati da molti dispositivi e quindi trasportare tali dati all'infrastruttura IT. È leggero e quindi ideale per il monitoraggio remoto, specialmente nelle connessioni M2M che richiedono un ridotto ingombro di codice o dove la larghezza di banda della rete è limitata.
Come funziona MQTT
MQTT è un protocollo di pubblicazione/sottoscrizione che consente ai dispositivi edge-of-network di pubblicare su un broker. I client si connettono a questo broker, che quindi media la comunicazione tra i due dispositivi. Ogni dispositivo può iscriversi, o registrarsi, ad argomenti particolari. Quando un altro client pubblica un messaggio su un argomento sottoscritto, il broker inoltra il messaggio a qualsiasi client che ha sottoscritto.
MQTT è bidirezionale e mantiene la consapevolezza della sessione con stato. Se un dispositivo edge-of-network perde la connettività, tutti i client sottoscritti riceveranno una notifica con la funzione "Last Will and Testament" del server MQTT in modo che qualsiasi client autorizzato nel sistema possa pubblicare un nuovo valore sul edge-of- dispositivo di rete, mantenendo la connettività bidirezionale.
Il progetto è diviso in 3 parti
Innanzitutto, creiamo il server MQTT su RPi e installiamo alcune librerie.
In secondo luogo, installeremo le librerie nell'IDE Arduino affinché NodeMCU funzioni con MQTT, caricheremo il codice e verificheremo se il server funziona o meno.
Infine, creiamo uno script in Rpi, carichiamo il codice richiesto in NodeMCU ed eseguiamo lo script python per controllare i led sia dal lato server che dal lato client. Qui, il server è RPi e il client è NodeMCU.
Passaggio 2: Raspberry Pi
1. Per installare il server e il client MQTT più recenti in RPi, per utilizzare il nuovo repository è necessario prima importare la chiave di firma del pacchetto del repository.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key aggiungi mosquitto-repo.gpg.key
2. Rendi il repository disponibile per apt.
cd /etc/apt/sources.list.d/
3. A seconda della versione di Debian in uso.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Installa il server Mosquitto usando il comando.
sudo apt-get install mosquitto
Se ricevi errori nell'installazione di Mosquitto in questo modo.
#################################################################
I seguenti pacchetti hanno dipendenze non soddisfatte:mosquitto: Dipende: libssl1.0.0 (>= 1.0.1) ma non è installabile Dipende: libwebsockets3 (>= 1.2) ma non è installabile E: Impossibile correggere i problemi, hai tenuto rotto Pacchetti.
#################################################################
Quindi usa questo comando per risolvere i problemi.
sudo apt --fix-broken install
5. Dopo aver installato il server MQTT, installare il client utilizzando il comando
sudo apt-get install mosquitto-clients
Puoi controllare i servizi usando il comando.
stato systemctl mosquitto.service
Poiché il nostro server e client MQTT è installato. Ora possiamo verificarlo utilizzando subscribe and publish. Per iscriversi e pubblicare è possibile controllare i comandi o visitare il sito Web come indicato di seguito.
Sottotitoli zanzara
Mosquitto Pub
Per installare la libreria paho-mqtt usa il comando qui sotto.
sudo pip install paho-mqtt
Paho
Passaggio 3: come impostare l'indirizzo IP statico
Vai alla directory cd /etc e apri il file dhcpcd.conf usando un qualsiasi editor. Alla fine, scrivi queste quattro righe.
interface eth0 static ip_address=192.168.1.100 // ip che vuoi usare
interfaccia wlan0
statico ip_address=192.168.1.68
router statici=192.168.1.1 // il tuo gateway predefinito
statici domain_name_servers=192.168.1.1
Dopodiché salvalo e riavvia il tuo pi.
Passaggio 4: NodeMCU
Installa le librerie richieste nell'IDE Arduino per NodeMCU
1. Vai a Schizzo ==> Includi libreria ==> Gestisci librerie.
2. Cerca mqtt e installa la libreria di Adafruit oppure puoi installare qualsiasi libreria.
3. Dipende dalla libreria sleepydog quindi abbiamo bisogno anche di questa libreria.
Il programma è riportato sopra, solo per verificare se funziona o meno. Qui non ho creato nessuno script in RPi. Stiamo solo usando i comandi per iscriverci e pubblicare. Creeremo uno script per il controllo in seguito.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h == > nome host-t == > argomento
-m == > messaggio
Dopo aver controllato il programma Mqtt_check, caricare il programma completo in NodeMCU
Passaggio 5: script Python
Come ho discusso sopra, abbiamo bisogno dello script Python per controllare i led usando i pulsanti. Quindi, creeremo uno script. Lo script è riportato sopra.
Quando esegui lo script, il tuo script dovrebbe essere simile a quello mostrato nell'immagine, se il codice del risultato non è zero, allora il loro è un errore che puoi controllare sul sito web di paho.
Passaggio 6: collegamenti e schema elettrico
Interfacciamento pulsante, LED con NodeMCU
NodeMCU === > ButtonGnd === > Gnd
3.3V === > PIN1
GPIO4 (D2) === > PIN2
NodeMCU === > LED
Gnd === > Catodo (-ve)
GPIO5 (D1) === > Anodo (+ve)
Interfacciamento pulsante, LED con RPi
RPi === > ButtonGnd === > PIN1
GPIO 23 === > PIN2
RPi === > LED
Gnd == > Catodo(-ve)
GPIO 24 === > Anodo (+ve)
Passaggio 7: risultato
Assicurati che lo script sia in esecuzione altrimenti non sarà in grado di controllare il led usando i pulsanti.
Consigliato:
Parla con la tua luce: 5 passaggi
Parla con la tua luce: qual è il mio progetto? Questo progetto è una luce di cui puoi cambiare i colori dicendo quale colore ti piacerà. La luce che ho realizzato in questo progetto utilizza 4 luci diverse: verde, rossa, gialla, blu e ovviamente puoi aggiungere più luci e cambiare più colori
MiniFig Lego Hulk Gigante che Muove e Parla (Scala 10:1): 14 Passi (con Immagini)
Minifig gigante Lego Hulk in movimento e parlante (scala 10:1): ho sempre giocato con i lego da bambino, ma non avevo nessuno dei lego "fantasiosi", solo i classici mattoncini lego. Sono anche un grande fan del Marvel Cinematic Universe (MCU) e il mio personaggio preferito è Hulk. Quindi perché non combinare i due e creare un gigante
Fai in modo che il tuo computer dica ciò che scrivi usando il Blocco note: 3 passaggi
Fai in modo che il tuo computer dica ciò che scrivi usando il Blocco note: ecco un codice interessante creato da noi per far parlare il tuo computer ciò che scrivi. Useremo il blocco note per crearlo. Iniziamo
Parla con Alexa e Google Assistant insieme in un Raspberry Pi: 4 passaggi
Parla con Alexa e Google Assistant insieme in un Raspberry Pi: esegui Amazon Alexa e Google Assistant contemporaneamente in un Raspberry Pi. Chiama uno dei loro nomi, accendono i propri LED e suonano per rispondere. Poi fai qualche richiesta e loro ti rispondono rispettivamente. Puoi conoscere il loro carattere
Parla con Pick e chat di intelligenza artificiale usando Cleverbot: 14 passaggi (con immagini)
Parla con Pick e chat di intelligenza artificiale utilizzando Cleverbot: qui provo non solo il comando vocale ma anche la chat di intelligenza artificiale con il computer utilizzando Cleverbot. In realtà l'idea è nata quando si sono trovati bambini che mescolano i colori nella scatola dei colori quando prendono il colore da un colore a quello più vicino. Ma finalmente implementare