Taula de continguts:
- Pas 1: què és MQTT i com funciona
- Pas 2: Raspberry Pi
- Pas 3: Com configurar l'adreça IP estàtica
- Pas 4: NodeMCU
- Pas 5: Python Script
- Pas 6: connexions i diagrama de circuits
- Pas 7: Resultat
Vídeo: Raspberry Pi parlant amb ESP8266 mitjançant MQTT: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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
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
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
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
Assegureu-vos que l'script s'està executant en cas contrari, no podrà controlar el led mitjançant botons.
Recomanat:
Mini Gig Lego Hulk en moviment i parlant (escala 10: 1): 14 passos (amb imatges)
Moving and Talking Gegant Lego Hulk MiniFig (escala 10: 1): Sempre he jugat amb legos de petit, però no tenia cap dels “fantàstics” legos, només maons de lego clàssics. També sóc un gran fan de l’Univers Cinemàtic Marvel (MCU) i el meu personatge preferit és Hulk. Llavors, per què no combinar els dos i fer un gegant
Barret parlant de detecció de sacsejades amb Circuit Playground Express: 12 passos (amb imatges)
Barret parlant de detecció de sacsejades amb Circuit Playground Express: aquest tutorial fàcil i ràpid us ensenya a fer un barret parlant. Respondria amb una resposta acuradament processada quan "feu" una pregunta i potser us podria ajudar a decidir si teniu problemes o problemes. A la meva classe de Wearable Tech, jo
Barbara: la càmera d'IA parlant: 4 passos (amb imatges)
Barbara: the Talking AI Camera: la IA és la darrera paraula de moda, aquest projecte tracta sobre una mica inútil. Després de trobar una API ordenada que capturi imatges i una càmera antiga, es fixen els objectius: una càmera que capturi el que veu
Rellotge parlant amb Arduino: 3 passos (amb imatges)
Talking Clock With Arduino: Hola a tots, durant un temps vaig intentar crear un Talking Clock (vegeu el vídeo), però sense tenir bons resultats a causa del model de mòdul de veu que feia servir per fer-ho. Després de moltes cerques relacionades amb el maquinari adequat i també aprendre sobre com utilitzar el libr adequat
Controlar Arduino mitjançant un telèfon intel·ligent mitjançant USB amb l'aplicació Blynk: 7 passos (amb imatges)
Controlar Arduino mitjançant un telèfon intel·ligent mitjançant USB amb l’aplicació Blynk: en aquest tutorial, aprendrem a utilitzar l’aplicació Blynk i Arduino per controlar la llum, la combinació es farà a través del port sèrie USB. la solució més senzilla que controla remotament el vostre Arduino o c