Base de datos con Arduino

Buenas a todos. Soy nuevo en esto de Arduino y necesito un poco de ayuda de gente que entienda del tema. Soy estudiante y debo hacer un proyecto en el que he optado por utilizar Arduino. Estoy empezando tanto como en el proyecto en si como en Arduino así que comentaré mi idea para ver qué se puede hacer y qué no se puede hacer, o de que forma se puede llevar.
Quiero hacer una base de datos de información recogida por sensores en una sala de máquinas de un barco. Por lo que he investigado, puedo hacerla con MySQL, pero como no entiendo mucho del tema, pregunto si es una buena opción o no. Mi intención es que la base de datos se pueda conectar a internet y se pueda acceder a ella desde cualquier dispositivo, y si fuera posible que se actualizase constantemente, a tiempo real, de manera que pueda monitorizar por así decirlo, los sensores.
Por la parte de los sensores no tengo problema, he trabajado ya con sensores de temperatura y humedad (los cuales usaré), pero necesito ayuda en la parte de la base de datos.
Agradecería cualquier tipo de comentario y ayuda, por mínima que sea, o si me comparten algún tutorial o manual que me ayude con la base de datos, ya que los que he mirado no me han quedado muy claro. Necesito un poco de orientación ahora mismo.
Dispongo de Arduino Mega y Arduino Uno.

Un saludo y gracias por leerme

Si realmente quieres hacer una base de datos, MySQL es una buena opción. Puede ser accedida directamente a través de internet en SQL, y de hecho implementa una buena gestión de usuarios y permisos para las distintas bases de datos, tablas, etc. Sin embargo, no es lo más habitual trabajar directamente con SQL para el uso "diario" (sí se suele utilizar para el diseño de la base de datos o para explotar los datos acumulados). En su lugar se suelen utilizar programas intermedios, como un gestor visual de base de datos, una o varias páginas web, etc., que haga de puente entre los usuarios y la base de datos. Una combinación habitual con MySQL suele ser PHP, para elaborar webs que accedan a bases de datos.

Buenos días, no lo he hecho nunca pero una vez decidas que tipo de conexión tendrá tu arduino (si tiene alimentación de la red y una conexión permanente debe ser muy simple) por ejemplo mediante un módulo ethernet o wifi (no necesitas ni montar un datalogger).

Una vez el arduino lee el valor de los sensores, se conecta a la red y mediante la ejecución de un script (Insert Into... que seguramente se puede embeber en el código C) almacena dichos datos en la BD. Seguramente si echas un rato buscando encontrarás código de ejemplo a montones.

Lo único que necesitas es montar un servidor MySql bien en la nube o bien en un equipo local (creo mejor esto segundo y así puedes hacer pruebas facilmente, aunque también puedes hacer lo primero que es bastante simple). Manuales hay muchos solo tienes que escarbar un poco.

Resumiendo, creo que primero monta el servidor MySql y familiarizate con el (administración, creacion de BD, tablas, insertar registros...etc), una vez hecho esto creo que lo verás mas fácil.

Saludos,

Para hacer uso de la base de datos MySQL, tocará extraer los datos generados por el Arduino a un equipo con la configuración de este servicio; (a riesgo de equivocarme, ya que en Internet hay gente haciendo inventos muy locos; el propio Arduino es incapaz de procesar la base de datos dentro del el). Comúnmente se utiliza un modelo cliente-servidor (Modelo Web), que permite comunicarse con dispositivos IoT (Tecnologías a tu conveniencia como PHP/MySQL, Ruby/PostgreSQL, C#/SQLServer, NodeJS/MongoDB... O cualquier combinación esotérica que se te pueda ocurrir).

Desde mi experiencia personal (NodeJS/MongoDB) te puedo comentar, que el dispositivo Arduino puede ser leído de múltiples maneras (WIFI/Cable de Red/Bluetooth/Puerto Serial... etc.). Una vez la data es transformada y procesada según las necesidades (por ejemplo formato JSON); se comunica el lenguaje con su ODBC correspondiente a la base de datos para almacenar esos datos. Y luego puedes hacer cualquier tipo de función que desees sobre esto (CRUD).

Si lo que se te dificulta es la programación, pero tienes muy bien claro y definido los procesos (modelo de negocio) de tu proyecto, puedes usar herramientas como Sybase PowerDesigner para crear un diagrama de entidad relación y automáticamente te generara el código de programación de la misma (claro si el diagrama esta bien hecho, funcionará) o también la herramienta Bizagi Studio para crear a través de un diagrama BPMN, el respectivo código de un sistema Web bajo JAVA.

Si te van surgiendo dudas en el camino, colócalas por acá y poco a poco las iremos solventando.

Ánimo con el proyecto, saludos!

2 Likes