EcoLogic Smart-Greenhouse
One of the first projects I contributed to was the Smart Greenhouse. The project’s objective was to develop an autonomous mini indoor greenhouse controlled by an embedded system. The project was a success, but it would not have been possible without the contributions of Marelle Vink and Bas Schoren.
Content
Here is a time-lapse of the system in action, showing footage recorded over five days:
The same results from the time-lapse are summarized in the following image:
Below are some pictures of the final prototype:
System Abstract
This project aimed to create an autonomous greenhouse system to address the challenge of maintaining optimal growing conditions for plants indoors. The system uses sensor data and basic actuator controls with an open-loop algorithm.
Features
- Ground Humidity Monitoring: Measurements at two points using analog sensors.
- Adaptive Growth Light: Controlled lighting that adjusts based on the current environmental light intensity.
- Automatic Irrigation: A water irrigation system that activates when soil humidity drops below a user-defined threshold.
- Temperature Control: Heating via a thermoelectric Peltier module. Cooling is achieved by activating two DC fans with speeds proportional to the temperature difference.
- Water Tank Monitoring: Displays water level from 0% to 100%.
- Local User Interface: An OLED display with a menu for manual control and system reconfiguration.
- Advanced GUI: When connected via USB or Bluetooth, users can access a real-time graphical interface for system monitoring.
- CO2 Monitoring: A CO2 sensor measures the relative CO2 ppm inside the case and triggers ventilation when levels are too low, ensuring optimal growth conditions.
- Custom Hardware: Dedicated hardware simplifies sensor and actuator connections and powers the entire system using a single AC plug.
Technologies Used
- Programming Languages: C with the NXP Freescale register-level HAL library.
- GUI: C++ with the Qt framework.
- Hardware: NXP FRDM-KL25Z (ARM Cortex M0+).
- PlantUML: For flowcharts and diagrams.
- EasyEDA: For PCB design (not recommended for complex designs).
- Logic Analyzer: For debugging and testing digital input/output signals.
Implementation Details
Here are additional technical designs that might be of interest:
Currently, the project’s resources are not in a public repository. In the near future, I plan to archive them.