Arduino - controla el coche a través de la web
Este tutorial le enseña cómo controlar un coche robot de forma inalámbrica utilizando un Arduino desde un navegador web en su teléfono inteligente o PC a través de WiFi. El control se gestiona a través de una interfaz gráfica de usuario web que utiliza la tecnología WebSocket, lo que permite un funcionamiento fluido y dinámico del coche.

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) |
Acerca de un coche RC 2WD y WebSocket
Ahora, ¿por qué elegir WebSocket? Aquí están las razones:
- Sin WebSocket, tendrías que recargar la página cada vez que quieras cambiar la dirección del coche. ¡Esto no es eficiente!
- Con WebSocket, se establece una conexión especial entre la página web y el Arduino. Esto te permite enviar comandos al Arduino en segundo plano, sin necesidad de recargar la página. ¿El resultado? El coche robot responde de forma suave e instantánea. ¿No es bastante impresionante, verdad?
En resumen, WebSocket facilita el control fluido y en tiempo real del robot.
Tenemos tutoriales específicos sobre el coche RC de dos ruedas motrices (2WD) y WebSocket. Cada tutorial contiene información detallada y instrucciones paso a paso sobre la disposición de pines de hardware, principio de funcionamiento, conexión de cableado al Arduino, código de Arduino... Aprende más sobre ellos en los siguientes enlaces:
- Arduino - 2WD RC Car tutorial
- Arduino - WebSocket tutorial
Cómo funciona
El código de Arduino configura 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 envía una solicitud de la página web (Interfaz de usuario) desde el Arduino.
- El servidor web del Arduino responde entregando el contenido de la página web (HTML, CSS, JavaScript).
- Tu navegador web muestra esta página.
- Dentro de la página web, el código JavaScript inicia una conexión WebSocket con el servidor WebSocket en el Arduino.
- Una vez que esta conexión WebSocket está activa, cualquier pulsación o liberación de botones en la página web provoca que el código JavaScript envíe comandos al Arduino a través de esta conexión de forma discreta.
- El servidor WebSocket en el Arduino recibe estos comandos y dirige el coche robot en consecuencia.
A continuación se muestra una tabla con la lista de comandos que la página web envía al Arduino según las acciones del usuario:
| User's Action | Button | Command | Car Action |
|---|---|---|---|
| PRESS | UP | 1 | MOVE FORWARD |
| PRESS | DOWN | 2 | MOVE BACKWARD |
| PRESS | LEFT | 4 | TURN LEFT |
| PRESS | RIGHT | 8 | TURN RIGHT |
| PRESS | STOP | 0 | STOP |
| RELEASE | UP | 0 | STOP |
| RELEASE | DOWN | 0 | STOP |
| RELEASE | LEFT | 0 | STOP |
| RELEASE | RIGHT | 0 | STOP |
| RELEASE | STOP | 0 | STOP |
Diagrama de cableado entre un coche RC de dos ruedas motrices y Arduino

This image is created using Fritzing. Click to enlarge image
Normalmente, necesitaría dos fuentes de alimentación separadas:
- Uno para el motor.
- Otro para la placa Arduino y el módulo L298N (que funciona como el controlador del motor).
Sin embargo, puedes simplificar esta configuración usando solo una fuente de energía: cuatro baterías de 1,5 V para obtener un total de 6 V. Así es como se hace:
- Conecta las baterías al módulo L298N según las instrucciones.
- Retira los dos puentes de los pines ENA y ENB hacia los 5 V del módulo L298N.
- Inserta un puente etiquetado como 5VEN (indicado por un círculo amarillo en el diagrama).
- Conecta el pin de 12 V del módulo L298N al pin Vin del Arduino. Esta conexión alimentará al Arduino directamente desde las baterías.
El coche RC de tracción en dos ruedas (2WD) incluye un interruptor de encendido/apagado, lo que te ofrece la opción de conectar la batería a través del interruptor. Esta configuración te permite encender y apagar la energía del coche según sea necesario. Si prefieres una configuración más simple, puedes optar por omitir por completo el interruptor.
Código de Arduino
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 con código de Arduino que crea un servidor web y un servidor WebSocket, y controla el coche
- 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.
- Realiza el cableado como en la imagen de arriba.
- 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 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 Instalar para instalar la biblioteca Web Server.

- En el IDE de Arduino, crea un nuevo sketch, ponle un nombre, por ejemplo, ArduinoGetStarted.com.ino
- Copia el código de abajo y ábrelo con el IDE de Arduino
- 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 haciendo:
- Ya sea haciendo clic en el botón justo debajo del icono del monitor serie y elige Nueva pestaña, o usa las teclas Ctrl+Shift+N.
- Escribe el nombre del archivo index.h y haz clic en el botón OK
- Copia el código de abajo y pégalo en el 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 al Arduino.
- Abre el Monitor Serial
- Revisa el resultado en el Monitor Serial.
- Tome nota de la dirección IP que se muestra y escriba esta dirección en la barra de direcciones de un navegador web en su teléfono inteligente o PC.
- Verá 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 a través de WebSocket.
- Ahora puedes controlar el coche para girar a la izquierda o a la derecha y avanzar o retroceder a través de la interfaz web.
- Si modifica el contenido HTML en el index.h y no toca nada en el archivo ArduinoGetStarted.com.ino, al compilar y subir el código a Arduino, el IDE de Arduino no actualizará el contenido HTML.
- Para que el IDE de Arduino actualice el contenido HTML en este caso, haga un cambio en el archivo ArduinoGetStarted.com.ino (por ejemplo, añadiendo una línea en blanco, agregando un comentario...)



Para ahorrar la memoria de Arduino, las imágenes de los botones de control no se almacenan en Arduino. En su lugar, se almacenan en Internet, por lo que tu teléfono o tu PC necesitan tener conexión a Internet para cargar las imágenes de la página de control web.
※ 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 en el código!