Introduction: Precision Arduino 120v Incubation Temperature Controller / Thermostat

I created this incubation controller for another project and thought it would be really appreciated by everyone so I've decided to share it.

While I was able to find cheaper devices that perform the same function as this unit it can be adapted easily and is reliable. It could be modified to run a larger amount of current which many space heaters may require.

It could be used as a controller for a Sous Vide, Terrarium, Aquarium, Free Cooling fan, Thermostat, Refrigerator, Solar Heater, Coup, Ect. This unit is also easily re-purposed for multiple projects

A bit of safety

Previously I nicked a bit of one of the wires with my side cutters and the wire over heated and melted the relay into an on position which thankfully didn't cause a fire. This particular relay is for 10 Amps so be careful to not overload it. larger relays are available if needed

This inscrutable is the combination of these adafruit lessons


Display // ---Totally optional---


However you could use many different sensors depending on whats available

The parts list








Cable Grip


outlet cover

Step 1: Wiring

I actually already built this before creating this Instructable so I'm not going to do a comprehensive break down of how to create the box and If I had to make it again id use a to building code metal box since the chance of a fire is high.

In this particular instance the sensor is connected to A0 and 5v however it could be different depending on sensor

I used my Dremel to cut out the rectangle for the 120v plug and have learned to warm the plastic to soften it to prevent cracking (use a blow dryer) i also drill holes for heat to escape.

I prefer to solder and shrink wrap whenever possible

Step 2: The Code

Two lines of code must be modified to change to on/off set points

its celsius

if (steinhart >= 27.22) // on temp change to modify


if (steinhart <= 24.44) // off temp change to modify

and one more line to change the set points displayed on the screen

lcd.print("-24.44/27.22");/ displays the range

there is also a milliseconds timer that counts to infinity to act as a heart beat. If i was to remove the display i would program pin 13 to blink for the same effect.

on another project someone had me create buttons which could modify the temperature as needed but they ended up being unnecessary in the long run.

(it completely plagiarized from the Adafruit lessons with some slight additions to switch the relay on and off)

Good Luck!