Optimizing the greenhouse cooling system

My current cooling solution is composed of the following:

  • 15″ x 12″ intake water-cooled heat exchanger
  • 12″ exhaust fan
  • 8″ water-cooled heat exchanger with 240mm fan x2
  • Geothermal loop 5-6′ deep
  • Soil bed and aisle loop 3-4″ deep

Since the beginning of spring, I’ve been optimizing the cooling system.  Now that it’s summer, I can test it’s capabilities.  Here are some of the principles I’m trying out.

Variable setpoint

In my area day/night temperatures can swing violently.  7C at night, and 31C during the day isn’t uncommon.  It will become more consistent as summer progresses, but for now, I want a system that will change the setpoint based on the fact that nights are colder.  I want the system to store more heat during the day so it can keep things warmer at night.  So I have a bit of machine learning built into the system that takes into consideration the night time temperature and allows for a higher setpoint during the day to store more heat.  I have to keep the setpoint within livable conditions for my plants.  Right now, I’ve got 9C as my lowest setpoint, and 34C as my highest and the “ideal” setpoint at 24C.  For every night the temperature drops below 9C, I raise the running setpoint by one degree.  In the winter, that will probably mean that the temperature could reach 34C and maintain there for a while.  In the summer, if the nights are warm, the setpoint will decrease as long as it’s above the 24C.

With this type of “learning”, I shouldn’t have to ever manually set my setpoint.

Oh, and one more thing.  If the setpoint is kinda high -too high for humans to comfortably work in the greenhouse, I have a rule where if the human lights (a white LED strip) are on, change the setpoint to something that a human can tolerate.  For me, that’s 23C.

CO2 On-demand

The rule for this is simple.  If the temperature is below the variable setpoint and it’s daytime, burn some hydrocarbons and make some CO2.  If it’s night, only turn on if the temperature drops below the minimum threshold (9C).  Plants only need CO2 when there’s light, so trying to maintain a certain CO2 level at night will become expensive.

Exhaust only when needed

I have my exhaust set to turn on when the temperature exceeds the maximum threshold of 34C.  Why?  Well, if there’s a certain CO2 level, and it’s 25C (vs the 24C setpoint) we don’t want to exhaust the CO2.  That’d be a waste!

We will, however, exhaust the CO2 if we get a gas alarm from the harmful gas sensor.

Variable speed intake

My intake has 6 200CFM 120mm fans controlled by a photon which can PWM a MOSFET to control how much voltage the fans get.  Using a PID algorithm and the variable setpoint, On the photon, I get 8bits of control resolution (256 steps) so I’m able to suck in just the amount of air needed to cool.  Almost all of the cooling work is being done by this and the other heat exchanger.

Below you can see how well the intake system tracks the temperature (right graph) and also see when the exhaust fan kicks on (left graph).

intake and exhaust

Heat exchanger for geothermal

I redesigned my geothermal system a bit.  Instead of using the same reservoir as the irrigation, it now exclusively uses a 50 gallon drum and a small 5w continuous pump.  This pump pumps water through the geothermal system and back 24hrs a day every day.  In addition, I moved the water cooling pump (the pump that pumps through the intake, LEDs, CO2 generator, etc) to use this dedicated drum as well.

This change allows me to add a bit of chlorine to the water to keep algae from clogging my tubes.  It also frees up my irrigation reservoir for liquid-based feeding (more on that in a future post?).

To compare, here are the designs for both the old system and the new system.

Trip's greenhouse water system

New system:

Trip's greenhouse water system (3)

Attached to the geothermal line is my little 8″ x 8″ heat exchanger with 240mm fan.  The fans don’t push a lot, but it’s the quality that counts.  The air coming from there is cooled from water deep within the earth.


I don’t open my door

With this setup, I have never had the need to open my door so far.  This hopefully keeps pests out and with them, disease.


Over the next several weeks, I’ll be trying to test the potential of this system.  Today’s high was 27C.  My high temperature in the greenhouse was 36C right around the time I increased the aggressiveness of the intake PID algorithm and reset the system (see the missing data on the graph above) .  With that aggressive setting, the intake still only hit 210 pulses out of a possible 255.  My next goal is to optimize the PID settings and tune it better.  This will further give me an idea of the systems capabilities.

Augmenting greenhouse with blue and far red LEDs

I’ve done a few posts about the benefits of blue and far red lights on plants.  I’ve used them on my seedlings.  Now that I have no seedlings for the moment, I wanted to try them out in the greenhouse.

But the greenhouse is outside, right?  It already has the sun, right?  Yes and yes.  However, exposing plants to a higher concentration of blue light before sunrise, can begin the process of the plant opening its stomata (pours the plant uses to “breath” out water and breath in CO2) to make it more ready for photosynthesis and ultimately carbon fixing and growth.

Far red light benefits at the end of the day are already covered in a different blog.  The higher concentrations should help -especially because trees and other objects shade the setting sun from my plants.

I’m trying to put growth and fruit production into overdrive.  My max expected yield should be somewhere around 1-2lbs of tomatoes per day.  I’m getting close to 1lb every 2-3 days.  The blue light along with CO2 boosting in the morning should help with growth and production.  I expect to see less suckers on my tomatoes and more growth with the far red light as well.

My red and blue lights are enclosed in flood light housings.  It was pretty easy to set them up this way.  I used a carabiner to hang them from the wire over my second bed.  I then pointed the lights at my tomatoes and ran the power cord to the ubiquity mfi mpower strip that I recently installed.  The cool thing about the mpower strip is that you can control it over wifi -so I can tie it into my automation system, but it also supports simple schedules including location-based sunrise/sunset.  I created a schedule that starts the blue light 1hr before sunrise and turns it off 1hr after sunrise.

The blue light looks really cool at night.  This is what a 50 watt LED can do.


The schedule I set up for the far red LED was 30 mins before sunset, and turn back of 1 hr after sunset.  It isn’t visibly as bright as the blue, but my infrared camera sees the difference.


I’ll try to remember to follow up if I notice a difference.  If I forget, comment below and I’ll either respond with my findings or make a new “results” post.