I’m a big fan of coffee -- and with a ⅔ probability, so are you. The majority of adults in the US drink coffee every day. The world runs on coffee -- and it doesn’t look like we are stopping anytime soon. Coffee is extremely temperature sensitive and best grows in mountainous regions. Current climate change trends have presented a significant challenge to coffee production in recent decades. Optimal growing altitudes are fluctuating due to the unprecedented changes in temperature. This renders current coffee holding land useless for further production and forces farmers to relocate cultivation up/down the mountain. Our world has a growing need for resilient and effective vegetable growth systems -- which motivated this project with two questions: What technologies are available to measure and control the fluctuating variables and grow crops without having to worry about them? What would it take to grow delicate crops in the most hostile of environments, say, the Mojave Desert? How can we use data to automate growth conditions by leveraging edge computing?

What it does

The GrowBox project aims at creating a functional enclosed growing environment for leafy greens without the need for active human management. Plants rely on the balancing of three delicate variables for growth. The energy balance is dependent on light, the water balance on solid and ambient moisture and the assimilates balance dependent on nutrient provision. These three factors are interlinked via the stomata found in the leaves, and tweaking one requires adjustment in the others. I used an Arduino Uno WIFI Rev2 to automate lighting, temperature and humidity management based on DHT11 sensor humidity and temperature data. A photoelectric water level sensor based notification system relies on a buzzer as well as an API endpoint to inform the grower of the need to tend to the plant’s water needs. Watering and nutrient supply continue to be actively managed as of now. Furthermore, the WIFI capabilities allow recorded sensor data to be posted to a remote database in order to generate helpful time-series visualizations by leveraging Prometheus and Grafana.

How we built it

The GrowBox relies on the Arduino Uno WIFI Rev2 and its ATmega 4809 MCU to run the different sensor interfaces as well as enable the WIFI capabilities necessary for data aggregation. I wrote libraries to interface with the ATmega 4809’s USART, the DHT11, the photoelectric water level sensor, the Arduino Relay shield, and a passive buzzer.

Power Management

Two voltage converters are used to step down outlet AC to 24V DC and 24V to 12V. The 24V are used to power the light and fan, the 12V to power the arduino board. The Arduino Relay Shield is used to manage the power access of the 24V peripherals. The cabling relies on barrel jack’s to enable components to be easily exchanged if necessary.

Lighting Unit

The lighting unit consists of 120 LED 65 Watt growing light manufactured by Horticultural Lighting Group (HLG). It’s power supply is managed by a relay in response to temperature levels.

Ventilation Unit

The ventilation unit uses a 24V PC fan as well as a small exhaust for noise reduction. It’s power supply is managed by a relay in response to temperature and humidity.

Water Level Notification

A CQRobot OCean photoelectric water level sensor is used to detect a lack of water in the reservoir containing the permeable grow pot. A buzzer is turned on when the reservoir is empty. Additionally, an API call posts the need for water to the remote data collection server.


An IKEA closet was internally lined with aluminum tape in order to serve as a case for the system.

Challenges we ran into

My biggest challenge for this project was getting the coding environment for the ATmega 4809 up and running. I had to thoroughly dive into the tools involved in compiling the AVR-C code for this specific MCU. This experience made me realize how nuanced the whole process of compiling for a specific chip family is, and that projects like are incredibly valuable in terms of their ease of setup. That being said, if I had a choice I would take the same route again since the challenge taught me some invaluable lessons to generalize beyond the Arduino. This initial and unexpected challenge consumed most of my time up to the milestone demo, but I was fortunately able to catch up further down the line.

Accomplishments that we're proud of

The basil plant used for testing the GrowBox is thriving.

What's next for GrowBox

Automating water and nutrient management!

Built With

Share this project: