I’m lazy. My impatience often leads me to botch important steps when I make yogurt. So to get better control over the fermentation process, I made a crockpot thermostat attachment to precisely control the temperature.
You can buy electric yogurt makers, but most of them only incubate; the heating/sterilization step still has to be done on the stovetop. I wanted to experiment with Arduino microcontroller programming and electronic circuit design in Fritzing (an open source circuit layout tool that lets users document and share designs), so why not combine them into something I enjoy doing?
With my old-school yogurt recipe (adapted from wikihow.com/Make-Yogurt), I’d use a stovetop and a candy thermometer to heat the milk to 185°F and cool it to 110°F, then use a warm oven or radiator to ferment it at 100°F. That takes a lot of attention, and more containers than I care to wash later. Even with a commercial yogurt maker, I’d probably have to heat the milk myself, and that’s the step I’m most likely to botch.
Don’t get me wrong — it’s a great recipe as long as you’re diligent. But the combination of boring, time-consuming, temperature-sensitive steps puts my diligence to the test; that’s why the automation of an Arduino-controlled crockpot yogurt maker makes perfect sense to me.
Steps
Step #1: How the Temperature Control Works
Next
- I plug my crockpot into a relay, which in turn is connected to the wall socket. I leave the crockpot switched on, so that the relay controls when power is supplied to the crockpot. The relay is toggled on and off by an Arduino microcontroller, based on readings from a waterproof temperature-sensitive resistor — called a thermistor — placed inside the crockpot. I put my yogurt containers in a water bath inside the crockpot to ensure even heating, then submerge the temperature sensor in the water.
- A voltage divider circuit is used to indirectly measure the resistance of the thermistor. In the code that runs on the Arduino, I use the Steinhart-Hart thermistor equation to translate the thermistor’s resistance into temperature. This gives a pretty good idea of the temperature inside the crockpot. In addition to the thermistor’s resistance at a given time, the equation needs to be fed 3 coefficients, which can be calculated from predetermined thermistor resistances at different temperatures, shown on the manufacturer’s data sheet.
- You can use a simple online calculator (http://makezine.com/go/thermistor) to get your coefficients for a given temperature range, or do the calculations yourself (http://makezine.com/go/diy_calc). Since we’ll be measuring a range between 100°F (38°C) and 185°F (85°C), I used resistance values measured at 86°F (30°C), 140°F (60°C), and 194°F (90°C) to calculate my coefficients. The code that decides whether the crockpot should be on or off is very simple; it checks the temperature once per second and turns the relay on or off if the temperature is under or over the target temperature.
- If the temperature control were variable, like a dimmer switch, then it might make sense to use a more complex control called a proportional-integralderivative (PID) algorithm. PID controllers use a sophisticated set of rules to control things like heat or pressure and keep them from overshooting their target values (see “Sous Vide Cooker,”). For our purposes, though, a simple approach works fine.
Conclusion
This project first appeared in MAKE Volume 25.






















Roy are you sure that you are using a transistor to drive the relay? The relay draws too much current to connect it to the pin directly.
In the void setup, make sure to add pinMODE (13, OUTPUT). It was missing from the downloaded code. When I added that, pin 13 operated much better.
I used the 100 degree setting and it seemed to work ok. To be truthful, though, my infrared thermometer shows my water temp to be a bit higher than what the thermistor is reading. I want to get a thermometer that I can calibrate to for sure.
Forgive my ignorance, but JP2 and JP3 refer too…?
// What's Trending
Raspberry Pi Design Contest
A Photo Tour of Maker Faire
Seventeen Sneaky Secret Hides
Maker Faire Bay Area Ready for Showtime
Arduino Announces New Wireless Linux Board
10 Things to Connect to Your Raspberry Pi
Sneak Preview: The Wheeled Wonders of Maker Faire
New Arduino Robot Available in the Maker Shed at Maker Faire
// What's Shared
A better way to slice a pumpkin
DIY Nerf Darts
In the Maker Shed: Minty Boost USB Charger
100 Dollar Store Organization Ideas for Craft Rooms and Beyond
Mad’s Mouse House
Lace Princess Crowns
I Have a (Puzzling) Dream
Play the Rings of a Tree Trunk Like a Record
// Most Commented
DIY Hacks & How To’s: Get Emergency Power from a Phone Line
Resin Casting: Going from CAD to Engineering-Grade Plastic Parts
Ten Tips for Screws and Screwdrivers
Ten Tips for Better Measurement
Makers on TV: Big Brain Theory
Grow: A Portable CNC Router System
Tool Review: BioLite CampStove
Pitches with Prototypes: Solar Tracker