DOCUMENTACIÓN CON IA
¿Qué desea saber?
Configuración de MQTT
Esta guía muestra cómo configurar la comunicación MQTT entre su cámara OV80i y dispositivos externos utilizando Node-RED. MQTT permite mensajería ligera y confiable 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 (pub/sub), entornos de ancho de banda bajo, redes de sensores distribuidas, o cuando necesite entrega confiable de mensajes con reconexión automática.
Prerrequisitos
- Sistema de cámara OV80i configurado y conectado
- Conectividad de red entre la cámara y el broker MQTT
- Broker MQTT disponible (local o en la nube)
- Comprensión básica de conceptos MQTT (topics, publish/subscribe)
- Receta activa configurada en la cámara
Visión general de la comunicación MQTT
Conceptos clave de MQTT:
- Broker: Servidor central que enruta mensajes entre clientes
- Topics: Categorías de mensajes (p. ej., "camera/status", "commands/trigger")
- Publish: Enviar mensajes a un tema
- Subscribe: Recibir mensajes de un tema
- QoS: Niveles de Calidad de Servicio (0, 1, 2)
Paso 1: Verificar la Configuración de Red
1.1 Verifique la Configuración de Red de la Cámara
- Navegue a Configuración del Sistema
- Anote la dirección IP de la cámara (p. ej.,
10.250.0.100) - Verifique la conectividad de red hacia el broker MQTT
1.2 Requisitos del Broker MQTT
Asegure la accesibilidad del broker MQTT:
- Misma red: La cámara debe 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
- Firewall: Permitir tráfico MQTT en los puertos requeridos
1.3 Requisitos de Red
| Componente | Dirección IP | Puerto | Notas |
|---|---|---|---|
| Cámara | 10.250.0.100 | N/A | Debe alcanzar al broker |
| Broker MQTT | 10.250.0.200 | 1883 | Puerto MQTT estándar |
| Dispositivos Cliente | 10.250.0.xxx | Variable | Cualquier dispositivo suscriptor |
Paso 2: Acceder al Editor de Node-RED
2.1 Navegue hasta IO Block
- Abra su receta activa en el Recipe Editor
- Haga clic en Configure IO o seleccione IO Block en el menú de migas de pan para ingresar al editor de Node-RED
2.2 Verifique que los nodos MQTT estén disponibles
Verifique la paleta de Node-RED para nodos MQTT:
- mqtt in - Suscribirse a temas MQTT
- mqtt out - Publicar en temas MQTT
Punto de control: Debe ver nodos MQTT en la sección Red del panel izquierdo.
Paso 3: Configurar la Conexión al Broker MQTT
3.1 Crear la Configuración del Broker MQTT
- Arrastre el nodo "mqtt in" al lienzo (para la configuración inicial)
- Haga doble clic en el nodo para abrir la configuración
- Haga clic en el icono de lápiz junto al campo Servidor
- Haga clic en "Add new mqtt-broker"
3.2 Configurar los Ajustes del Broker
Configuración básica del Broker:
| Configuración | Valor | Descripción |
|---|---|---|
| Nombre | Broker MQTT de la cámara | 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 |
| ID de Cliente | (generado automáticamente) | Dejar en blanco para automático |
3.3 Configuración de Autenticación (Si es necesario)
Si el broker requiere autenticación:
| Configuración | Descripción |
|---|---|
| Usuario | Nombre de usuario del broker MQTT |
| Contraseña | Contraseña del broker MQTT |
| Usar TLS | Habilitar para conexiones seguras (puerto 8883) |
3.4 Configuraciones Avanzadas
Opciones de Conexión:
| Configuración | Valor recomendado | Descripción |
|---|---|---|
| Keep Alive | 60 segundos | Intervalo de latido |
| Clean Session | Verdadero | Iniciar sesión limpia en cada conexión |
| Auto Connect | Verdadero | Reintentar conexión automáticamente |
3.5 Guardar Configuración del Broker
- Haga clic en "Agregar" para guardar la configuración del broker
- Haga clic en "Listo" para cerrar la configuración del nodo
- La configuración del broker ya está disponible para todos los nodos MQTT
Paso 4: Configurar MQTT Input (Suscribirse)
4.1 Configurar Nodo MQTT In
- Seleccione el nodo "mqtt in" que agregó
- Haga doble clic para configurar
- Configurar ajustes de suscripción:
4.2 Configuración MQTT In
Ajustes de Suscripción:
| Configuración | Valor de ejemplo | Descripción |
|---|---|---|
| Servidor | Camera MQTT Broker | Seleccione el broker configurado |
| Tema | camera/commands | Tema al que suscribirse |
| QoS | 0 | Calidad de entrega de mensajes |
| Salida | detección automática | Formato de mensaje |
| Nombre | Oyente de comandos | Identificador del nodo |
4.3 Convenciones de Nombres de Temas
Estructura de tema recomendada:
| Propósito | Ejemplo de Tema | Uso |
|---|---|---|
| Comandos | camera/commands | Recibir comandos de control |
| Solicitudes de estado | camera/status/request | Solicitudes de información de estado |
| Configuración | camera/config | Cambios de configuración |
4.4 Configurar Procesamiento de Mensajes
- Agregar nodo "debug" para monitorear mensajes entrantes
- Conectar: MQTT In → Debug
- Configurar nodo debug para mostrar el mensaje completo
Paso 5: Configurar MQTT Output (Publish)
5.1 Agregar Nodo MQTT Out
- Arrastre el nodo "mqtt out" al lienzo
- Haga doble clic para configurar
- Seleccionar la misma configuración de broker
5.2 Configuración de MQTT Out
Ajustes de Publicación:
| Configuración | Valor de ejemplo | Descripción |
|---|---|---|
| Servidor | Camera MQTT Broker | Mismo broker que la entrada |
| Tema | camera/responses | Tema para respuestas de la cámara |
| QoS | 0 | Calidad de entrega de mensajes |
| Retener | Falso | No almacenar el último mensaje |
| Nombre | Publicador de respuestas | Identificador del nodo |
5.3 Estructura de Temas de Respuesta
Temas de respuesta recomendados:
| Tipo de respuesta | Ejemplo de Tema | Uso |
|---|---|---|
| Actualizaciones de estado | camera/status | Información de estado de la cámara |
| Resultados | camera/results | Resultados de la inspección |
| Reconocimientos | camera/ack | Confirmaciones de comandos |
Paso 6: Crear Flujo de Comunicación Básico
6.1 Construir Flujo de Mensajes Salientes
Crear un flujo para publicar mensajes desde la cámara:
- Agregar nodo "inject" para activar mensajes
- Agregar nodo "function" para formatear mensajes
- Agregar nodo "mqtt out" para publicar
- Conectar: Inject → Function → MQTT Out
6.2 Construir Flujo de Mensajes Entrantes
Crear un flujo separado para recibir mensajes:
- Agregar nodo "mqtt in" para suscribirse
- Agregar nodo "debug" para monitorear
- Conectar: MQTT In → Debug
6.3 Configurar Nodo Inject
- Doble clic en el nodo Inject
- Configurar ajustes:
- Nombre: "Send Test Message"
- Payload: Timestamp
- Topic: (dejar vacío)
- Haz clic en "Done"
6.4 Configurar Nodo Function
Formato simple del mensaje:
// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;
- Doble clic en el nodo Function
- Copie el código anterior en la pestaña "On Message"
- Nombre: "Format Message"
- Haz clic en "Done"
6.5 Configurar MQTT Out Node
- Doble clic en el nodo MQTT Out
- Seleccionar broker: Camera MQTT Broker (configurado anteriormente)
- Topic: (dejar vacío - establecido por el Function Node)
- Nombre: "Publish Status"
- Haz clic en "Done"
6.6 Configurar MQTT In Node
- Doble clic en el nodo MQTT In
- Seleccionar broker: Camera MQTT Broker
- Topic:
camera/commands - Nombre: "Command Listener"
- Haz clic en "Done"
6.7 Configurar Debug Node
- Doble clic en el nodo Debug
- Salida: Complete msg object
- Nombre: "Incoming Messages"
- Haz clic en "Done"
6.8 Estructura final del flujo
Tu flujo completo debería ser:
Saliente: Inject → Function → MQTT Out Entrante: MQTT In → Debug
Paso 7: Desplegar y Probar la Configuración
7.1 Desplegar Flujo
- Haz 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 la publicación MQTT de la cámara:
- Haz clic en el botón inject para enviar un mensaje de prueba
- Verificar que el nodo MQTT Out muestre actividad
- Verificar el panel de debug si tienes mensajes externos
7.3 Pruebas Externas (Opcional)
Prueba con 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 10.250.0.100 -t "camera/commands" -m "test_command"
Resultado esperado: El nodo Debug debe mostrar el mensaje entrante en el panel de depuración de Node-RED.
7.4 Verificar Comunicación
Verificar estos aspectos:
| Prueba | Resultado Esperado | Estado |
|---|---|---|
| Conexión al broker | Estado verde en los nodos MQTT | ☐ |
| Publicación de mensajes | Inject dispara MQTT Out con éxito | ☐ |
| Recepción de mensajes | Debug muestra mensajes externos | ☐ |
| Reconexion | Reconexión automática tras interrupción de 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 | Verificar IP y puerto del broker |
| Fallo de autenticación | Conexión rechazada | Verificar nombre de usuario y contraseña |
| Time-outs de red | Estado de conexión amarillo | Verificar conectividad de red |
| Bloqueo por firewall | Sin intento de conexión | Abrir puertos MQTT |
8.2 Problemas de Mensajes
| Problema | Síntomas | Solución |
|---|---|---|
| No se reciben mensajes | El Debug no muestra nada | Verificar suscripciones a topics |
| Los mensajes no se publican | Clientes externos no ven nada | Verificar topics de publicación |
| Errores de formato de mensaje | Fallos de análisis | Utilizar mensajes de texto simples |
| Mensajes perdidos | Entrega intermitente | Verificar la conexión al broker |
8.3 Performance Issues
| Problema | Síntomas | Solución |
|---|---|---|
| Alta latencia | Retraso en la entrega de mensajes | Verifique el rendimiento del broker |
| Caídas de conexión | Desconexiones frecuentes | Ajuste la configuración de keep-alive |
| Sobrecarga de mensajes | Sobre carga del broker | Implemente la limitación de la tasa de mensajes |
8.4 Debug Techniques
Solución de problemas sistemática:
- Verifique el estado de la conexión del broker en Node-RED
- Monitoree el panel de depuración de Node-RED para el flujo de mensajes
- Use mensajes de texto simples antes de datos complejos
- Verifique la conectividad de red con ping
- Pruebe con temas básicos antes de flujos avanzados
¡Éxito! Su comunicación MQTT está lista
Su sistema de comunicación MQTT ahora puede:
- Conéctese a los brokers MQTT con autenticación adecuada
- Suscríbase a temas para recibir comandos y datos
- Publique mensajes para actualizaciones de estado y respuestas
- Gestionar formatos de mensajes JSON para una comunicación estructurada
- Reconecte automáticamente después de interrupciones de red
- Soporte múltiples niveles de QoS para diferentes prioridades de mensajes
Mantenimiento continuo
Verificaciones periódicas del sistema
- Monitoree el estado de la conexión del broker en Node-RED
- Verifique la entrega de mensajes con mensajes de prueba
- Revise los registros del broker para detectar patrones de error
- Actualice las credenciales de autenticación según sea necesario
Monitorización de rendimiento
- Monitoree la latencia de los mensajes y los tiempos de entrega
- Monitoree el uso de recursos del broker para escalabilidad
- Analice los patrones de uso de temas para optimización
- Revise la configuración de QoS según los requisitos reales
Próximos pasos
Después de configurar la comunicación MQTT básica:
- Implemente flujos de mensajería específicos para su aplicación
- Configure jerarquías de temas para una comunicación organizada
- Agregue medidas de seguridad como cifrado TLS
- Integre con sistemas externos utilizando protocolos MQTT establecidos
- Cree paneles de monitoreo para la salud del sistema
El Integration Builder puede generar flujos completos de comunicación MQTT a partir de una descripción en lenguaje natural. Describa su patrón de mensajería (p. ej., "publish inspection results to an MQTT topic with pass/fail status and confidence scores") y obtenga un flujo de Node-RED listo para producción en segundos.