Hola,
Es mi primera intervención, y realmente no sé si se trata del apartado más adecuado para introducir el proyecto y lanzar la duda.
Descubrí hace poco Arduino y Raspberry, a raíz de un artículo técnico relacionado con el ahorro de agua de riego controlando la humedad, que usaba Arduino y Raspberry, y desde entonces, he estado leyendo y haciendo algunas compras para empezar a probar "cositas".
Mi perfil está más relacionado con la gestión de datos y algo menos con la programación, que con la electrónica.
Al grano:
Tengo dos placas Arduino, con módulo Ethernet (el siguiente paso será enlazarlas con Wifi), que tienen un reloj, un sensor DHT11, y una fotorresistencia. De modo que me ofrecen temperatura, humedad y la cantidad de luz, marcadas con la fecha y hora del reloj.
También están programadas para que manden una serie de alarmas (arranque de la placa, recibida sincronización de reloj, cuando pasa una hora desde el arranque de la placa, ...
El objetivo es almacenar los datos en una base de datos mysql (está en una Raspberry, con servidor web Apache).
Pues bien, actualmente, las solicitudes de datos a los Arduino las hago mediante comandos Python que como argumentos de línea llevan la dirección IP de la placa y la acción deseada. Algo como lo siguiente.
/usr/bin/python3 /var/www/html/cgi-bin/tcpip.py 192.168.2.21 R
(R si hay que leer las señales, C para hacer un chequeo de la placa, S para sincronizar el reloj)
Estos comandos se lanzan desde un página PHP, que a la vez es la que trata los resultados que el propio comando devuelve, recibidos a su vez del Arduino, y los incorpora a base de datos.
(una cadena de medidas, por ejemplo "VALUESA02016-01-24 18:26:0422.00A12016-01-24 18:26:0458A22016-01-24 18:26:0462.00END"
La configuración de las señales A0, A1, A2, de cada placa está definida en una tabla de base de datos.
Estos comandos se pueden lanzar desde una página que se refresca cada 30 segundos. Es siempre el comando el que interroga a la placa, y se encarga después de cerrar la conexión. Son consultas discretas, y sólo se recibe una línea con la información (salvo para la sincronización del reloj, en las que he establecido un pequeño diálogo, aunque tengo que revisarlo aún).
Mi consulta sería:
¿Pensaís que puede haber algún sistema más eficaz o elegante, de interrogar al Arduino y almacenar luego la info en base de datos?
Siempre tomando como base que el objetivo sería tener algo que pudiera funcionar 24 horas de forma estable.
Estoy abierto a todo tipo de ideas y sugerencias. Ya no pido detalle del desarollo, para eso están las cabezas, las consultas en Internet y demás. más me interesan las estrategias para abordar el problema.
Gracias.