Arduino - WebSocket
En esta guía, exploraremos qué es WebSocket, por qué es útil para controlar Arduino de forma eficaz y cómo implementar WebSocket con Arduino. A través de un ejemplo práctico, demostraremos cómo construir una aplicación de chat que conecte un navegador web con Arduino, permitiéndote:
- Escribe y envía mensajes desde la ventana de chat en tu navegador web al Arduino. Este método puede modificarse para controlar Arduino.
- Recibe mensajes desde Arduino al instante. Esta configuración puede modificarse para monitorear Arduino en tiempo real.

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
¿Qué es Arduino Websocket?
Puede que te estés preguntando, '¿Qué es WebSocket?' Es bastante sencillo: WebSocket es una tecnología que permite que un navegador web se comunique directamente con un servidor web en tiempo real.
- Sin WebSocket, tendrías que actualizar la página para ver las actualizaciones. Esto no es muy práctico.
- Con WebSocket, la página web permanece conectada de forma continua al servidor. Esto les permite intercambiar información al instante sin necesidad de actualizar la página.
Probablemente encontrarás la tecnología WebSocket con frecuencia en aplicaciones web cotidianas, como juegos en línea, mensajería instantánea y actualizaciones del mercado de valores.
Por qué necesitamos WebSocket para controlar Arduino de forma suave?
Imagina que quieres controlar tu coche teledirigido utilizando una interfaz web en tu teléfono o en tu ordenador. Sin WebSocket, cada vez que quieras cambiar la dirección o la velocidad del coche, tendrías que actualizar la página web. Es como tener que pulsar un botón de recarga cada vez que emites un comando al coche.
Con WebSocket, sin embargo, es como si existiera una conexión continua y directa entre tu teléfono o ordenador y el coche. No necesitas actualizar la página para conducir el coche o cambiar su velocidad. Es como si el coche escuchara constantemente tus órdenes en tiempo real, sin retrasos causados por tener que recargar la página.
En general, WebSocket facilita:
- Enviar datos desde el navegador web a Arduino sin necesidad de recargar la página.
- Enviar datos desde Arduino de vuelta al navegador web sin actualizar la página.
Esto permite una comunicación bidireccional fluida en tiempo real.
Beneficios de WebSocket con Arduino:
- Control en tiempo real: WebSocket permite una comunicación instantánea con el Arduino, asegurando respuestas rápidas a los comandos para una experiencia de usuario fluida.
- Conexión persistente: Mantener un enlace continuo sin actualizar la página de control, creando una línea de comunicación siempre lista para instrucciones inmediatas.
- Eficiencia: Obtenga respuestas rápidas sin necesidad de recargar la página de forma constante, mejorando en general la experiencia del usuario y la eficiencia.
Chat web con Arduino vía WebSocket
El contenido de la página web (HTML, CSS y JavaScript) se almacena por separado en un archivo index.h. Por lo tanto, tendremos dos archivos de código en el IDE de Arduino:
- Un archivo .ino que contiene código de Arduino, que crea un servidor web y un servidor WebSocket.
- Un archivo .h, que contiene el contenido de la página web.
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Uno R4, consulta cómo configurar el entorno para Arduino Uno R4 en Arduino IDE.
- Conecta la placa Arduino a tu PC mediante un cable micro USB
- Abre Arduino IDE en tu PC.
- Selecciona la placa Arduino correcta (Arduino Uno R4 WiFi) y el puerto COM.
- Abre el Administrador de Bibliotecas haciendo clic en el icono Library Manager en la barra de navegación izquierda de Arduino IDE.
- Busca Web Server for Arduino Uno R4 WiFi y localiza la biblioteca Web Server creada por DIYables.
- Haz clic en el botón Install para instalar la biblioteca Web Server.

- En Arduino IDE, crea un nuevo sketch, dale un nombre, por ejemplo, ArduinoGetStarted.com.ino
- Copia el código de abajo y ábrelo con Arduino IDE
- Modifica la información de WiFi (SSID y contraseña) en el código para que coincida con las credenciales de tu propia red.
- Crea el archivo index.h en el IDE de Arduino mediante:
- Haz clic en el botón justo debajo del ícono del monitor serie y elige New Tab, o usa las teclas Ctrl+Shift+N.
- Escriba el nombre del archivo index.h y haga clic en el botón Aceptar
- Copia el código de abajo y pégalo en index.h.
- Ahora tienes el código en dos archivos: ArduinoGetStarted.com.ino y index.h
- Haz clic en el botón Subir en el IDE de Arduino para cargar el código a Arduino.
- Abre el Monitor Serial
- Consulta el resultado en el Monitor Serial.
- Toma nota de la dirección IP que se muestra y introduce esa dirección en la barra de direcciones de un navegador web en tu teléfono inteligente o PC.
- Verás la página web como se muestra a continuación:
- Haz clic en el botón CONECTAR para conectar la página web a Arduino mediante WebSocket.
- Escribe algunas palabras y envíalas a Arduino.
- Verás la respuesta de Arduino.
- Si modificas el contenido HTML en el index.h y no tocas nada en el archivo ArduinoGetStarted.com.ino, al compilar y cargar el código en Arduino, el IDE de Arduino no actualizará el contenido HTML.
- Para hacer que el IDE de Arduino actualice el contenido HTML en este caso, realiza un cambio en el archivo ArduinoGetStarted.com.ino (p. ej. agregar una línea en blanco, añadir un comentario...)




※ Nota:
Explicación del código línea por línea
El código de Arduino anterior contiene una explicación línea por línea. ¡Por favor lea los comentarios del código!
Cómo funciona el sistema
El código de Arduino funciona configurando tanto un servidor web como un servidor WebSocket. Así es como funciona:
- Cuando ingresas la dirección IP del Arduino en un navegador web, este solicita la página web (Interfaz de usuario) desde el Arduino.
- El servidor web del Arduino envía a tu navegador el contenido de la página web (HTML, CSS, JavaScript).
- Tu navegador web muestra la página web.
- Al hacer clic en el botón Conectar de la página, el código JavaScript dentro de la página inicia una conexión WebSocket con el servidor WebSocket en el Arduino.
- Una vez que la conexión WebSocket está activa, si escribes algo y pulsas el botón Enviar, el JavaScript envía tu texto al Arduino a través de la conexión WebSocket en segundo plano.
- Después de recibir tu entrada, el servidor WebSocket en el Arduino envía una respuesta de vuelta a tu página web.
A continuación puedes aprender otros ejemplos de Arduino WebSocket: