Este trabajo propone el diseño e implementación de un sistema de gestión automática y monitorización de invernaderos. Tiene como objetivo ofrecer una alternativa de alto nivel que permita controlar las condiciones ambientales en los invernaderos e incorporar algoritmos propios. El invernadero estará compuesto por módulos de producción con diferentes exigencias de temperatura, riego e iluminación y se obtendrán los datos en tiempo real mediante sensores. La arquitectura del sistema se basa en un modelo Productor/Consumidor con módulos de producción (o simplemente, módulos), que hacen referencia a cada subgrupo de plantas con condiciones de gestión similares. Cada módulo ejecutará su propio algoritmo programable por el usuario, permitiendo una personalización a medida según las necesidades de cada cultivo. Para dotar al sistema de escalabilidad, se empleará Kubernetes como plataforma de orquestación, mientras que la distribución de mensajes entre instancias se gestionará mediante Apache Kafka. Los datos recogidos por los sensores en cada módulo se enviarán desde un servidor recopilador (Productor) a un servidor de procesamiento (Consumidor). Este último tomará acciones para cada módulo de producción siguiendo la lógica de los algoritmos establecidos por el usuario. Además, se desarrollará una aplicación de monitorización con interfaz de usuario (UI) amigable que permitirá visualizar los estados de los sensores en cada módulo, las últimas decisiones tomadas por el consumidor y ejecutar acciones. La interfaz contará con usuarios y diferentes permisos para acciones como la visualización de métricas de la granja en tiempo real o la ejecución manual de acciones. El sistema diseñado se basa en el uso de microcontroladores y sensores distribuidos a lo largo del invernadero para captar y enviar la información al servidor Productor. Es importante recalcar que este comportamiento ha sido simulado, debido a limitaciones para su implementación física. El código de la simulación se ha integrado dentro del código del Productor.
ABSTRACT
This project illustrates the design and implementation of an automatic management and monitoring system for greenhouses. The aim is to provide a high-level solution to control environmental conditions and enable full customization through user-defined algorithms. The greenhouse will be divided into production modules with specific requirements for temperature, irrigation and lighting, monitored by dedicated sensors. The system follows a Producer/Consumer model with stateful management for each module. Each module will be capable of executing its own user-defined management algorithm, allowing fully customizable configuration based on the specific needs of each crop. To ensure system scalability, Kubernetes [1] will be used as the orchestrating platform, while message distribution between instances will be handled by Apache Kafka [2]. Sensor data from each module will be collected by a gatherer server (Producer) and sent to a processing server (Consumer). The consumer will process the data using the user-defined algorithms and execute actions for each production module. Additionally, a monitoring application with a user-friendly interface (UI) will be developed. This interface will allow users to visualize sensor states, recent decisions made by the system, and perform manual actions. The UI will include users with different roles and permission levels for data visualization, or manual execution of actions. The designed system includes microcontrollers and sensors distributed throughout the greenhouse, whichever produce and send information to the Producer server. It’s important to mention that this part of the system has been simulated because of limitations for its physical implementation. The simulation has been integrated inside the Producer server.
Este trabajo propone el diseño e implementación de un sistema de gestión automática y monitorización de invernaderos. Tiene como objetivo ofrecer una alternativa de alto nivel que permita controlar las condiciones ambientales en los invernaderos e incorporar algoritmos propios. El invernadero estará compuesto por módulos de producción con diferentes exigencias de temperatura, riego e iluminación y se obtendrán los datos en tiempo real mediante sensores. La arquitectura del sistema se basa en un modelo Productor/Consumidor con módulos de producción (o simplemente, módulos), que hacen referencia a cada subgrupo de plantas con condiciones de gestión similares. Cada módulo ejecutará su propio algoritmo programable por el usuario, permitiendo una personalización a medida según las necesidades de cada cultivo. Para dotar al sistema de escalabilidad, se empleará Kubernetes como plataforma de orquestación, mientras que la distribución de mensajes entre instancias se gestionará mediante Apache Kafka. Los datos recogidos por los sensores en cada módulo se enviarán desde un servidor recopilador (Productor) a un servidor de procesamiento (Consumidor). Este último tomará acciones para cada módulo de producción siguiendo la lógica de los algoritmos establecidos por el usuario. Además, se desarrollará una aplicación de monitorización con interfaz de usuario (UI) amigable que permitirá visualizar los estados de los sensores en cada módulo, las últimas decisiones tomadas por el consumidor y ejecutar acciones. La interfaz contará con usuarios y diferentes permisos para acciones como la visualización de métricas de la granja en tiempo real o la ejecución manual de acciones. El sistema diseñado se basa en el uso de microcontroladores y sensores distribuidos a lo largo del invernadero para captar y enviar la información al servidor Productor. Es importante recalcar que este comportamiento ha sido simulado, debido a limitaciones para su implementación física. El código de la simulación se ha integrado dentro del código del Productor.
ABSTRACT
This project illustrates the design and implementation of an automatic management and monitoring system for greenhouses. The aim is to provide a high-level solution to control environmental conditions and enable full customization through user-defined algorithms. The greenhouse will be divided into production modules with specific requirements for temperature, irrigation and lighting, monitored by dedicated sensors. The system follows a Producer/Consumer model with stateful management for each module. Each module will be capable of executing its own user-defined management algorithm, allowing fully customizable configuration based on the specific needs of each crop. To ensure system scalability, Kubernetes [1] will be used as the orchestrating platform, while message distribution between instances will be handled by Apache Kafka [2]. Sensor data from each module will be collected by a gatherer server (Producer) and sent to a processing server (Consumer). The consumer will process the data using the user-defined algorithms and execute actions for each production module. Additionally, a monitoring application with a user-friendly interface (UI) will be developed. This interface will allow users to visualize sensor states, recent decisions made by the system, and perform manual actions. The UI will include users with different roles and permission levels for data visualization, or manual execution of actions. The designed system includes microcontrollers and sensors distributed throughout the greenhouse, whichever produce and send information to the Producer server. It’s important to mention that this part of the system has been simulated because of limitations for its physical implementation. The simulation has been integrated inside the Producer server. Read More


