Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances Exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
Sistema de Llamadas en la Nube con MQTT
Message Queuing Telemetry Transport (MQTT) es un protocolo de mensajería sencillo. También es el protocolo de mensajería más utilizado en el ámbito del Internet de las Cosas (IoT).
Los protocolos MQTT definen cómo los dispositivos IoT intercambian datos. Operan de manera impulsada por eventos y están interconectados utilizando el modelo Publicar/Suscribirse. El remitente (Publicador) y el receptor (Suscriptor) se comunican a través de Temas. Un dispositivo publica un mensaje en un tema específico, y todos los dispositivos suscritos a ese tema reciben el mensaje.
En esta sección, crearemos un sistema de timbre de servicio utilizando el UNO R4, HiveMQ (un servicio gratuito de broker público de MQTT) y cuatro botones. Cada uno de los cuatro botones corresponde a una mesa de restaurante, y cuando un cliente presiona un botón, podrás ver qué mesa necesita servicio en HiveMQ.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
Ítems en este Kit |
Enlace |
---|---|---|
Elite Explorer Kit |
300+ |
También puedes comprarlos por separado desde los enlaces a continuación.
Introducción del Componente |
Enlace de Compra |
---|---|
- |
|
Conexiones
Esquemático
¿Cómo jugar?
HiveMQ es una plataforma de mensajería basada en MQTT que facilita la transferencia rápida, eficiente y confiable de datos a dispositivos IoT.
Abre HiveMQ Web Client en tu navegador web.
Conecta el cliente al proxy público predeterminado.
Haz clic en Add New Topic Subscription.
Introduce los temas que deseas seguir y haz clic en Subscribe. Asegúrate de que los temas que configures aquí sean únicos para evitar recibir mensajes de otros usuarios y presta atención a la sensibilidad de mayúsculas y minúsculas.
En este código de ejemplo, configuramos el tema como
SunFounder MQTT Test
. Si has realizado algún cambio, asegúrate de que el tema en el código coincida con el tema suscrito en la página web.
Instalar la Biblioteca
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «ArduinoMqttClient» e instálala.
ArduinoMqttClient.h
: Utilizada para la comunicación MQTT.
Ejecutar el Código
Nota
Puedes abrir el archivo
04_mqtt_button.ino
bajo la rutaelite-explorer-kit-main\iot_project\04_mqtt_button
directamente.O copia este código en el IDE de Arduino.
Nota
En el código, SSID y contraseña se almacenan en arduino_secrets.h
. Antes de subir este ejemplo, necesitas modificarlos con tus propias credenciales de WiFi. Adicionalmente, por motivos de seguridad, asegúrate de mantener esta información confidencial al compartir o almacenar el código.
Después de ejecutar el código, vuelve a HiveMQ Web Client, y cuando presiones uno de los botones en la protoboard, verás el mensaje en HiveMQ.
¿Cómo funciona?
Este código es para un proyecto basado en Arduino que se conecta a Wi-Fi y se comunica con un broker MQTT utilizando el protocolo MQTT. Además, puede detectar si se presionan cuatro botones y enviar los mensajes correspondientes al broker MQTT.
Aquí tienes una explicación detallada del código:
Incluir Bibliotecas Relevantes:
#include <WiFiS3.h> #include <ArduinoMqttClient.h>
Incluir Información Sensible:
El archivo
arduino_secrets.h
contiene el SSID y la contraseña para la red Wi-Fi.
#include "arduino_secrets.h" char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS;
Inicializar Variables:
Variables para gestionar conexiones Wi-Fi y MQTT.
Inicializar pines de botones y estados de botones.
setup()
:Inicializar la comunicación serial.
Verificar la presencia del módulo Wi-Fi e intentar conectarse a Wi-Fi.
Imprimir datos de la red.
Intentar conectarse al broker MQTT.
Suscribirse a temas MQTT.
Configurar los botones en modo de entrada.
loop()
:Mantener activa la conexión MQTT.
Verificar si cada botón se presiona, y si es así, enviar mensajes MQTT.
Otras Funciones Utilitarias:
printWifiData()
: Imprime información sobre la red Wi-Fi actualmente conectada.printCurrentNet()
: Imprime datos relevantes sobre la red actual.printMacAddress(byte mac[])
: Imprime la dirección MAC.onMqttMessage(int messageSize)
: Función de callback que se activa cuando se recibe un mensaje del broker MQTT. Imprime el tema del mensaje recibido y su contenido.sendButtonMessage(int buttonNumber)
: Utiliza esta función para enviar mensajes MQTT cuando se presiona un botón.