Tabla de contenido:
- Paso 1: Qué es MQTT y cómo funciona
- Paso 2: Raspberry Pi
- Paso 3: Cómo configurar la dirección IP estática
- Paso 4: NodeMCU
- Paso 5: secuencia de comandos de Python
- Paso 6: Diagrama de conexiones y circuito
- Paso 7: Resultado
Video: Raspberry Pi hablando con ESP8266 usando MQTT: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
En este proyecto, explicaré qué es el protocolo MQTT y cómo se usa para comunicarse entre dispositivos, luego, como demostración práctica, demostraré cómo configurar un sistema cliente y brocker, donde un módulo ESP8266 y RPi hablan entre sí o enviar un mensaje cuando se presiona un botón.
Material requerido
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Botón
5. Resistencias (10 k, 475 ohmios)
Paso 1: Qué es MQTT y cómo funciona
MQTT
MQTT es un protocolo de transferencia de datos de máquina a máquina (M2M). MQTT se creó con el objetivo de recopilar datos de muchos dispositivos y luego transportarlos a la infraestructura de TI. Es liviano y, por lo tanto, ideal para el monitoreo remoto, especialmente en conexiones M2M que requieren una pequeña huella de código o donde el ancho de banda de la red es limitado.
Cómo funciona MQTT
MQTT es un protocolo de publicación / suscripción que permite que los dispositivos del borde de la red publiquen en un corredor. Los clientes se conectan a este intermediario, que luego media la comunicación entre los dos dispositivos. Cada dispositivo puede suscribirse o registrarse a temas particulares. Cuando otro cliente publica un mensaje sobre un tema suscrito, el corredor reenvía el mensaje a cualquier cliente que se haya suscrito.
MQTT es bidireccional y mantiene el conocimiento de la sesión con estado. Si un dispositivo de borde de red pierde la conectividad, todos los clientes suscritos serán notificados con la función "Última voluntad y testamento" del servidor MQTT para que cualquier cliente autorizado en el sistema pueda publicar un nuevo valor en el borde de dispositivo de red, manteniendo la conectividad bidireccional.
El proyecto se divide en 3 partes
En primer lugar, creamos el servidor MQTT en RPi e instalamos algunas bibliotecas.
En segundo lugar, instalaremos bibliotecas en Arduino IDE para que NodeMCU funcione con MQTT, cargaremos el código y verificaremos si el servidor está funcionando o no.
Finalmente, creamos un script en Rpi, cargamos el código requerido en NodeMCU y ejecutamos el script de Python para controlar los leds tanto del lado del servidor como del cliente. Aquí, el servidor es RPi y el cliente es NodeMCU.
Paso 2: Raspberry Pi
1. Para instalar el servidor y el cliente MQTT más recientes en RPi, para utilizar el nuevo repositorio, primero debe importar la clave de firma del paquete del repositorio.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Haga que el repositorio esté disponible para apt.
cd /etc/apt/sources.list.d/
3. Dependiendo de la versión de Debian que esté utilizando.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Instale el servidor Mosquitto usando el comando.
sudo apt-get install mosquitto
Si obtiene errores al instalar Mosquitto como este.
#################################################################
Los siguientes paquetes tienen dependencias no satisfechas: mosquitto: Depende: libssl1.0.0 (> = 1.0.1) pero no se puede instalar Depende: libwebsockets3 (> = 1.2) pero no se puede instalar E: No se pueden corregir los problemas, se ha mantenido roto paquetes.
#################################################################
Luego use este comando para solucionar problemas.
sudo apt --fix-broken install
5. Después de instalar el servidor MQTT, instale el cliente usando el comando
sudo apt-get install mosquitto-clients
Puede verificar los servicios usando el comando.
systemctl status mosquitto.service
Como nuestro servidor y cliente MQTT está instalado. Ahora, podemos comprobarlo mediante suscribirse y publicar. Para suscribirse y publicar, puede verificar los comandos o visitar el sitio web como se indica a continuación.
Mosquitto Sub
Pub Mosquitto
Para instalar la biblioteca paho-mqtt, use el siguiente comando.
sudo pip instalar paho-mqtt
Paho
Paso 3: Cómo configurar la dirección IP estática
Vaya al directorio cd / etc y abra el archivo dhcpcd.conf usando cualquier editor. Al final, escribe estas cuatro líneas.
interface eth0 static ip_address = 192.168.1.100 // ip que desea usar
interfaz wlan0
dirección_ip estática = 192.168.1.68
enrutadores estáticos = 192.168.1.1 // su puerta de enlace predeterminada
static domain_name_servers = 192.168.1.1
Después de eso, guárdelo y reinicie su pi.
Paso 4: NodeMCU
Instale las bibliotecas necesarias en Arduino IDE para NodeMCU
1. Vaya a Sketch ==> Incluir biblioteca ==> Administrar bibliotecas.
2. Busque mqtt e instale la biblioteca de Adafruit o puede instalar cualquier biblioteca.
3. Depende de la biblioteca de sleepydog, por lo que también necesitamos esta biblioteca.
El programa se da arriba, solo para verificar si funciona o no. Aquí no he creado ningún script en RPi. Solo estamos usando comandos para suscribirnos y publicar. Crearemos un script para controlar más adelante.
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "APAGADO"
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 "APAGADO"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "TOGGLE"
-h ==> nombre de host-t ==> tema
-m ==> mensaje
Después de verificar el programa Mqtt_check, cargue el programa completo en NodeMCU
Paso 5: secuencia de comandos de Python
Como mencioné anteriormente, necesitamos un script de Python para controlar leds usando botones. Entonces, vamos a crear un script. El guión se da arriba.
Cuando ejecute el script, su script debería verse como se muestra en la imagen, si el código de resultado no es cero, entonces es un error, puede verificar el error en el sitio web de paho.
Paso 6: Diagrama de conexiones y circuito
Interfaz de botón, LED con NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3,3 V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Cátodo (-ve)
GPIO5 (D1) ===> Ánodo (+ ve)
Interfaz de botón, LED con RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> cátodo (-ve)
GPIO 24 ===> Ánodo (+ ve)
Paso 7: Resultado
Asegúrese de que su secuencia de comandos se esté ejecutando, de lo contrario, no podrá controlar el LED con los botones.
Recomendado:
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: 8 pasos (con imágenes)
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: Introducción Visite mi canal de Youtube Un dron es un dispositivo (producto) muy caro de comprar. En este post voy a discutir, ¿cómo lo hago a bajo precio? ¿Y cómo puedes hacer el tuyo así a un precio económico? Bueno, en la India todos los materiales (motores, ESC
Neopixel Ws2812 Rainbow LED Glow con M5stick-C - Ejecutando Rainbow en Neopixel Ws2812 usando M5stack M5stick C usando Arduino IDE: 5 pasos
Neopixel Ws2812 Rainbow LED Glow con M5stick-C | Ejecutando Rainbow en Neopixel Ws2812 Usando M5stack M5stick C Usando Arduino IDE: Hola chicos, en este instructables aprenderemos a usar LED neopixel ws2812 o tira de LED o matriz de LED o anillo de LED con placa de desarrollo m5stack m5stick-C con Arduino IDE y haremos un patrón de arco iris con él
Hablando de Arduino - Reproducción de MP3 con Arduino sin ningún módulo - Reproducción de archivos MP3 desde Arduino usando PCM: 6 pasos
Hablando de Arduino | Reproducción de MP3 con Arduino sin ningún módulo | Reproducción de archivos MP3 desde Arduino usando PCM: en estas instrucciones aprenderemos cómo reproducir un archivo mp3 con arduino sin usar ningún módulo de audio, aquí usaremos la biblioteca PCM para Arduino que reproduce PCM de 16 bits con una frecuencia de 8kHZ, así que hagamos esto
Cómo usar MQTT con Raspberry Pi y ESP8266: 8 pasos (con imágenes)
Cómo usar MQTT con Raspberry Pi y ESP8266: En este Instructable, explicaré qué es el protocolo MQTT y cómo se usa para comunicarse entre dispositivos. Luego, como demostración práctica, le mostraré cómo configurar dos simples sistema cliente, donde un módulo ESP8266 enviará un mensaje
Detección de intrusos HiFive1 Arduino con alertas MQTT usando ESP32 o ESP8266: 6 pasos
Detección de intrusos HiFive1 Arduino con alertas MQTT usando ESP32 o ESP8266: HiFive1 es la primera placa basada en RISC-V compatible con Arduino construida con CPU FE310 de SiFive. La placa es aproximadamente 20 veces más rápida que Arduino UNO, pero al igual que la placa UNO, carece de conectividad inalámbrica. Afortunadamente, hay varios componentes económicos