I built this project because I wanted a greenhouse that could operate with the same level of autonomy and reliability as a 3D printer: load it, configure it, and let it run.

The goal was to design a modular, fully automated greenhouse capable of monitoring and controlling every major environmental variable: temperature, humidity, airflow, lighting, and watering.

More than just a single enclosure, I wanted a system architecture that could scale. The electronics are designed so that multiple independent greenhouse “zones” can be controlled from a shared central controller. That means I could run separate climates for different plant species—or even combine multiple modules into a larger enclosure for plants that need more vertical space.

This project combines several areas I enjoy working in:

  • Embedded systems design

  • Custom electronics and PCB development

  • Environmental sensing and control

  • Full-stack software development

  • System architecture and automation

All source schematics, code, and CAD models can be found on the GitHub page.

Overall System Design

The greenhouse is designed as a distributed control system.

A main controller handles high-level logic, scheduling, and future app connectivity, while one or more box controllers manage real-time environmental control for individual greenhouse zones.

Each greenhouse can operate independently, with its own:

  • Grow lights

  • Watering system

  • Heating

  • Cooling fan

  • Humidification

  • Temperature and humidity sensing

This modular architecture allows the system to scale naturally:

  • Single greenhouse setup for standard apartment growing

  • Multiple independent enclosures with separate climates

  • Combined larger enclosures using multiple box controllers

That flexibility was important to me. I wanted the ability to experiment with different plant types and eventually support larger or more demanding species that require long-term environmental stability.

Electronics Subsystem

The electronics are divided into two custom control boards.

Main Controller

The main controller acts as the central coordinator for the system.

Responsibilities include:

  • Global scheduling

  • High-level automation logic

  • Greenhouse configuration management

  • Communication with box controllers

  • Remote interface integration (future)

  • Grow light switching

The main controller distributes power and communicates with each box controller over RS485, allowing reliable expansion to multiple greenhouse modules.

Box Controller

Each greenhouse has a dedicated box controller responsible for local environmental control.

Responsibilities include:

  • Sensor polling

  • Temperature regulation

  • Humidity regulation

  • Watering control

  • Fan control

  • Safety monitoring

By separating local control from system-level logic, the greenhouse can continue operating safely even if communication with the main controller is interrupted.

Sensors and Environmental Monitoring

Current sensing includes:

  • Air temperature

  • Relative humidity

Environmental Control Hardware

Each greenhouse can independently control the following systems:

Lighting

Dedicated grow lights provide consistent photoperiod control and remove dependence on apartment lighting conditions.

Watering

Automated irrigation supports scheduled or condition-based watering.

This is especially useful for maintaining consistent moisture without daily intervention.

Heating and Cooling

Temperature regulation is handled through a combination of:

  • Heating element

  • Cooling fan

This allows the enclosure to maintain stable temperatures regardless of room conditions.

Humidity Control

A misting system raises humidity when needed, enabling growth of plants that normally require tropical environments.

This is one of the most important capabilities of the system, especially in Tucson’s extremely dry climate.

Power Design

The greenhouse is powered from a central AC-to-DC supply, with distributed power routed to controllers and environmental hardware.

Key design goals included:

  • Safe operation around water

  • Modular wiring

  • Expandability

  • Easy maintenance and debugging

Hardware Subsystem

Beyond the control electronics, a major part of this project was designing a physical enclosure capable of supporting a fully controlled growing environment inside an apartment.

The enclosure needed to balance several competing requirements:

  • Maintain environmental isolation

  • Support airflow and humidity control

  • Provide easy access for maintenance

  • Integrate electronics cleanly

  • Look intentional enough to live indoors

I designed the greenhouse around a modular aluminum frame with transparent panels, creating a rigid but easily reconfigurable structure. This approach allows the enclosure dimensions to be adjusted depending on the plants being grown or the type of experiment being run.

I also designed fixtures to connect the additional components (i.e. grow lights, pump, cooling fan) to the main enclosure, and I designed some corner covers for the main enclosure to cover the visible seams and lift the enclosure off the ground for easy lifting.

Custom Board Enclosures

To keep the electronics protected and organized, I designed custom 3D-printed cases for each control board.

Software Subsystem

Embedded Firmware

The firmware is responsible for translating sensor data into real-world environmental control.

Core functionality includes:

  • Sensor acquisition

  • Control loop execution

  • Device state management

  • Inter-controller communication

  • Fault handling

The system is designed around autonomous operation. Once configured, it should be able to maintain environmental conditions with minimal user involvement.

Communication

The main and box controllers communicate over RS485, which provides a simple and reliable physical layer for modular expansion.

This architecture makes it straightforward to add additional greenhouse zones without redesigning the control system.

User Interface (In Progress)

I’m developing a lightweight dashboard for monitoring and configuration.

Planned features include:

  • Live environmental readings

  • Historical data visualization

  • Device control

  • Alert notifications

  • Climate profile configuration

The goal is not to constantly manage the greenhouse, but to provide visibility and occasional intervention when needed.

So far, I have made a simple test application using MIT App Inventor for quick and dirty functionality tests.

Current Status

Roadie Approved!

Completed

  • Enclosure design

  • Core system architecture

  • Electronics design

  • Sensor integration

  • Controller communication

  • Environmental hardware integration

In Progress

  • Control tuning

  • Software dashboard

  • Long-duration reliability testing

Future Plans

  • Multi-greenhouse deployment

  • Larger modular enclosures

  • Advanced climate profiles

  • Historical analytics

  • Exotic plant experiments

Stay tuned for future updates!

Next
Next

MIPS CPU