Después de haber presentado la definición y objetivos del proyecto Smart Green Adapt, así como su modelo de datos, en la presente entrada detallamos la arquitectura que dará soporte al sistema.
El proyecto Smart Green Adapt busca aportar mejoras basadas en el uso de las TIC al sector agrícola, y más en particular, en el ámbito de las explotaciones en invernaderos. El principal objetivo del proyecto es facilitar a los agricultores la automatización de sus invernaderos, permitiéndoles monitorizar y controlar de forma remota (a través de una aplicación móvil) el estado de sus cultivos. Smart Green Adapt no sólo facilitará a los agricultores el desarrollo de sus tareas diarias sino que, además, les permitirá obtener un mayor rendimiento de sus explotaciones con un menor coste de producción.
El Sistema Smart Green Adapt permitirá a los agricultores visualizar mediante la aplicación móvil la información de los sensores (por ejemplo, sensores de temperatura, humedad, calidad del aire, etc.) de sus invernaderos para conocer el estado en el que se encuentran en tiempo real. También, mediante la aplicación, podrá manipular los actuadores (por ejemplo, servos para abrir o cerrar las ventanas, apertura o cierre de riego, etc.) que les permitirán actuar sobre el propio invernadero. La información del invernadero se guarda en una base de datos que va actualizando los sensores, gracias a un script que manda la orden, y los actuadores, según los modifique el usuario.
Una vez definido el modelo de datos en artículos anteriores, hemos adquirido los conocimientos necesarios para entender con qué datos tratamos y qué queremos hacer con ellos, por ello, en esta nueva entrada, se explica la arquitectura de nuestro sistema, así cómo las relaciones entre cada componente.
A continuación, mostramos una imagen de la estructura que sigue nuestro proyecto:
Para poder explicar correctamente cada componente, iremos en orden:
- Sensores. Los sensores se encargan de captar la temperatura, calidad del aire, humedad y la luminosidad de los invernaderos. Todos estos datos se envían a la API, parte más importante de nuestro sistema, para que puedan guardarse en la base de datos y puedan llegar hasta los usuarios.
- Actuadores. Los actuadores son nuestras ventanas, calefacciones, riego y aspersores. Utilizamos los actuadores para poder tener los invernaderos con las condiciones clave para nuestros cultivos. Esta información se manda a la API para guardarla en la base de datos y poder enviarla a los dispositivos móviles de los usuarios, para que este pueda realizar los cambios que quiera en los actuadores de su invernadero.
- Base de datos. Componente en el que almacenamos toda la información sobre los actuadores, sensores, notificaciones, etc. Está creada con MySQL, y sigue el modelo explicado en el artículo anterior.
- API. Componente clave de nuestro sistema. Es la parte que une todos los componentes, la columna del sistema. Ha sido creado para realizar consultas CRUD, es decir, creación, lectura, actualización y borrado (put, get, post y delete, respectivamente), de cada dato del sistema mencionado en la entrada anterior. A continuación, se explica donde se hace la petición para cada dato:
- UserInfo: necesario en el inicio de sesión para comprobar (get) de qué invernaderos es dueño, en el registro de nuevo usuario (put), eliminación del perfil (delete) o si es Administrador, para gestionar todos los invernaderos del sistema (put, get, post y delete) en los invernaderos.
- GreenHouse: necesario para mostrar el listado de invernaderos y a continuación, la información de este.
- AirQuality, Luminosity, Humidity and Temperature: necesarios para mostrar la información de los sensores del invernadero. Y también, la creación (put) de estos cuando se inserta un nuevo invernadero.
- Windows, Irrigation, Sprinklers and Heating: necesarios para mostrar la información de los actuadores del invernadero. Y también, la creación (put) de estos cuando se inserta un nuevo invernadero.
- Weather: necesario para mostrar (get) el tiempo que hace en ese momento
- Notificaciones: necesario para mostrar (get) las notificaciones de cada invernadero. Y en la creación (put) de nuevas notificaciones cuando hay alguna alerta o error.
- API Weather. API pública gratuita a la que realizamos consultas de lectura para poder consultar los datos meteorológicos del lugar en el que se encuentran los invernaderos para poder así el usuario pueda comparar los datos con los del interior de su invernadero.
- Script. Programa, que cada media hora, obtiene, a través de la API, los datos de los sensores y comprueba que están dentro de los rangos establecidos. Si no es el caso, mediante la API, añadirá a la Base de Datos una nueva notificación.
- Aplicación móvil. Con la aplicación móvil, como ya hemos dicho, podremos consultar los datos de los sensores del invernadero y compararlos con los datos obtenidos de la API Weather. Aparte, recibiremos notificaciones que nos indicará si las condiciones de nuestros invernaderos han empeorado, como la subida de la temperatura y cómo de grave es ese empeoramiento. También podremos cambiar los estados de los actuadores, como abrir una ventana o encender el riego, para poder solucionar cualquier tipo de problema.
La arquitectura nos ha permitido unir todos los componentes y hemos podido visualizar el correcto funcionamiento del sistema.
Para más información, pueden seguir la cuenta de Smart Green Adapt de Twitter (@GreenadaptU) o pueden contactar con cualquiera de los miembros del equipo que desarrolla el proyecto:
- Gloria Díaz González (gdiazw@alumnos.unex.es).
- Mª Victoria Morales Millanes (mmoraleso@alumnos.unex.es).
- José Enrique Moguel Márquez (enrique@unex.es).