Cambio de Recetas vía HTTP con Node-RED
Este tutorial le muestra cómo cambiar recetas de forma remota en su cámara OV20i mediante solicitudes HTTP simples. Construirá un sistema que permita a cualquier dispositivo en su red conmutar entre diferentes configuraciones de inspección al instante, perfecto para líneas de producción con múltiples productos.
Qué Vas a Construir: Un sistema remoto de conmutación de recetas que responde a comandos HTTP desde tabletas, computadoras, PLCs o cualquier dispositivo que pueda enviar solicitudes web.
Tiempo Estimado: 15-20 minutos
Nivel de Habilidad: Principiante
Ejemplo Real: Imagina a un operador escaneando un código de barras en su tableta, y la cámara cambia automáticamente a la receta correcta para ese producto; eso es exactamente lo que estamos construyendo!
Por qué los cambios de receta vía HTTP facilitan la operación
La OV20i facilita el cambio remoto de recetas:
- Cualquier dispositivo puede activar el cambio de receta: tabletas, PLCs, computadoras e incluso teléfonos inteligentes
- Conmutación instantánea: las recetas cambian en menos de un segundo
- Sin configuración compleja: solo unos pocos nodos en Node-RED
- Funciona con sistemas existentes: se integra con lo que ya tiene
Perfecto para: líneas de múltiples productos, paneles de control del operador, sistemas automatizados, o cualquier lugar donde necesite cambios rápidos de receta.
Prerrequisitos
Antes de empezar, asegúrese de tener:
- Cámara OV20i conectada y funcionando
- Al menos 2 recetas creadas y listas para usar
- Acceso a Node-RED (a través de IO Block)
Necesitará los números de ID de receta; estos se encuentran en la barra de direcciones de su navegador al editar las recetas.
Paso 1: Encuentra tus Números de Receta
1.1 Obtener IDs de Receta
- Abre cualquier receta en el Editor de Recetas
- Mira la barra de direcciones de tu navegador
- Encuentra el número después de
/recipe/
(ejemplo:/recipe/15
significa que el ID de Receta es 15) - Anota los IDs para todas las recetas entre las que desees conmutar
¿Por qué estos números? Cada receta tiene un ID único que nunca cambia; esto es lo que la cámara usa internamente.
Paso 2: Abrir Node-RED
2.1 Acceder al Flow Builder
- En cualquier Editor de Recetas, haz clic en "IO Block"
- Haz clic en "Configurar IO"
Ya estás en Node-RED, donde construiremos tu sistema de conmutación de recetas!
2.2 Planifica tu Configuración
Esto es lo que vamos a construir:
Button Click → Format Request → Send to Camera → See Result
¡Fácil! La cámara tiene un servidor web integrado que escucha las solicitudes de cambio de receta.
Paso 3: Construye tu Conmutador de Recetas
3.1 Añade los Nodos Básicos
Arrastra estos 4 nodos a tu lienzo:
- Inject (de la sección Input) - Tu botón "Cambiar a Receta"
- Function (de la sección Function) - Formatea la solicitud correctamente
- HTTP Request (de la sección Network) - Envía el comando a la cámara
- Debug (de la sección Output) - Muestra si funcionó
3.2 Conéctalos
Conéctalos así:
Inject → Function → HTTP Request → Debug
¡Fácil! Ahora configuremos cada uno.
Paso 4: Configura tus Nodos
4.1 Configura tu Botón de Receta
- Haz doble clic en el nodo Inject
- Cambia el nombre a "Cambiar a Receta 15" (usa tu ID de receta real)
- Establece la Carga en "15" (tu número de ID de receta)
- Haz clic en "Hecho"
4.2 Configura el Formateador de Solicitud
- Haz doble clic en el nodo Function
- Nómbralo "Formato de Solicitud"
- Copia este código simple:
// Get recipe number from button
let recipeID = msg.payload;
// Set up the web request
msg.headers = {'Content-Type': 'application/json'};
msg.payload = JSON.stringify({ id: recipeID });
return msg;
- Haz clic en "Hecho"
Qué hace esto: Toma tu número de receta y lo empaqueta de la forma que espera la cámara.
4.3 Configura la Solicitud HTTP
- Haz doble clic en el nodo HTTP Request
- Establece el Método a "POST"
- Establece la URL a
localhost:5001/pipeline/activate
- Nómbralo "Cambiar Receta"
- Haz clic en "Hecho"
Antes de la versión 18.92: use http://[CAMERA_IP]/edge/pipeline/activate
Versión 18.92 y posteriores: use http://localhost:5001/pipeline/activate
4.4 Configura el Monitor de Respuesta
- Haz doble clic en el nodo Debug
- Nómbralo "Resultado del Cambio de Receta"
- Haz clic en "Hecho"
¡Perfecto! Tu conmutador de recetas está listo para probar.
Paso 5: Prueba tu Conmutador de Recetas
5.1 Despliegue y Prueba
- Haz clic en el botón rojo "Desplegar"
- Haz clic en tu botón Inyectar (Cambiar a Receta 15)
- Observa el panel de depuración para la respuesta
5.2 Verifica si Funcionó
Señales de éxito:
- La depuración muestra
"success": true
- La interfaz de la cámara muestra el nuevo nombre de la receta
- No hay mensajes de error en el panel de depuración
Si funcionó: ¡Felicidades! Acaba de cambiar recetas de forma remota.
Si no: Verifique la sección de solución de problemas a continuación.
5.3 Añadir Más Botones de Receta
¿Quieres varias recetas? Simplemente añade más nodos Inject:
- Botón de Receta 10: Carga = "10", Nombre = "Cambiar a Receta 10"
- Botón de Receta 23: Carga = "23", Nombre = "Cambiar a Receta 23"
- Todos conectados al mismo nodo Function
Paso 6: Usar desde Otros Dispositivos
¡Ahora sí que viene la parte divertida! Cualquier dispositivo puede cambiar recetas enviando solicitudes web a su cámara.
6.1 Desde Cualquier Navegador Web
Escribe esto en cualquier navegador de tu red:
http://192.168.0.100:5001/pipeline/activate
Reemplace con la dirección IP de su cámara.
6.2 Desde la Línea de Comandos
Windows/macOS/Linux - cambia a Receta 15:
curl -X POST http://192.168.0.100:5001/pipeline/activate \
-H "Content-Type: application/json" \
-d '{"id": "15"}'
6.3 Desde PLCs y Otros Sistemas
La mayoría de los sistemas modernos pueden enviar solicitudes HTTP:
- PLCs de Siemens: Utilice bloques HTTP de cliente
- Allen-Bradley: Utilice bloques de instrucción HTTP
- Python/C#/Java: Utilice bibliotecas HTTP estándar
- Aplicaciones personalizadas: Cualquier lenguaje de programación funciona
El formato de la solicitud es siempre el mismo:
- Método: POST
- URL:
http://[CAMERA_IP]:5001/pipeline/activate
- Cuerpo:
{"id": "RECIPE_NUMBER"}
Paso 7: Hazlo Aún Mejor
7.1 Añadir Validación de Recetas
¿Quieres evitar cambiar a recetas que no existen? Modifica tu función:
let recipeID = msg.payload;
let validRecipes = ["10", "15", "20"]; // Your actual recipe IDs
if (!validRecipes.includes(recipeID)) {
msg.payload = "Invalid recipe: " + recipeID;
return null; // Don't send request
}
// Normal formatting continues...
7.2 Mapeo de Códigos de Producto
¿Quieres usar nombres de producto en lugar de números? Prueba esto:
let productCodes = {
"BOLT_A": "10",
"BOLT_B": "15",
"SCREW_C": "20"
};
let recipeID = productCodes[msg.payload];
// Continue with formatting...
¡Ahora puedes activar con nombres de producto en lugar de números!
7.3 Procesamiento de Respuestas
¿Quieres mejores mensajes de éxito/errores? Añade otra función después de HTTP Request:
let response = JSON.parse(msg.payload);
if (response.success) {
msg.payload = "✓ Recipe changed successfully!";
} else {
msg.payload = "✗ Recipe change failed: " + response.error;
}
return msg;
Paso 8: Solución rápida de problemas
¿No funciona? Estas son las correcciones más comunes:
Problema | Solución rápida |
---|---|
**"Receta no encontrada" error | Verifique de nuevo el número de ID de receta en la URL |
Sin ninguna respuesta | Verifique la dirección IP de la cámara y la conexión de red |
Mensaje de "Parse error" | Verifique que el código del nodo Function se haya copiado correctamente |
La receta no cambia realmente | Asegúrese de que la receta exista y no esté dañada |
¿Aún atascado? Verifique que su cámara esté en línea y accesible desde Node-RED.
¡Lo lograste!
¡Felicidades! Ahora tienes control remoto de recetas de tu cámara OV20i. Con solo unos pocos clics, has construido un sistema que puede:
- Cambiar recetas al instante desde cualquier dispositivo en su red
- Integrarse con sistemas existentes como PLCs, tabletas o computadoras
- Soportar múltiples recetas con simples clics de botón
- Validar las solicitudes para prevenir errores
- Trabajar con aplicaciones personalizadas usando tecnología web estándar
¿Qué sigue?
Ahora que ya tienes lo básico funcionando, puedes:
Siguientes pasos fáciles
- Agregar más botones de receta para todos tus productos
- Probar desde diferentes dispositivos como tabletas o teléfonos
- Crear mapeos de productos personalizados para una operación más sencilla
Ideas avanzadas
- Construir paneles de operador con botones de selección de receta
- Conectar a escáneres de código de barras para selección automática de recetas
- Integrar con sistemas MES para coordinación de la línea de producción
- Agregar registro para rastrear qué recetas se utilizan y cuándo
Ejemplos del mundo real
Así es como otros utilizan el cambio de receta vía HTTP:
- Embalaje de alimentos: El escáner de código de barras activa el cambio de receta para diferentes tamaños de paquete
- Automotriz: El PLC cambia las recetas en función del tipo de pieza que llega a la línea
- Electrónica: Tableta del operador con botones de receta para diferentes placas de circuito
- Control de Calidad: Cambio automático de receta basado en el programa de producción
Las posibilidades son infinitas; y todo empieza con el simple sistema que acabas de construir!