Taula de continguts:

Raspberry Pi parlant amb ESP8266 mitjançant MQTT: 8 passos
Raspberry Pi parlant amb ESP8266 mitjançant MQTT: 8 passos

Vídeo: Raspberry Pi parlant amb ESP8266 mitjançant MQTT: 8 passos

Vídeo: Raspberry Pi parlant amb ESP8266 mitjançant MQTT: 8 passos
Vídeo: 30 глупых вопросов Product Manager [Карьера в IT] 2024, Desembre
Anonim
Raspberry Pi parlant amb ESP8266 mitjançant MQTT
Raspberry Pi parlant amb ESP8266 mitjançant MQTT

En aquest projecte, explicaré què és el protocol MQTT i com s’utilitza per comunicar-se entre dispositius. Després, com a demostració pràctica, demostraré com configurar un sistema client i brocker, on es parla d’un mòdul ESP8266 i de RPi. o envieu un missatge quan es prem un botó.

Material requerit

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Botó

5. Resistències (10 k, 475 ohm)

Pas 1: què és MQTT i com funciona

MQTT

MQTT és un protocol de transferència de dades de màquina a màquina (M2M). MQTT es va crear amb l'objectiu de recopilar dades de molts dispositius i després transportar aquestes dades a la infraestructura de TI. És lleuger i, per tant, ideal per a la supervisió remota, especialment en connexions M2M que requereixen una petita petjada de codi o on l’amplada de banda de la xarxa és limitada.

Com funciona MQTT

MQTT és un protocol de publicació / subscripció que permet que els dispositius de punta de xarxa puguin publicar-se en un agent. Els clients es connecten a aquest intermediari, que després media la comunicació entre els dos dispositius. Cada dispositiu pot subscriure's o registrar-se a temes concrets. Quan un altre client publica un missatge sobre un tema subscrit, l'agent reenvia el missatge a qualsevol client que s'hagi subscrit.

MQTT és bidireccional i manté la consciència de la sessió amb estat. Si un dispositiu de vora de xarxa perd la connectivitat, tots els clients subscrits rebran una notificació amb la característica "Última voluntat i testament" del servidor MQTT perquè qualsevol client autoritzat del sistema pugui publicar un valor nou a la vora de dispositiu de xarxa, mantenint la connectivitat bidireccional.

El projecte es divideix en 3 parts

En primer lloc, creem el servidor MQTT a RPi i instal·lem algunes biblioteques.

En segon lloc, instal·larem biblioteques a Arduino IDE perquè NodeMCU funcioni amb MQTT, carregarem el codi i comprovarem si el servidor funciona o no.

Finalment, creem un script a Rpi, carreguem el codi requerit a NodeMCU i executem el script python per controlar els leds tant des del servidor com des del client. Aquí, el servidor és RPi i el client és NodeMCU.

Pas 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Per instal·lar l'últim servidor i client MQTT a RPi, per utilitzar el nou dipòsit, primer heu d'importar la clau de signatura del paquet del dipòsit.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key afegir mosquitto-repo.gpg.key

2. Feu que el repositori estigui disponible per a apt.

cd /etc/apt/sources.list.d/

3. Depenent de la versió de Debian que utilitzeu.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. Instal·leu el servidor Mosquitto mitjançant l'ordre.

sudo apt-get install mosquitto

Si teniu errors en instal·lar Mosquitto així.

#################################################################

Els paquets següents tenen dependències que no es compleixen: mosquitto: Depèn: libssl1.0.0 (> = 1.0.1), però no es pot instal·lar Depèn: libwebsockets3 (> = 1.2), però no es pot instal·lar. E: No s'ha pogut corregir els problemes; paquets.

#################################################################

A continuació, utilitzeu aquesta ordre per solucionar problemes.

sudo apt --fix-broken install

5. Després d'instal·lar el servidor MQTT, instal·leu el client mitjançant l'ordre

sudo apt-get install mosquitto-clients

Podeu consultar els serveis mitjançant l’ordre.

systemctl status mosquitto.service

A mesura que s’instal·la el nostre servidor i client MQTT. Ara ho podem comprovar mitjançant subscripció i publicació. Per subscriure-us i publicar-los, podeu consultar les ordres o visitar el lloc web tal com es mostra a continuació.

Mosquitto Sub

Pub Mosquitto

Per instal·lar paho-mqtt library utilitzeu l'ordre següent.

sudo pip install paho-mqtt

Paho

Pas 3: Com configurar l'adreça IP estàtica

Com configurar l'adreça IP estàtica
Com configurar l'adreça IP estàtica

Aneu al directori cd / etc i obriu el fitxer dhcpcd.conf amb qualsevol editor. Al final, escriviu aquestes quatre línies.

interface eth0 static ip_address = 192.168.1.100 // ip que voleu utilitzar

interfície wlan0

adreça IP_estàtica = 192.168.1.68

routers estàtics = 192.168.1.1 // la vostra passarel·la predeterminada

servidors_nom_domini_estàtics = 192.168.1.1

Després, deseu-lo i reinicieu el pi.

Pas 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Instal·leu les biblioteques necessàries a Arduino IDE per a NodeMCU

1. Aneu a Sketch ==> Inclou biblioteca ==> Gestiona les biblioteques.

2. Cerqueu mqtt i instal·leu la biblioteca per Adafruit o podeu instal·lar qualsevol biblioteca.

3. Depèn de la biblioteca sleepydog, de manera que també necessitem aquesta biblioteca.

El programa es dóna més amunt, només per comprovar si funciona o no. Aquí no he creat cap script a RPi. Només fem servir ordres per subscriure-us i publicar-los. Més endavant crearem script per controlar-los.

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 ==> nom de l'amfitrió-t ==> tema

-m ==> missatge

Després de comprovar el programa Mqtt_check, pengeu el programa complet a NodeMCU

Pas 5: Python Script

Script Python
Script Python
Script Python
Script Python

Com he comentat anteriorment, necessitem script Python per controlar els leds mitjançant botons. Per tant, crearem script. L’escriptura es dóna més amunt.

Quan executeu l'script, l'script hauria de ser com es mostra a la imatge, si el codi de resultat no és zero, és un error que podeu comprovar al lloc web de paho.

Pas 6: connexions i diagrama de circuits

Connexions i diagrama de circuits
Connexions i diagrama de circuits
Connexions i diagrama de circuits
Connexions i diagrama de circuits

Interfície de botó, LED amb NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3,3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Càtode (-ve)

GPIO5 (D1) ===> Ànode (+ ve)

Interfície de botó, LED amb RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Càtode (-ve)

GPIO 24 ===> Ànode (+ ve)

Pas 7: Resultat

Image
Image
Resultat
Resultat

Assegureu-vos que l'script s'està executant en cas contrari, no podrà controlar el led mitjançant botons.

Recomanat: