Configuración de MQTT
Esta guía muestra cómo configurar la comunicación MQTT entre su cámara OV20i y dispositivos externos usando Node-RED. MQTT permite mensajería ligera y fiable para aplicaciones IoT y comunicación remota entre dispositivos.
Cuándo usar la Comunicación MQTT: integración de dispositivos IoT, sistemas de monitoreo remoto, patrones de publicación/suscripción (publish/subscribe), entornos de ancho de banda reducido, redes de sensores distribuidas, o cuando necesita entrega de mensajes confiable con reconexión automática.
Prerrequisitos
- Sistema de cámara OV20i configurado y conectado
- Conectividad de red entre la cámara y el broker MQTT
- Broker MQTT disponible (local o basado en la nube)
- Comprensión básica de los conceptos de MQTT (topics, publish/subscribe)
- Receta activa configurada en la cámara
Descripción General de MQTT
Conceptos Clave de MQTT:
- Broker: Servidor central que enruta los mensajes entre clientes
- Topics: Categorías de mensajes (p. ej., "camera/status", "commands/trigger")
- Publish: Enviar mensajes a un topic
- Subscribe: Recibir mensajes de un topic
- QoS: Niveles de Calidad de Servicio (0, 1, 2)
Paso 1: Verificar la Configuración de Red
1.1 Verificar la configuración de red de la cámara
- Ir a System Settings
- Anote la dirección IP de la cámara (p. ej., 192.168.0.100)
- Verifique la conectividad de red hacia el broker MQTT
1.2 Requisitos del broker MQTT
Asegurar que el broker MQTT sea accesible:
- Misma red: la cámara debe poder alcanzar la dirección IP del broker
- Acceso al puerto: Puerto MQTT predeterminado 1883 (o 8883 para TLS)
- Autenticación: Nombre de usuario/contraseña si el broker lo requiere
- Cortafuegos: Permitir tráfico MQTT en los puertos requeridos
1.3 Requisitos de red
Componente | Dirección IP | Puerto | Notas |
---|---|---|---|
Cámara | 192.168.0.100 | N/A | Debe alcanzar al broker |
Broker MQTT | 192.168.0.200 | 1883 | Puerto MQTT estándar |
Dispositivos Cliente | 192.168.0.xxx | Variable | Cualquier dispositivo suscriptor |
Paso 2: Acceder al Editor de Node-RED
2.1 Navegar a IO Block
- Abrir su receta activa en Recipe Editor
- Hacer clic en "IO Block" en el menú de migas de pan
- Hacer clic en "Configure IO" para ingresar al editor de Node-RED
2.2 Verificar nodos MQTT disponibles
Verifique la paleta de Node-RED para nodos MQTT:
- mqtt in - Suscribirse a topics MQTT
- mqtt out - Publicar en topics MQTT
Punto de control: Debe ver nodos MQTT en la sección Network del panel izquierdo.
Paso 3: Configurar la Conexión al Broker MQTT
3.1 Agregar Configuración del broker MQTT
- Arrastrar el nodo "mqtt in" al lienzo (para la configuración inicial)
- Hacer doble clic en el nodo para abrir la configuración
- Hacer clic en el icono del lápiz junto al campo Server
- Hacer clic en "Add new mqtt-broker"
3.2 Configurar la Configuración del Broker
Configuración básica del Broker:
Configuración | ** Valor ** | Descripción |
---|---|---|
Nombre | Camera MQTT Broker | Identificador descriptivo |
Servidor | 192.168.0.200 | Dirección IP del broker MQTT |
Puerto | 1883 | Puerto MQTT estándar |
Protocolo | MQTT V3.1.1 | Versión recomendada |
Client ID | (autogenerado) | Dejar en blanco para automático |
3.3 Configuración de Autenticación (Si es requerida)
Si el broker requiere autenticación:
Configuración | Descripción |
---|---|
Nombre de usuario | Nombre de usuario del broker MQTT |
Contraseña | Contraseña del broker MQTT |
Usar TLS | Habilitar para conexiones seguras (puerto 8883) |
3.4 Advanced Settings
Opciones de Conexión:
Setting | Recommended Value | Description |
---|---|---|
Keep Alive | 60 seconds | Intervalo de latido |
Clean Session | True | Iniciar de cero en cada conexión |
Auto Connect | True | Reconectar automáticamente |
3.5 Save Broker Configuration
- Click "Add" to save broker settings
- Click "Done" to close node configuration
- Broker configuration is now available for all MQTT nodes
Step 4: Configure MQTT Input (Subscribe)
4.1 Set Up MQTT In Node
- Select the "mqtt in" node you added
- Double-click to configure
- Configure subscription settings:
4.2 MQTT In Configuration
Subscription Settings:
Setting | Example Value | Description |
---|---|---|
Server | Camera MQTT Broker | Select configured broker |
Topic | camera/commands | Topic to subscribe to |
QoS | 0 | Message delivery quality |
Output | auto-detect | Message format |
Name | Command Listener | Node identifier |
4.3 Topic Naming Conventions
Recommended topic structure:
Purpose | Topic Example | Usage |
---|---|---|
Commands | camera/commands | Receive control commands |
Status requests | camera/status/request | Status information requests |
Configuration | camera/config | Configuration changes |
4.4 Configure Message Processing
- Add "debug" node to monitor incoming messages
- Connect: MQTT In → Debug
- Configure debug node to show complete message
Step 5: Configure MQTT Output (Publish)
5.1 Add MQTT Out Node
- Drag "mqtt out" node onto canvas
- Double-click to configure
- Select same broker configuration
5.2 MQTT Out Configuration
Publishing Settings:
Setting | Example Value | Description |
---|---|---|
Server | Camera MQTT Broker | Same broker as input |
Topic | camera/responses | Topic for camera responses |
QoS | 0 | Message delivery quality |
Retain | False | Don't store last message |
Name | Response Publisher | Node identifier |
5.3 Response Topic Structure
Recommended response topics:
Response Type | Topic Example | Usage |
---|---|---|
Status updates | camera/status | Camera status information |
Results | camera/results | Inspection results |
Acknowledgments | camera/ack | Command confirmations |
Step 6: Create Basic Communication Flow
6.1 Build Outgoing Message Flow
Create a flow to publish messages from the camera:
- Add "inject" node for triggering messages
- Add "function" node for message formatting
- Add "mqtt out" node for publishing
- Connect: Inject → Function → MQTT Out
6.2 Build Incoming Message Flow
Create a separate flow to receive messages:
- Add "mqtt in" node for subscribing
- Add "debug" node for monitoring
- Connect: MQTT In → Debug
6.3 Configure Inject Node
- Double-click inject node
- Configure settings:
- Name: "Send Test Message"
- Payload: Timestamp
- Topic: (leave empty)
- Click "Done"
6.4 Configurar Nodo de Función
Formato de mensaje simple:
// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;
- Haga doble clic en el nodo de función
- Copie el código anterior en la pestaña "On Message"
- Nombre: "Format Message"
- Haga clic en "Done"
6.5 Configurar Nodo MQTT Out
- Haga doble clic en el nodo MQTT Out
- Seleccionar broker: Camera MQTT Broker (configurado anteriormente)
- Topic: (deje vacío - lo establece el nodo de función)
- Nombre: "Publish Status"
- Haga clic en "Done"
6.6 Configurar Nodo MQTT In
- Haga doble clic en el nodo MQTT In
- Seleccionar broker: Camera MQTT Broker
- Topic:
camera/commands
- Nombre: "Command Listener"
- Haga clic en "Done"
6.7 Configurar Nodo Debug
- Haga doble clic en el nodo debug
- Salida: Complete msg object
- Nombre: "Incoming Messages"
- Haga clic en "Done"
6.8 Estructura Final del Flujo
Su flujo completo debería ser:
Saliente (Outgoing): Inject → Function → MQTT Out Entrante (Incoming): MQTT In → Debug
Paso 7: Desplegar y Probar la Configuración
7.1 Desplegar Flujo
- Haga clic en el botón "Deploy" (esquina superior derecha)
- Verificar mensaje de éxito de despliegue
- Verificar indicadores de estado de los nodos:
- Punto verde: Conectado al broker
- Punto rojo: Conexión fallida
- Punto amarillo: Conectando
7.2 Prueba de Comunicación Interna
Prueba de la publicación MQTT de la cámara:
- Haga clic en el botón de inyección para enviar un mensaje de prueba
- Verifique que el nodo MQTT Out muestre actividad
- Verifique el panel de depuración si tiene mensajes externos
7.3 Prueba externa (Opcional)
Prueba con un cliente MQTT externo para enviar comandos a la cámara:
Usando herramientas de línea de comandos:
# Send a test command to the camera
mosquitto_pub -h 192.168.0.100 -t "camera/commands" -m "test_command"
Resultado esperado: El nodo de depuración debe mostrar el mensaje entrante en el panel de depuración de Node-RED.
7.4 Verificar la Comunicación
Verifique estos aspectos:
Prueba | Resultado esperado | Estado |
---|---|---|
Conexión al broker | Estado verde en los nodos MQTT | ☐ |
Publicación de mensajes | La inyección activa MQTT Out con éxito | ☐ |
Recepción de mensajes | Depuración muestra mensajes externos | ☐ |
Reconexion | Reconexión automática tras interrupción de la red | ☐ |
Paso 8: Solución de problemas de MQTT
8.1 Problemas de conexión
Problema | Síntomas | Solución |
---|---|---|
No se puede conectar al broker | Indicadores de estado rojos | Verifique la IP y el puerto del broker |
Fallo de autenticación | Conexión rechazada | Verifique nombre de usuario y contraseña |
Timeouts de red | Estado de conexión en amarillo | Verifique la conectividad de la red |
Bloqueo de firewall | Sin intento de conexión | Abrir puertos MQTT |
8.2 Problemas de mensajes
Problema | Síntomas | Solución |
---|---|---|
No se reciben mensajes | La depuración no muestra nada | Verifique suscripciones al topic |
Mensajes no se publican | Los clientes externos no ven nada | Verifique temas de publicación |
Errores de formato de mensaje | Fallos de análisis | Use mensajes de texto simples |
Pérdida de mensajes | Entrega intermitente | Verifique la conexión al broker |
8.3 Problemas de Rendimiento
Problema | Síntomas | Solución |
---|---|---|
Alta latencia | Retraso en la entrega de mensajes | Verificar el rendimiento del broker |
Caídas de conexión | Reconexiones frecuentes | Ajustar la configuración de keep-alive |
Sobrecarga de mensajes | Sobrecarga del broker | Implementar control de flujo de mensajes |
8.4 Técnicas de Depuración
Depuración sistemática:
- Verificar el estado de la conexión con el broker en Node-RED
- Monitorear el panel de depuración de Node-RED para el flujo de mensajes
- Usar mensajes de texto simples antes de datos complejos
- Verificar la conectividad de red con ping
- Probar con temas básicos antes de flujos avanzados
¡Éxito! Su comunicación MQTT está lista
Su sistema de comunicación MQTT ya puede:
- Conectarse a brokers MQTT con autenticación adecuada
- Suscribirse a temas para recibir comandos y datos
- Publicar mensajes para actualizaciones de estado y respuestas
- Manejar formatos de mensaje JSON para comunicación estructurada
- Reconectar automáticamente tras interrupciones de red
- Soportar múltiples niveles de QoS para diferentes prioridades de mensajes
Mantenimiento en curso
Verificaciones periódicas del sistema
- Monitorear el estado de la conexión con el broker en Node-RED
- Verificar la entrega de mensajes con mensajes de prueba
- Verificar los registros del broker para detectar patrones de error
- Actualizar las credenciales de autenticación según sea necesario
Monitoreo del Rendimiento
- Rastrear la latencia de mensajes y los tiempos de entrega
- Monitorear el uso de recursos del broker para la escalabilidad
- Analizar los patrones de uso de temas para optimización
- Revisar la configuración de QoS en función de los requisitos reales
Próximos Pasos
Después de configurar la comunicación MQTT básica:
- Implementar flujos de mensajería específicos para su aplicación
- Configurar jerarquías de temas para una comunicación organizada
- Agregar medidas de seguridad como cifrado TLS
- Integrar con sistemas externos utilizando protocolos MQTT establecidos
- Crear paneles de monitoreo para la salud del sistema