Ejemplo de ESP32 WebChat - Tutorial de la Interfaz de Chat Interactiva
Resumen
El ejemplo WebChat demuestra cómo crear una interfaz de chat interactiva entre un navegador web y Arduino. Diseñado para ESP32, plataforma educativa con capacidades de IoT mejoradas e integración fluida con sensores integrados. El ESP32 puede responder de forma inteligente a los mensajes y controlar el hardware según los comandos de chat.

Características
- Chat en tiempo real: mensajería instantánea a través de WebSocket
- Respuestas inteligentes: ESP32 ofrece respuestas contextuales
- Control del LED: control del LED integrado mediante comandos de chat
- Reconocimiento de usuario: ESP32 recuerda tu nombre
- Historial de mensajes: ver el historial de la conversación
- Diseño responsivo: funciona en escritorio y móvil
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Instrucciones de configuración
Pasos rápidos
Sigue estas instrucciones paso a paso:
- Si es la primera vez que usas el ESP32, consulta el tutorial sobre configurar el entorno para ESP32 en el IDE de Arduino.
- Conecta la placa ESP32 a tu computadora usando un cable USB.
- Inicia el IDE de Arduino en tu computadora.
- Selecciona la placa ESP32 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
- Navega hasta el icono Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca "DIYables ESP32 WebApps", luego encuentra la Biblioteca DIYables ESP32 WebApps de DIYables
- Haz clic en el botón Instalar para instalar la biblioteca.

- Se le pedirá instalar algunas otras dependencias de bibliotecas.
- Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.

- En Arduino IDE, ve a Archivo Ejemplos DIYables ESP32 WebApps WebChat como ejemplo, o copie el código anterior y péguelo en el editor del IDE de Arduino
- Configura las credenciales de WiFi en el código actualizando estas líneas:
- Haz clic en el botón Subir en el IDE de Arduino para subir el código al ESP32
- Abre el Monitor Serial
- Revisa el resultado en el Monitor Serial. Se ve como lo que se muestra a continuación.
- Si no ve nada, reinicie la placa ESP32.
- Tome nota de la dirección IP mostrada y introduzca esta dirección en la barra de direcciones de un navegador web en su teléfono inteligente o PC.
- Ejemplo: http://192.168.0.2
- Verá la página de inicio como se muestra en la imagen a continuación.

- Haz clic en el enlace de Chat y verás la interfaz de usuario de la aplicación Web Chat como se muestra a continuación:

- O también puedes acceder a la página directamente introduciendo la dirección IP seguida de /chat. Por ejemplo: http://192.168.0.2/chat
- ¡Comienza a chatear con tu Arduino! Escribe tu nombre cuando se te solicite y prueba comandos como "led on", "hello" o "help" para interactuar con tu Arduino.
Cómo usar
Iniciar una conversación
- Abre la interfaz de chat en tu navegador
- Escribe tu nombre cuando se te solicite
- ¡Comienza a chatear con tu Arduino!
Comandos de chat
El ESP32 reconoce estos comandos especiales:
Control de LED
- "\"LED encendido\" o \"encender LED\" → Enciende el LED integrado
- "\"LED apagado\" o \"apagar LED\" → Apaga el LED integrado
- "\"parpadea\" o \"parpadea el LED\" → Hace parpadear el LED
Comandos de información
- "hello" or "hi" → Saludo amistoso
- "help" → Muestra los comandos disponibles
- "time" → Muestra el tiempo de actividad del ESP32
- "status" → Muestra el estado del sistema
Preguntas
- "¿Cómo estás?" → ESP32 comparte su estado
- "¿Qué puedes hacer?" → Enumera capacidades
- "¿Cómo te llamas?" → ESP32 se presenta a sí mismo
Ejemplo de conversación
Personalización creativa - Construye tu asistente interactivo
¡Transforma este ejemplo de chat básico en algo asombroso! El diseño modular te permite adaptar y ampliar la funcionalidad para crear tu propio asistente interactivo para ESP32.
Estructura del código
Componentes principales
- Servidor de WebApp: Gestiona conexiones HTTP y WebSocket
- Página de chat: Proporciona la interfaz web
- Manejador de mensajes: Procesa los mensajes de chat entrantes
- Generador de respuestas: Crea respuestas inteligentes
Funciones clave
Añadir comandos personalizados
Para agregar nuevos comandos de chat, modifica la función handleChatMessage:
Opciones de personalización
Modificar la personalidad del ESP32
Edita los mensajes de respuesta para cambiar la personalidad de Arduino:
Añadir control de hardware
Extender el control de LED a otros componentes:
Cambiar el tema de la interfaz web
La interfaz de chat se puede personalizar modificando CSS en los archivos de la biblioteca:
- Colores: Editar fondos degradados
- Fuentes: Cambiar las familias de fuentes
- Diseño: Ajustar el espaciado y el tamaño
Solución de problemas
Problemas Comunes
- ESP32 no responde a los mensajes
- Verifica el monitor serial para mensajes de error
- Verifica el estado de la conexión WebSocket
- Actualiza la página del navegador
2. La conexión WiFi falló
- Verifica de nuevo el SSID y la contraseña
- Asegúrate de que la red sea de 2.4 GHz (no 5 GHz)
- Comprueba la intensidad de la señal
3. No se puede acceder a la página de chat
- Verificar que la dirección IP sea correcta
- Verificar si el ESP32 sigue conectado a la red WiFi
- Intentar acceder a la página de inicio primero: http://[IP]/
4. LED no responde a los comandos
- Verifica el cableado (el LED integrado debería funcionar por defecto)
- Verifica que los comandos estén escritos correctamente
- Verifica el Monitor Serial para mensajes de depuración
Consejos de depuración
Habilita el modo de depuración añadiendo esta línea en setup():
Monitoree la salida serial para ver:
- Mensajes entrantes
- Análisis de comandos
- Generación de respuestas
- Acciones de hardware
Características avanzadas
Soporte para múltiples clientes
El chat admite varios usuarios simultáneamente:
- Cada usuario tiene una sesión única
- ESP32 recuerda los nombres de cada usuario
- Difundir mensajes a todos los usuarios
Persistencia de mensajes
Añadir registro de mensajes a la EEPROM:
Integración con sensores
Conectar sensores y hacerlos accesibles a través del chat:
Próximos pasos
Después de dominar el ejemplo de Chat, intenta:
- WebMonitor - Para depuración y desarrollo
- DigitalPins - Para controlar múltiples salidas
- Joystick - Para control direccional
- MultipleWebApps - Combinando todas las funcionalidades
Soporte
Para obtener ayuda adicional:
- Consulta la documentación de la API
- Visita los tutoriales de DIYables: https://esp32io.com/tutorials/diyables-esp32-webapps
- Foros de la comunidad ESP32