Sommario:

Raspberry Pi che parla con ESP8266 usando MQTT: 8 passaggi
Raspberry Pi che parla con ESP8266 usando MQTT: 8 passaggi

Video: Raspberry Pi che parla con ESP8266 usando MQTT: 8 passaggi

Video: Raspberry Pi che parla con ESP8266 usando MQTT: 8 passaggi
Video: Creating a Portable IoT System: MQTT Broker on Raspberry Pi Zero 2 W 2024, Dicembre
Anonim
Raspberry Pi parla con ESP8266 usando MQTT
Raspberry Pi parla con ESP8266 usando MQTT

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

Lampone Pi
Lampone Pi
Lampone Pi
Lampone Pi
Lampone Pi
Lampone Pi
Lampone Pi
Lampone 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

Come impostare l'indirizzo IP statico
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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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

Script Python
Script Python
Script Python
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

Collegamenti e schema elettrico
Collegamenti e schema elettrico
Collegamenti e schema elettrico
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

Image
Image
Risultato
Risultato

Assicurati che lo script sia in esecuzione altrimenti non sarà in grado di controllare il led usando i pulsanti.

Consigliato: