Arduino UNO R4 - MySQL
Este tutorial te enseña cómo usar Arduino UNO R4 para recopilar datos de sensores y guardarlos en una base de datos MySQL. En detalle, aprenderemos:
- Cómo programar Arduino UNO R4 para conectarse a una base de datos MySQL
- Cómo programar Arduino UNO R4 para insertar datos en una base de datos MySQL
- Cómo programar Arduino UNO R4 para actualizar datos en una base de datos MySQL
- Cómo programar Arduino UNO R4 para recuperar datos de una base de datos MySQL

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) |
Arduino UNO R4 - MySQL
El Arduino UNO R4 puede conectarse a la base de datos MySQL de dos maneras diferentes:
- Arduino UNO R4 se conecta directamente al servidor MySQL usando un protocolo MySQL (este es el método directo).
- Arduino UNO R4 se conecta al servidor MySQL a través de un protocolo HTTP (este es el método indirecto).
Veamos cuál es mejor.
Arduino UNO R4 interactúa directamente con Servidor MySQL

Esto podría parecer fácil, pero hay varias desventajas:
- Permitir que un usuario de MySQL acceda a la base de datos de forma remota puede ser arriesgado para la seguridad, incluso con privilegios de usuario limitados.
- Procesar datos en Arduino UNO R4 o en un servidor MySQL hace que el código de Arduino y el script de MySQL sean más complejos y consuman de manera intensiva la memoria y la CPU de Arduino.
- El servidor MySQL podría enviar una gran cantidad de datos al Arduino UNO R4, lo que podría hacer que se quede sin memoria.
- Muchas bibliotecas de MySQL no soportan SSL/TLS, lo que significa que los nombres de usuario y las contraseñas se envían sin cifrado, lo que representa otro riesgo de seguridad.
Arduino UNO R4 interactúa indirectamente con el servidor MySQL a través de HTTP/HTTPS
Este método indirecto resuelve todos los problemas que tiene el método directo. Primero veamos cómo funciona este método indirecto antes de explorar cómo evita los problemas del método directo.
Cómo funciona
- Paso 1: Arduino UNO R4 envía una solicitud HTTP al servidor web
- Paso 2: El servidor web ejecuta un script PHP
- Paso 3: El script PHP recibe datos de la solicitud HTTP, los procesa y se comunica con la base de datos MySQL.
- Paso 4: El script PHP procesa los resultados y los envía de vuelta a Arduino UNO R4 a través de la respuesta HTTP

Esta guía también te indicará cómo instalar un servidor web y un servidor MySQL en tu PC. Parece complejo, pero no lo es.
Ahora, exploremos cómo el método indirecto ayuda a evitar las desventajas del método directo.
- Al colocar el servidor MySQL y el servidor HTTP en la misma máquina, puedes configurar la cuenta de usuario de MySQL para que solo acceda desde esa máquina. El nombre de usuario y la contraseña de esta cuenta se guardan en el servidor (mencionado en el paso 3), lo que ayuda a aumentar la seguridad.
- Un script PHP (los pasos 3 y 4) maneja el procesamiento de datos. Esto simplifica las cosas y reduce la complejidad tanto para el Arduino UNO R4 como para los servidores MySQL. Usar PHP para el procesamiento de datos es más fácil que usar el código de Arduino UNO R4 o scripts de MySQL.
- El script PHP procesa los datos y luego envía solo lo necesario al Arduino UNO R4 (paso 4). Esto ayuda a evitar que el Arduino UNO R4 se quede sin memoria.
- La mayoría de las bibliotecas Ethernet/WiFi admiten TLS/SSL, lo que permite las solicitudes HTTPS. Con HTTPS, los datos están cifrados y se transfieren de forma segura a través de Internet.
En el paso 1, puedes usar un nombre de usuario y una contraseña diferentes para conectar el Arduino UNO R4 con el servidor web. Es importante que el nombre de usuario y la contraseña HTTP no sean los mismos que el nombre de usuario y la contraseña de MySQL para mantener la seguridad.
Esta guía mostrará cómo conectar Arduino UNO R4 a MySQL de forma indirecta.
Arduino UNO R4 - MySQL vía HTTP/HTTPS
Necesitamos dar el siguiente paso:
- Instalar el servidor MySQL, el servidor web y PHP en tu computadora
- Activar MySQL y el servidor web
- Crear una cuenta de usuario de MySQL
- Crear una base de datos MySQL
- Crear una tabla de MySQL
- Escribir scripts en PHP
- Programar Arduino UNO R4
Ahora, vamos a hacerlo paso a paso.
Instalar el servidor MySQL, el servidor web y PHP en tu PC
El paquete de XAMPP ya incluye todo. Solo necesitamos instalarlo una vez.
- Descarga XAMPP desde este enlace
- Instálalo.
Después de la instalación, la carpeta llamada C:\xampp\htdocs aparecerá en tu PC. Esta carpeta contendrá el código PHP (explicado más tarde).
Habilitar MySQL y servidor web
- Abrir el panel de control de XAMPL
- Haga clic en el botón Inicio para encender MySQL y el servidor web (Consulte la imagen que se encuentra a continuación)

Crear una cuenta de usuario de MySQL
Configuraremos una cuenta de MySQL que solo pueda acceder a la base de datos de MySQL desde la computadora local.
- Incluso si alguien conoce tu nombre de usuario y tu contraseña, no puede acceder a tu base de datos MySQL de forma remota.
- Dado que PHP y MySQL están en la misma PC, PHP puede usar el nombre de usuario y la contraseña para conectarse a la base de datos MySQL.
Vamos a crear una cuenta de usuario de MySQL con el nombre de usuario ArduinoUnoR4 y la contraseña newbiely.com.
- Abre el Símbolo del sistema en tu computadora. Manténlo abierto hasta que termines el tutorial.
- Escribe este comando en el Símbolo del sistema:
- La configuración predeterminada de MySQL incluye una cuenta root que no tiene contraseña. Se recomienda que cree una contraseña para esta cuenta.
Escribe el siguiente comando en el Símbolo del sistema para establecer la contraseña de la cuenta root: (p. ej. TU-CONTRASEÑA-RAÍZ)
- Ingrese este comando en el Símbolo del sistema:
- Ingrese su contraseña de root y presione Enter.
- Crea una cuenta de usuario de MySQL con el nombre de usuario 'ArduinoUnoR4' y la contraseña 'newbiely.com'. Copia los siguientes comandos y pégalos en el símbolo del sistema:
Ahora has creado con éxito una cuenta de usuario de MySQL. Recuerda el nombre de usuario y la contraseña, ya que los necesitarás para el script de PHP.
Crear una base de datos de MySQL
Crea una base de datos llamada db_arduino introduciendo este comando en la línea de comandos:
Crear una tabla de MySQL
Vamos a crear una tabla llamada tbl_temperature. Copie los siguientes comandos y péguelos en el Símbolo del sistema:
Escribe uno o más archivos PHP
Crea un archivo PHP llamado insert_temp.php en C:\xampp\htdocs
Este código PHP toma la temperatura de la solicitud HTTP y la inserta en la base de datos.
- Averigua la dirección IP de tu ordenador. Busca en Google si no sabes cómo encontrarla.
- Para verificar si el código PHP funciona, abre un navegador web (como Chrome) y ve a este enlace: http://192.168.0.4/insert_temp.php?temperature=25.3. Recuerda usar la dirección IP de tu propio ordenador en lugar de '192.168.0.4'.
- Verás los resultados mostrados en tu navegador.

- Para ver si los datos están guardados en la base de datos, escribe este comando en el Símbolo del sistema:
La temperatura 25.3 se ha guardado en la base de datos. A continuación, necesitamos programar el Arduino UNO R4 para enviar una solicitud HTTP similar a la de tu ordenador.
Escribe código para Arduino UNO R4
Este código de Arduino UNO R4 envía una solicitud HTTP a tu ordenador para añadir una temperatura de 30,5 °C a la base de datos.
Código para Arduino UNO R4 R4 WiFi
Pasos R\u00e1pidos
Siga estas instrucciones paso a paso:
- Si es la primera vez que usa el Arduino UNO R4 WiFi/Minima, consulte el tutorial sobre configurar el entorno para Arduino UNO R4 WiFi/Minima en el IDE de Arduino.
- Conecte la placa Arduino UNO R4 a su ordenador utilizando un cable USB.
- Inicie el IDE de Arduino en su ordenador.
- Seleccione la placa Arduino UNO R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
- Reemplace la dirección IP en el código por la dirección IP de su ordenador.
- Compile y suba el código a la placa Arduino UNO R4.
- Abra el Monitor Serial.
- Vea la salida en el Monitor Serial.
- Para ver si la información está guardada en la base de datos, escribe este comando en el Símbolo del sistema:
La temperatura 30,5 se guarda en la base de datos.
Cómo Arduino UNO R4 inserta, actualiza u obtiene datos en la base de datos MySQL
En el ejemplo, aprendimos cómo agregar datos a la base de datos MySQL. Para actualizar o recuperar datos, el proceso es similar. Simplemente cambie las consultas MySQL en el script PHP. Para obtener más información, visite W3Schools.
Uso Avanzado
Para mejorar la seguridad,
- Puedes modificar el código de Arduino UNO R4 para usar HTTPS en lugar de HTTP. Para saber cómo hacerlo, visita Arduino UNO R4 - HTTPS.
- Puedes autenticarte utilizando un nombre de usuario y una contraseña al conectar el Arduino UNO R4 a un servidor web. Obtén más información en Autenticación básica.
※ Nota:
Para crear un sistema completo con la máxima seguridad, debemos añadir más características (como prevenir la inyección de MySQL, convertir HTTPS en una API REST y utilizar el formato JSON para los datos). Sin embargo, esta guía está destinada a principiantes que están aprendiendo Arduino UNO R4. Lo mantuvimos muy simple. Después de terminar esta guía, podrás aprender temas más avanzados.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.