Interfaz Web para la adquisición y análisis de datos basados en arduinos
Enviado por ROBERTO ITZ • 29 de Noviembre de 2015 • Apuntes • 2.523 Palabras (11 Páginas) • 160 Visitas
Título del proyecto | Interfaz Web para la adquisición y análisis de datos basados en arduinos |
- DESCRIPCIÓN DEL PROYECTO
1.1 Resumen
La necesidad de adquirir datos de procesos de censado y analizarlos para determinar posibles comportamientos nos lleva a este proyecto, donde la intención es adquirir dicha información de arduinos y desplegarlo e una interfaz.
Para esto se pretende usar arduinos que realicen el censado de información de “X” entorno, estos arduinos entregaran la información a una aplicación vía Ethernet, esta aplicación a su vez la almacenara en una base de datos.
Una vez en la base de datos una interfaz web será capaz de tomarla y analizarla para entregar información al usuario final.
- Descripción del Proyecto
En estos tiempos de altas tecnologías y procesos automatizados se denota la necesidad de llevar a cabo censados constantes de diferentes variables, ya sea en una línea de producción al monitorear el estado de una etapa en específico, censar la temperatura y variables ambientales en un invernadero, censar presencia y variables de iluminación y comodidad en un hogar u oficina inteligente. Esta información representa también datos estadísticos acerca de tendencias que puedan presentar estas variables censadas, lo cual visto estadística e históricamente puede ser una herramienta de predicción de acciones y/o control de fallas.
[pic 1]
Regularmente al trabajar con residentes existe la constante de él censado manual, donde un operario o auxiliar físicamente se presenta cada cierto intervalo de tiempo a anotar en un formato predefinido los datos para posteriormente realizar una captura en una hoja de cálculo y generar las gráficas estadísticas pertinentes.
En caso de que un superior que se encuentre fuera del centro, empresa o institución y requiera información del día acerca de su entorno de investigación, línea de proceso, niveles de entorno, etc; por el hecho de ser manuales tiene que mover personal y generar los procesos de colecta de información, captura y procesado, para recibir los datos por algún medio (comúnmente correo electrónico) después de algunos minutos o quizás hasta horas.
Así también la información almacenada en archivos (comúnmente hojas de cálculos) puede tender a sufrir daños humanos, ya sea que hayan sido suprimidos accidentalmente, el equipo se encuentre contaminado, sufra de un apagado forzado, etc.
Y el medio de envió de esta información depende de servicios prestados por terceros.
En este proyecto se propone un medio de amortiguar tiempos y posibles fallas con un sistema integral por capas el cual sea basado principalmente en una interfaz web que pueda adquirir datos de arduinos y guardarlos en una base de datos, a su vez procesarlos y presentarlos en un navegador, esta información se debe presentar en un formato manipulable, legible e importable a otros formatos de uso común como PDF (acrobat reader) o XLS (Microsoft Excel).
En el diagrama anterior se propone una arquitectura de 3 capas bilaterales:
Arduinos
Tenemos arduinos censando un entorno variable (con un numero de sensores variable y un tipo no establecido) conectándose por una red Ethernet basándose en una tarjeta acoplada al mismo arduino (esta tarjeta se define como shield) la cual posee la característica de poder ejecutar un pequeño servidor web al cual se le puede programar un lenguaje XML para la clasificación de los sensores y desplegado de información en un navegador a través de su dirección IP y su puerto establecido.
Servidor de aplicaciones
Este servidor se utilizara para la adquisición de los datos de los arduinos, por medio de un módulo escrito en perl donde nos podemos aprovechar del método GET y del Tratamiento de Cadenas para organizar la información de cada arduino y generar los datos los cuales posteriormente se almacenaran en un servidor de base de datos.
Así mismo, un pequeño modulo CRON programado para ejecutar esta aplicación cada determinado tiempo.
Servidor de Base de Datos
En él se almacenara toda la información organizada por número de arduino, fecha, y hora. De él se obtendrá la información estadística.
Servidor Web
Por el otro lado tenemos los clientes conectados por medio de la nube a un servidor web el cual hace solicitudes a un servidor de bases de datos, el mismo servidor donde se almacenaron los datos previamente.
Esto se realizara por medio de una aplicación Web la cual constara de 3 funciones principales:
- Módulo de Visualización de Datos Estadísticos: en este módulo se podrá apreciar los datos históricos contenidos en la base de datos organizando esto por número de arduino y fecha.
- Módulo de recolección forzada de información: este módulo debe forzar al módulo contenido en el servidor de aplicaciones a vaciar la información de los arduinos a petición.
- Módulo de Generación de Reportes: este módulo deberá generar reportes hacía ya sea Excel o Acrobat Reader del siguiente tipo:
- General diario
- General en intervalo de tiempo
- Por Arduino Diario
- Por Arduino en intervalo de tiempo.
Cabe denotar que en este punto se han definido las capas, los niveles quedaran para las siguientes etapas. Inclusive cantidad y tipo de censado de los arduinos, manejador de base de datos, servidor de aplicaciones, servidor web y aplicación web, hasta este punto aún son cajas negras llenas de interrogantes y posibilidades.
- Marco teórico
Arduino
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.2 3
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.4 Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.4
...