Sistema Pick-to-Light WiFi con Arduino MKR1000 - Proyecto 2
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino MKR1000 | 1 |
| LED (genérico) | 2 |
| Cables de conexión (genéricos) | 1 |
| Pulsador 12mm SparkFun | 1 |
| Resistencia 10 kΩ | 1 |
| Resistencia 330 Ω | 4 |
| Protoboard (genérica) | 1 |
| Cable USB-A a Micro-USB | 1 |
| Transistor NPN de propósito general | 1 |
Descripción del proyecto
Este es el segundo proyecto de una serie de sistemas pick-to-light (luz para recolección). El primero usaba comunicación serie por cable; este evoluciona a WiFi usando UDP (User Datagram Protocol) y añade números de secuencia para trazabilidad. Si ocurre un error, el sistema sabe exactamente hasta dónde ha llegado el operario.
Arquitectura
- Arduino MKR1000: Controla LEDs y botón, se conecta a WiFi y escucha paquetes UDP
- Script Python (PC): Lee archivo CSV con secuencia, envía órdenes UDP, verifica confirmaciones
- Archivo CSV: Contiene número de secuencia (4 dígitos) y número de contenedor (Bin1/Bin2)
Pasos de implementación
1. Requisitos previos
- Python 3.6+ instalado
- Arduino IDE (versión escritorio o web)
- Librería
WiFi101para Arduino IDE
2. Configuración del archivo de secuencia
Crear archivo sequence1.txt en el directorio de trabajo de Python con formato CSV:
0001,Bin1 0002,Bin2 0003,Bin1 0004,Bin2 ...
3. Script Python
El script abre el CSV, envía cada línea por UDP al Arduino, espera confirmación (número de secuencia), y verifica que coincida. Si falla, detiene la ejecución indicando el número de secuencia erróneo.
4. Sketch Arduino
El MKR1000 se conecta a WiFi, inicia servidor UDP en puerto 2390, recibe secuencia+bin, enciende el LED correspondiente, espera pulsación del botón, apaga LED y devuelve el número de secuencia por UDP. Usa archivo arduino_secrets.h para credenciales WiFi.
5. Cableado
Se usa un transistor NPN para alimentar los LEDs porque el WiFi del MKR1000 causa caída de tensión en pines 8 y 9. Incluye resistencias de base y límite de corriente para LEDs.
Código
Sketch Arduino (C++)
Incluye conexión WiFi, parseo de paquetes UDP, control de LEDs y botón, y envío de confirmación.
Script Python
Usa librerías csv, socket, time, sys. Socket UDP, lectura línea a línea, verificación de secuencia.
Archivo de secuencia
Texto plano con 13 líneas de ejemplo (0001-0013 alternando Bin1/Bin2).
Esquemáticos
Archivo Fritzing picktolightudp_OCbpNt9XPK.fzz con conexiones completas.
Proceso de manufactura
- Faroles de Gas: Evolución, Diseño y Fabricación Moderna
- Puntero Láser: Diseño, Fabricación y Resumen de Seguridad
- Linterna: de su invención a la innovación moderna
- El Caleidoscopio: De la Ciencia de Brewster al Diseño Moderno
- Láseres de Semiconductor: Generación Precisa de Luz para Tecnología Moderna
- El arte y la ciencia de los procesos fotográficos: del daguerrotipo al film moderno
- Semáforos: Ingeniería, Historia e Innovaciones Futuras
- Del Fuego al Filamento: Evolución y Producción de la Bombilla Moderna
- Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
- Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
- Púa de Velocidad y Pedal Stomp para Guitarra DIY – Construye tu Propia Púa Motorizada Impresa en 3D