I've wanted my own greenhouse ever since I worked at the Controlled Environment Agriculture Center in college. (Did you know my tomatoes were featured on the Martha Stewart show?) I learned some basic green-thumb skills on that job, and as an engineer I also identified that many day-to-day tasks were simple enough to be automated. The intersection of plants and engineering has piqued my interest for years, and it's been rewarding to finally dive into it.
I planned this project as a pilot program for future growing adventures. My goals were:
- Take some plants on the journey from seed to harvest
- Build some hydroponic systems, and compare the experience to growing with soil
- Record greenhouse operational data for analyses and visualization
- Understand how software interfaces with electronic devices, then actually automate some tasks
- Build modular components which could be reused in future projects
I wanted to understand the finer points of plant cultivation and agriculture methods, and how I could augment them with my software skills. To do this, I had to try it out at least once without knowing what I was doing (I call this knocking out the hoodrats). The experiment would be successful whether or not it produced a big yield. It's simply a nice bonus that I got a bountiful harvest of peppers :)

I planted the peppers in two batches. The first batch was 16 plants (4 of each type). The second batch was 36 plants (9 of each type). I started the second batch about a month after the first. This gave me time to learn from the first batch and correct course for any mistakes I made. Out of 52 plants, 5 seeds didn't germinate. Of the 47 that did germinate, 2 didn't survive to adulthood.
The first batch was started under the LED shown in the picture to the right. The second batch needed a bigger light, so I opted for something different. I didn't notice if either lamp outperformed the other with respect to plant growth. I imagine the LED is more power efficient, especially when running 20 hours a day for a few weeks straight.

I needed room for a few dozen plants, and also a dedicated space for my electronics. Fire-safety and dryness were my biggest concerns for the electronics, so I dedicated one corner as a plant and water free zone. Another corner was used for the hydroponic systems, and I used the other half for potted plants. I made sure to leave enough space to move around in the middle.
I built hydroponic chambers inside of containers that were lying around the house. Some old styrofoam boxes were perfect for deep water culture, while a 5-gallon bucket was used for an aeroponic reservoir. I picked up some pumps, airstones, tubing, net pots, clay pebbles, and spray heads as construction materials. I also needed a power drill and some hole saw attachments, which I didn't previously own. I wrapped the containers in black trash bags in order to keep light out, which prevents algae from growing in the nutrient solution.

15 of my plants were grown hydroponically, while the other 32 were planted in pots with soil. I installed a drip irrigation system for the soil plants. I used a Y-splitter to add an additional tap to my garden hose connection, then I added a backflow preventer, a pressure reducer, a mechanical timer, and a 1/2 inch tubing adapter. 1/2 inch tubing runs from the faucet into the greenhouse, then flexible 1/4 inch tubes run from the mainline to each potted plant. Each drip line is capped with a 1/2 GPH or 1 GPH emitter, depending on the size of the pot.
You can't beat soil for "set it and forget it" farming. Mother Nature can attest to that. Hydroponic methods give you more granular control over nutrient delivery, but they require more effort. If you micromanage your plants in a hydroponic system, you can create an interface for sensors and devices, which can then be used to automate some of the predictable maintenance tasks.

