|
1 | | -# 🚀 Control de LEDs con ESP8266 + WebSocket |
| 1 | +# Controlador LED 🌟 |
2 | 2 |
|
3 | | -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. |
| 3 | +Control de LEDs con ESP8266 + WebSocket |
4 | 4 |
|
5 | | -## 🌟 Características principales |
6 | | -- ✅ Control individual o grupal de LEDs |
7 | | -- ✅ Persistencia del estado (los LEDs mantienen su color después de reiniciar) |
8 | | -- ✅ Interfaz web responsive |
9 | | -- ✅ Comunicación en tiempo real con WebSocket |
10 | | -- ✅ Fácil configuración WiFi |
| 5 | + |
11 | 6 |
|
12 | | -## 📦 Hardware Requerido |
13 | | -- Placa ESP8266 (NodeMCU, Wemos D1 Mini, etc.) |
14 | | -- Tira de LEDs NeoPixel (WS2812B) - (en este ejemplo se usaron 144 LEDs) |
15 | | -- Fuente de alimentación adecuada |
16 | | -- Resistencia de 330-470Ω y capacitor de 1000µF (recomendados para protección) |
| 7 | +--- |
17 | 8 |
|
18 | | -## 🛠️ Configuración del ESP8266 |
| 9 | +## Descripción |
| 10 | + |
| 11 | +El proyecto **Controlador LED** permite controlar tiras de LEDs WS2812B utilizando un módulo ESP8266 y WebSocket. Este sistema ofrece una interfaz web simple y rápida, permitiendo a los usuarios encender, apagar y cambiar colores de los LEDs de manera eficiente. La combinación de ESP8266 y WebSocket proporciona una comunicación en tiempo real, lo que permite una experiencia de usuario fluida. |
| 12 | + |
| 13 | +## Temas |
19 | 14 |
|
20 | | -### 📋 Requisitos |
21 | 15 | - Arduino IDE |
22 | | -- Board ESP8266 instalada (usar Boards Manager) |
23 | | -- Bibliotecas necesarias: |
24 | | - - ESP8266WiFi |
25 | | - - WebSockets |
26 | | - - ArduinoJson |
27 | | - - Adafruit NeoPixel |
28 | | - - ESP8266mDNS |
29 | | - |
30 | | -### ⚙️ Pasos de instalación |
31 | | -1. Clonar este repositorio |
32 | | -2. Abrir `ESP8266_LED_Controller/Microcontrolador/ESP8266.ino` en Arduino IDE |
33 | | -3. Modificar las variables en base a lo que uses en el código ESP8266.ino: |
34 | | - ```cpp |
35 | | - const char* ssid = "TU_SSID"; |
36 | | - const char* password = "TU_PASSWORD"; |
37 | | - #define LED_PIN "TU_PIN" |
38 | | - #define LED_COUNT "NUMERO_LEDS" |
39 | | - #define JSON_SIZE "TAMAÑO_JSON" (calcular alrededor de 20 bytes por LED, siempre redondear para arriba el resultado) |
40 | | -4. Subir el codigo a la placa ESP8266 |
41 | | -5. Modificar las variables en base a lo que uses en el código: |
42 | | - ```cpp |
43 | | - FrontEnd/src/app.jsx |
44 | | - const leds = Array.from({ length: "NUMERO_LEDS" }, (_, i) => i); |
45 | | - FrontEnd\src\WebSocketContext.js |
46 | | - details: [ |
47 | | - "Asegúrese de estar conectado al mismo router que el microcontrolador.", |
48 | | - "Red: TP-LINK_FE90", //red que use en el momento |
49 | | - "Contraseña: 67992980", //lo mismo |
50 | | - "Asegúrese de que el microcontrolador esté encendido.", |
51 | | - "Recargue la página para volver a intentar la conexión." |
52 | | - ] |
53 | | - |
54 | | -## 🛠️ Configuración del archivo del FrontEnd |
55 | | - |
56 | | -### 📋 Requisitos |
57 | | -- Editor de Código de preferencia |
58 | | -- Node.js |
59 | | -- Navegador web (internet explorer no) |
60 | | -- Un padre nuestro (opcional) |
61 | | - |
62 | | -### ⚙️ Pasos de instalación |
63 | | -1. Descarga Node.js si no lo tenés |
64 | | -2. Descargar todas las dependencias necesarias: |
65 | | - - react-scripts |
66 | | - - react-dom |
67 | | - - express |
68 | | -3. conecta tu pc al mismo internet que el microcontrolador |
69 | | -4. usa npm start o npm run build para empaquetarlo |
70 | | -5. 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 |
71 | | - |
72 | | -## 🚩 Cosas a tener en cuenta |
73 | | -En base a mi experiencia programandolo es importante tener en cuenta los siguientes puntos: |
74 | | - |
75 | | - - Usar routers de 2.4Ghz de frecuencia, no funciona con aquellos de 5Ghz |
76 | | - |
77 | | - - 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 |
78 | | - |
79 | | - - 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 |
80 | | - |
81 | | -### 🤝 Contribuciones |
82 | | - |
83 | | -¡PRs y sugerencias son bienvenidas! |
84 | | - |
85 | | -📄 **Licencia**: [MIT](LICENSE.md) |
86 | | - |
87 | | -Creado por Liam Di Cerbo ([GitHub](https://github.com/Ezeliam)) |
| 16 | +- ESP8266 |
| 17 | +- JavaScript |
| 18 | +- JSON |
| 19 | +- LED |
| 20 | +- Controlador de LEDs |
| 21 | +- Leds |
| 22 | +- ReactJS |
| 23 | +- SPIFFS |
| 24 | +- WebSocket |
| 25 | +- WS2812B |
| 26 | + |
| 27 | +## Instalación |
| 28 | + |
| 29 | +Para comenzar, descarga el último archivo desde la sección de [Releases](https://github.com/WaylenGithub/controlador_LED/releases). Asegúrate de seguir los pasos a continuación: |
| 30 | + |
| 31 | +1. **Clona el repositorio**: |
| 32 | + ```bash |
| 33 | + git clone https://github.com/WaylenGithub/controlador_LED.git |
| 34 | + cd controlador_LED |
| 35 | + ``` |
| 36 | + |
| 37 | +2. **Abre el proyecto en Arduino IDE**: |
| 38 | + - Asegúrate de tener instalada la biblioteca ESP8266. |
| 39 | + - Abre el archivo `controlador_LED.ino`. |
| 40 | + |
| 41 | +3. **Configura tu red Wi-Fi**: |
| 42 | + - Modifica las líneas correspondientes para ingresar tu SSID y contraseña. |
| 43 | + |
| 44 | +4. **Carga el código**: |
| 45 | + - Selecciona tu placa ESP8266 en el menú de herramientas. |
| 46 | + - Carga el código en tu dispositivo. |
| 47 | + |
| 48 | +5. **Accede a la interfaz web**: |
| 49 | + - Una vez cargado, abre un navegador y dirígete a la dirección IP del ESP8266. |
| 50 | + - Utiliza la interfaz para controlar tus LEDs. |
| 51 | + |
| 52 | +## Uso |
| 53 | + |
| 54 | +### Interfaz Web |
| 55 | + |
| 56 | +La interfaz es intuitiva. Desde la página principal, puedes: |
| 57 | + |
| 58 | +- Encender y apagar los LEDs. |
| 59 | +- Cambiar colores. |
| 60 | +- Ajustar la intensidad. |
| 61 | + |
| 62 | +### WebSocket |
| 63 | + |
| 64 | +El uso de WebSocket permite una comunicación bidireccional. Esto significa que cualquier cambio realizado en la interfaz se refleja instantáneamente en el hardware y viceversa. |
| 65 | + |
| 66 | +## Ejemplo de Código |
| 67 | + |
| 68 | +Aquí tienes un pequeño ejemplo de cómo se configura el WebSocket: |
| 69 | + |
| 70 | +```cpp |
| 71 | +#include <ESP8266WiFi.h> |
| 72 | +#include <WebSocketsServer.h> |
| 73 | + |
| 74 | +WebSocketsServer webSocket = WebSocketsServer(81); |
| 75 | + |
| 76 | +void setup() { |
| 77 | + Serial.begin(115200); |
| 78 | + WiFi.begin("SSID", "PASSWORD"); |
| 79 | + webSocket.begin(); |
| 80 | + webSocket.onEvent(webSocketEvent); |
| 81 | +} |
| 82 | + |
| 83 | +void loop() { |
| 84 | + webSocket.loop(); |
| 85 | +} |
| 86 | + |
| 87 | +void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) { |
| 88 | + // Manejo de eventos |
| 89 | +} |
| 90 | +``` |
| 91 | +
|
| 92 | +## Recursos Adicionales |
| 93 | +
|
| 94 | +- [Documentación de ESP8266](https://arduino-esp8266.readthedocs.io/en/latest/) |
| 95 | +- [WebSocket en JavaScript](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) |
| 96 | +
|
| 97 | +## Contribuciones |
| 98 | +
|
| 99 | +Las contribuciones son bienvenidas. Si deseas mejorar el proyecto, sigue estos pasos: |
| 100 | +
|
| 101 | +1. Haz un fork del repositorio. |
| 102 | +2. Crea una nueva rama (`git checkout -b feature/nueva-caracteristica`). |
| 103 | +3. Realiza tus cambios y asegúrate de que todo funcione. |
| 104 | +4. Envía un pull request. |
| 105 | +
|
| 106 | +## Licencia |
| 107 | +
|
| 108 | +Este proyecto está bajo la licencia MIT. Consulta el archivo `LICENSE` para más detalles. |
| 109 | +
|
| 110 | +## Contacto |
| 111 | +
|
| 112 | +Si tienes preguntas o sugerencias, no dudes en abrir un problema en GitHub o contactarme directamente. |
| 113 | +
|
| 114 | +--- |
88 | 115 |
|
| 116 | +Para más información, visita la sección de [Releases](https://github.com/WaylenGithub/controlador_LED/releases) y descubre las últimas versiones y actualizaciones. ¡Disfruta controlando tus LEDs! |
0 commit comments