Un sistema de control remoto para tiras de LEDs NeoPixel (WS2812B) mediante una interfaz web usando WebSocket. El ESP8266 actúa como servidor web y WebSocket, permitiendo intercalar entre 2 colores de LEDs individualmente o en grupo, con persistencia de estado.
- ✅ Control individual o grupal de LEDs
- ✅ Persistencia del estado (los LEDs mantienen su color después de reiniciar)
- ✅ Interfaz web responsive
- ✅ Comunicación en tiempo real con WebSocket
- ✅ Fácil configuración WiFi
- Placa ESP8266 (NodeMCU, Wemos D1 Mini, etc.)
- Tira de LEDs NeoPixel (WS2812B) - (en este ejemplo se usaron 144 LEDs)
- Fuente de alimentación adecuada
- Resistencia de 330-470Ω y capacitor de 1000µF (recomendados para protección)
- Arduino IDE
- Board ESP8266 instalada (usar Boards Manager)
- Bibliotecas necesarias:
- ESP8266WiFi
- WebSockets
- ArduinoJson
- Adafruit NeoPixel
- ESP8266mDNS
- Clonar este repositorio
- Abrir
ESP8266_LED_Controller/Microcontrolador/ESP8266.ino
en Arduino IDE - Modificar las variables en base a lo que uses en el código ESP8266.ino:
const char* ssid = "TU_SSID"; const char* password = "TU_PASSWORD"; #define LED_PIN "TU_PIN" #define LED_COUNT "NUMERO_LEDS" #define JSON_SIZE "TAMAÑO_JSON" (calcular alrededor de 20 bytes por LED, siempre redondear para arriba el resultado)
- Subir el codigo a la placa ESP8266
- Modificar las variables en base a lo que uses en el código:
FrontEnd/src/app.jsx const leds = Array.from({ length: "NUMERO_LEDS" }, (_, i) => i); FrontEnd\src\WebSocketContext.js details: [ "Asegúrese de estar conectado al mismo router que el microcontrolador.", "Red: TP-LINK_FE90", //red que use en el momento "Contraseña: 67992980", //lo mismo "Asegúrese de que el microcontrolador esté encendido.", "Recargue la página para volver a intentar la conexión." ]
- Editor de Código de preferencia
- Node.js
- Navegador web (internet explorer no)
- Un padre nuestro (opcional)
- Descarga Node.js si no lo tenés
- Descargar todas las dependencias necesarias:
- react-scripts
- react-dom
- express
- conecta tu pc al mismo internet que el microcontrolador
- usa npm start o npm run build para empaquetarlo
- opcional en caso de usar el npm run build: usa el inicio.bat como acceso directo para ejecutar el programa, cambiando la direccion en "serve "C:\users\usuario\documents\gestorled\build"" segun donde guardes el build
En base a mi experiencia programandolo es importante tener en cuenta los siguientes puntos:
-
Usar routers de 2.4Ghz de frecuencia, no funciona con aquellos de 5Ghz
-
Por alguna razón con algunas tiras de LED la señal de luz verde era luz roja y viceversa, actualmente no sé por qué ocurría pero si te sucede lo mismo puedes modificar la parte grafica de los botones para no tener que modificar el codigo del microcontrolador y subirlo devuelta en él
-
Originalmente este codigo estaba pensado para ESP32, y si cambian las dependencias a las necesarias para esta, en teoria deberia funcionar, sin embargo en la práctica nunca me funcionó, tal vez a ustedes si prueban les salga
¡PRs y sugerencias son bienvenidas!
📄 Licencia: MIT
Creado por Liam Di Cerbo (GitHub)