I used a PC battery backup as the power source for greenhouse electronics. It provided me with 10 outlets, 5 of which could survive power outages for a couple hours. This was a safety measure for the control computer, and for one of the pumps which runs on a two minute cycle.
My electrical components are two submersible pumps, two air pumps, a space heater, an oscillating fan, and a raspberry pi. The water pumps are running on timers, while the air pumps are on 24/7. The heater is controlled by a thermostat. I turn on the fan and open the windows if I know it's going to be a warm day.
The raspberry pi is connected to my home network via wifi, and connected to a webcam and an arduino board via USB. The arduino is connected to light, temperature, and humidity sensors. Once per minute, the arduino provides environmental readings to the pi, and the pi logs the data to network attached storage. Communication between the arduino and raspberry pi is done using the pyserial library for Python.
I use another raspberry pi as a web server. The web server reads from network attached storage and serves pages to visualize the data. The web application was built using Spring MVC and runs inside a Tomcat container. Routing is handled by Nginx running on the same machine. Data is rendered in the browser using D3JS. I opened up HTTP requests to the web server on my router, and I use NO-IP to access it over the internet using a custom domain. To see today's dashboard, go to tgibriday.noip.me. To see the dashboard for a specific day, use a URL like tgibriday.noip.me/greenhouse/dashboard/8-4-2016. To watch my plants grow in real time, go to tgibriday.noip.me/cam.
I wanted to keep things iterative, so the first version of the control system was only used to monitor and record data. I kept the electronics on isolated circuits, controlled by individual timers and switches. Version 2 was to use the arduino to control the pumps, fan, and heater. An integrated system provides a few benefits:
My electrical components are two submersible pumps, two air pumps, a space heater, an oscillating fan, and a raspberry pi. The water pumps are running on timers, while the air pumps are on 24/7. The heater is controlled by a thermostat. I turn on the fan and open the windows if I know it's going to be a warm day.
The raspberry pi is connected to my home network via wifi, and connected to a webcam and an arduino board via USB. The arduino is connected to light, temperature, and humidity sensors. Once per minute, the arduino provides environmental readings to the pi, and the pi logs the data to network attached storage. Communication between the arduino and raspberry pi is done using the pyserial library for Python.
I use another raspberry pi as a web server. The web server reads from network attached storage and serves pages to visualize the data. The web application was built using Spring MVC and runs inside a Tomcat container. Routing is handled by Nginx running on the same machine. Data is rendered in the browser using D3JS. I opened up HTTP requests to the web server on my router, and I use NO-IP to access it over the internet using a custom domain. To see today's dashboard, go to tgibriday.noip.me. To see the dashboard for a specific day, use a URL like tgibriday.noip.me/greenhouse/dashboard/8-4-2016. To watch my plants grow in real time, go to tgibriday.noip.me/cam.
I wanted to keep things iterative, so the first version of the control system was only used to monitor and record data. I kept the electronics on isolated circuits, controlled by individual timers and switches. Version 2 was to use the arduino to control the pumps, fan, and heater. An integrated system provides a few benefits:
- Less hardware needed (substitute timers and thermostats for a relay board)
- More data is recorded, which leads to better performance analysis and improvements
- Overrides to the system can be controlled remotely over the network
I built an electronics control box inside of a plastic container. The control pi and arduino sit inside the box along with a relay board. The arduino powers the relay board and closes or opens circuits when commanded by the pi. Each circuit on the relay board is connected to an outlet on the outside of the box, and is powered by an extension cable which connects to the battery backup. My controllable outlets were a little extra work compared to cutting the power cords of my appliances and wiring them into the relay directly, but I think they'll work out in the long run when I reuse the control box for other projects.
I've constructed the control box, written most of the software, and tested it a few times, but I don't think I'll get it installed before the peppers are done growing. Things are running smoothly now, and I'd rather not "fix" something that isn't broken. I'm also not confident that my electrical work meets modern safety standards, especially inside a warm and humid environment. Thankfully I designed my components with the future in mind, so I can let the hub of timers and gadgets finish what they started this season while I prepare the integrated box for next season.
A greenhouse is meant to provide ideal conditions for plants, but it also provides ideal conditions for pests. At first my pest problem was localized to a couple plants, so I optimistically ignored it. When the damage started to spread, I kicked myself for being foolish and decided to take action. Thiswas is one of the most challenging parts of the project for me. I couldn't catch the buggers in the act, and I was unable to identify them by the damage patterns, so I'm pretty much shooting in the dark trying to purge them.
After a few weeks of waiting (and chasing the ghosts of bugs), flowers started appearing. In nature, flowers mostly get pollinated by bees and butterflies. I don't have any bees, so I had to pollinate the flowers by hand. I put on some baby-making music and grabbed some cotton swabs, and then things got intimate. It was super exciting when the first little fruits started appearing. I'm really happy with the quantity that each plant is producing.
A greenhouse is meant to provide ideal conditions for plants, but it also provides ideal conditions for pests. At first my pest problem was localized to a couple plants, so I optimistically ignored it. When the damage started to spread, I kicked myself for being foolish and decided to take action. This
![]() | |
This stuff slowed the bugs down, but didn't stop them |
Throughout the course of this journey, things didn't always go as smooth as planned. I needed to calibrate the watering schedule for my felt pouches. The Raspberry Pi shutdown a couple of times due to high humidity. The electronics and hydroponics systems didn't turn out exactly as designed. Other things, such as the irrigation system, would have taken much less effort had I bothered to plan at all. Mistakes and shortcomings are OK though because that's how we learn, and at the risk of sounding cheesy, my biggest harvest from this greenhouse was an education.
I'll keep the plants alive as long as they're bearing fruit. I'm not sure what to do with all of the peppers, though, so if you want some then let me know! I'll probably try some broccoli in the fall/winter. I'll continue growing some stuff in soil and some stuff without it, since both techniques have their benefits. Most of the components I built can be recycled, which will make things simple for the next iteration. If/when we ever decide to buy a home, I'll definitely keep a consideration for greenhouse space in the yard and room for a hydroponic system in the basement or garage.
I started this greenhouse with a vision of a self-sustaining food production system. The goal was to install it, then perform minimal weekly maintenance while reaping regular harvests. That goal is still within reach, but I'm working kinks out of the timing and setup process. It's hard to appreciate the complexities of a smart greenhouse at a small scale, like my setup. Keep a lookout for projects like mine, though, and you'll understand why reliability and scalability are important for supporting human populations on this planet and elsewhere.
Thanks for reading about my plants! This was a really fun project for me. If you're interested in setting up something like this yourself, then please feel free to ask me for help :)
TGIB!
Edit: Here's a direct link to my presentation of this topic at Bellevue College's "Life on Mars" panel.
I started this greenhouse with a vision of a self-sustaining food production system. The goal was to install it, then perform minimal weekly maintenance while reaping regular harvests. That goal is still within reach, but I'm working kinks out of the timing and setup process. It's hard to appreciate the complexities of a smart greenhouse at a small scale, like my setup. Keep a lookout for projects like mine, though, and you'll understand why reliability and scalability are important for supporting human populations on this planet and elsewhere.
Thanks for reading about my plants! This was a really fun project for me. If you're interested in setting up something like this yourself, then please feel free to ask me for help :)
TGIB!
Edit: Here's a direct link to my presentation of this topic at Bellevue College's "Life on Mars" panel.