Saltar al contenido principal

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

  1. Ir a System Settings
  2. Anote la dirección IP de la cámara (p. ej., 192.168.0.100)
  3. 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

ComponenteDirección IPPuertoNotas
Cámara192.168.0.100N/ADebe alcanzar al broker
Broker MQTT192.168.0.2001883Puerto MQTT estándar
Dispositivos Cliente192.168.0.xxxVariableCualquier dispositivo suscriptor

Paso 2: Acceder al Editor de Node-RED

2.1 Navegar a IO Block

  1. Abrir su receta activa en Recipe Editor
  2. Hacer clic en "IO Block" en el menú de migas de pan
  3. 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

  1. Arrastrar el nodo "mqtt in" al lienzo (para la configuración inicial)
  2. Hacer doble clic en el nodo para abrir la configuración
  3. Hacer clic en el icono del lápiz junto al campo Server
  4. 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
NombreCamera MQTT BrokerIdentificador descriptivo
Servidor192.168.0.200Dirección IP del broker MQTT
Puerto1883Puerto MQTT estándar
ProtocoloMQTT V3.1.1Versió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ónDescripción
Nombre de usuarioNombre de usuario del broker MQTT
ContraseñaContraseña del broker MQTT
Usar TLSHabilitar para conexiones seguras (puerto 8883)

3.4 Advanced Settings

Opciones de Conexión:

SettingRecommended ValueDescription
Keep Alive60 secondsIntervalo de latido
Clean SessionTrueIniciar de cero en cada conexión
Auto ConnectTrueReconectar automáticamente

3.5 Save Broker Configuration

  1. Click "Add" to save broker settings
  2. Click "Done" to close node configuration
  3. Broker configuration is now available for all MQTT nodes

Step 4: Configure MQTT Input (Subscribe)

4.1 Set Up MQTT In Node

  1. Select the "mqtt in" node you added
  2. Double-click to configure
  3. Configure subscription settings:

4.2 MQTT In Configuration

Subscription Settings:

SettingExample ValueDescription
ServerCamera MQTT BrokerSelect configured broker
Topiccamera/commandsTopic to subscribe to
QoS0Message delivery quality
Outputauto-detectMessage format
NameCommand ListenerNode identifier

4.3 Topic Naming Conventions

Recommended topic structure:

PurposeTopic ExampleUsage
Commandscamera/commandsReceive control commands
Status requestscamera/status/requestStatus information requests
Configurationcamera/configConfiguration changes

4.4 Configure Message Processing

  1. Add "debug" node to monitor incoming messages
  2. Connect: MQTT In → Debug
  3. Configure debug node to show complete message

Step 5: Configure MQTT Output (Publish)

5.1 Add MQTT Out Node

  1. Drag "mqtt out" node onto canvas
  2. Double-click to configure
  3. Select same broker configuration

5.2 MQTT Out Configuration

Publishing Settings:

SettingExample ValueDescription
ServerCamera MQTT BrokerSame broker as input
Topiccamera/responsesTopic for camera responses
QoS0Message delivery quality
RetainFalseDon't store last message
NameResponse PublisherNode identifier

5.3 Response Topic Structure

Recommended response topics:

Response TypeTopic ExampleUsage
Status updatescamera/statusCamera status information
Resultscamera/resultsInspection results
Acknowledgmentscamera/ackCommand confirmations

Step 6: Create Basic Communication Flow

6.1 Build Outgoing Message Flow

Create a flow to publish messages from the camera:

  1. Add "inject" node for triggering messages
  2. Add "function" node for message formatting
  3. Add "mqtt out" node for publishing
  4. Connect: Inject → Function → MQTT Out

6.2 Build Incoming Message Flow

Create a separate flow to receive messages:

  1. Add "mqtt in" node for subscribing
  2. Add "debug" node for monitoring
  3. Connect: MQTT In → Debug

6.3 Configure Inject Node

  1. Double-click inject node
  2. Configure settings:
    • Name: "Send Test Message"
    • Payload: Timestamp
    • Topic: (leave empty)
  3. 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;

  1. Haga doble clic en el nodo de función
  2. Copie el código anterior en la pestaña "On Message"
  3. Nombre: "Format Message"
  4. Haga clic en "Done"

6.5 Configurar Nodo MQTT Out

  1. Haga doble clic en el nodo MQTT Out
  2. Seleccionar broker: Camera MQTT Broker (configurado anteriormente)
  3. Topic: (deje vacío - lo establece el nodo de función)
  4. Nombre: "Publish Status"
  5. Haga clic en "Done"

6.6 Configurar Nodo MQTT In

  1. Haga doble clic en el nodo MQTT In
  2. Seleccionar broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Nombre: "Command Listener"
  5. Haga clic en "Done"

6.7 Configurar Nodo Debug

  1. Haga doble clic en el nodo debug
  2. Salida: Complete msg object
  3. Nombre: "Incoming Messages"
  4. 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

  1. Haga clic en el botón "Deploy" (esquina superior derecha)
  2. Verificar mensaje de éxito de despliegue
  3. 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:

  1. Haga clic en el botón de inyección para enviar un mensaje de prueba
  2. Verifique que el nodo MQTT Out muestre actividad
  3. 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:

PruebaResultado esperadoEstado
Conexión al brokerEstado verde en los nodos MQTT
Publicación de mensajesLa inyección activa MQTT Out con éxito
Recepción de mensajesDepuración muestra mensajes externos
ReconexionReconexión automática tras interrupción de la red

Paso 8: Solución de problemas de MQTT

8.1 Problemas de conexión

ProblemaSíntomasSolución
No se puede conectar al brokerIndicadores de estado rojosVerifique la IP y el puerto del broker
Fallo de autenticaciónConexión rechazadaVerifique nombre de usuario y contraseña
Timeouts de redEstado de conexión en amarilloVerifique la conectividad de la red
Bloqueo de firewallSin intento de conexiónAbrir puertos MQTT

8.2 Problemas de mensajes

ProblemaSíntomasSolución
No se reciben mensajesLa depuración no muestra nadaVerifique suscripciones al topic
Mensajes no se publicanLos clientes externos no ven nadaVerifique temas de publicación
Errores de formato de mensajeFallos de análisisUse mensajes de texto simples
Pérdida de mensajesEntrega intermitenteVerifique la conexión al broker

8.3 Problemas de Rendimiento

ProblemaSíntomasSolución
Alta latenciaRetraso en la entrega de mensajesVerificar el rendimiento del broker
Caídas de conexiónReconexiones frecuentesAjustar la configuración de keep-alive
Sobrecarga de mensajesSobrecarga del brokerImplementar control de flujo de mensajes

8.4 Técnicas de Depuración

Depuración sistemática:

  1. Verificar el estado de la conexión con el broker en Node-RED
  2. Monitorear el panel de depuración de Node-RED para el flujo de mensajes
  3. Usar mensajes de texto simples antes de datos complejos
  4. Verificar la conectividad de red con ping
  5. 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:

  1. Implementar flujos de mensajería específicos para su aplicación
  2. Configurar jerarquías de temas para una comunicación organizada
  3. Agregar medidas de seguridad como cifrado TLS
  4. Integrar con sistemas externos utilizando protocolos MQTT establecidos
  5. Crear paneles de monitoreo para la salud del sistema

🔗 Ver También