In this Instructable, I will step through controlling the temperature of most kitchen appliances. As an example, I will use an old Westbend Poppery popcorn maker (aka. coffee roaster), but these same techniques will be applicable to most hot plates, coffee makers, and waffle irons.

This instructable puts you at risk of electrocuting or burning yourself. I will do my best to point out potential pitfalls, but you must use common sense. If you are comfortable with household AC electricity, this poses similar dangers plus potential burnination.

This probably isn't a good first Arduino project, but it might work as a second once you are comfortable with the general principles. You will need either a soldering iron or a breadboard. The total cost can be as little as $30, but probably will run between $60 and $90 after shipping.

Step 1: Parts

There are just a few parts to add, but for each has options.

1. Arduino or any other *duino.
There are a number of choices for Arduino these days. I will use a standard USB version, but any should work.
1a. USB Cable
1b. (optional) power supply for Arduino if you want this to run untethered from your computer. What? You don't want to have a computer permanently attached to your kitchen appliance?
You can buy a lone Arduino or a nice starter kit from adafruit.

2. Temperature Sensor
There are many options for sensing temperature with your arduino. I'll describe two different techniques, both providing a voltage that correlates to temperature. This voltage is easily read by the analog inputs of the Arduino.

Quick answer
For this tutorial, I'm going with the pricier but a slightly easier solution of a thermocouple and amplifier. This is because there is no soldering required as most thermocouple come with leads already attached. In practice, I've used the LM34 option the most (see below), as it's cheaper and a more accurate.
To follow along exactly, order:
1x AD595CQDatasheet
1x T-29
See below for more Temperature sensing options.

3. Solid State Relay
This part will allow the Arduino's 5v DC output to control the AC power that used in the heaters of your appliance. The world of solid state relays (SSRs) can be pretty overwhelming, and there are many places to go astray. The good news is that digikey just started carrying a line of affordable SSRs. These particular SSRs have a few key features we need. As you can read on their datasheet they take 5V DC input, provide 50 to 250 Volts AC output, have built in heat sinks, screw terminals, and provide an LED light that shows when they are switched on (super helpful). These are also very affordable for SSRs at $12 - $16.

The only question you need to ask is about the wattage of our appliance, and your household voltage. In the US, most heaters and appliances are 1500 watts and under, and use 110 volts. From Ohm's Law we know that
Watts / Volts = Amperes thus
1500 watts / 110 volts = 13.6 Amps
A 1500 watt appliance using USA household 110 volt AC power, uses about 13.6 amps.

what you need to make sure is that the current used by your appliance is under the rated current of your SSR. From the above calculation, a 15 Amp SSR will suffice.

This 15 Amp Optek SSR will do nicely and can be ordered with your temperature sensing parts. If you are in Europe, or anywhere with 220 ac power, you require only half the current as in the US, so 10 or 15 amps will cover all but the beefiest heaters.

Here are a couple more amperage options in case you need.
10 Amp
25 Amp
40 Amp

4. Wires and possibly some crimp connectors and breadboard
Except for the wires connecting the relay to the appliance, standard 20 or 22 AWG hookup wire is fine. For the higher voltage, you might be able to just use wires from inside the appliance, from an extension cord, or household wire from the hardware store. Probably you don't want to use the tiny map wire on any substantial heating element. Look at what's in the appliance already, and don't go smaller than that. Also, feel the wire (where its insulated!) with our hand and if its getting warm, think about getting a lower gauge wire with more girth.

Depending on the types connectors used inside your appliance, some crimp-on connectors can be very helpful, such as eyes or spades. Also, there are simple crimp tubes that splice two wires together. You want to get the right size crimp piece for the wire gauge you have so it makes good contact to the wire when you squeeze it. While soldering heavy wire is possibly, depending on your soldering iron, it can be between frustrating and impossibly. Crimp ends are often total sweetness.

If you are using the AD595, you'll need a breadboard to hook it up.

More Temperature Sensing Options - (you can safely ignore this if you choose)

Option a) LM34 or LM35
This is a single 3 wire part with from National. The LM34 correlates best to Fahrenheit, the LM35 to Celsius. Since we are attaching this to an Arduino, it doesn't really matter as you can do the conversion in software. The LM35 is more expensive for some reason. For either of these, you have yet another choice (there are actually more choices, but probably not worth considering) of the package, metal or plastic. This part will require soldering 3 insulated wires that can handle whatever temperatures they might be exposed to. Not that this sensor cant be submerged, and shouldn't be in direct contact with your food as some thermocouples allow. I've stuck it in boiling water, and it throws off the sensor pretty good. If you were to dip the whole thing or the exposed wires in epoxy or similar, it could possibly get wet. As with any option, if its going to be actually touching something you eat, make sure it's not poisoning you (ie. lots of wire still has lead in it).

The parts ending in AH are the metal version, a TO-46 little metal can package. These cost more and provide a larger temperature range.
LM34AH - $13.86 from Digikey
-50F ~ 300F
LM35AH $16.90 from Digikey
-55C ~ 150C

The parts ending in CAZ are in the plastic TO-92 package. They are cheaper (even can be sampled for free!), but they have a smaller temperature range. They are fine as long the temperature range is okay for your use case, for example the perfect temperature for brewing coffee, or any kind of water bath up to and including boiling point.

LM34CAZ $7.14 from Digikey
-40 to +230F
LM35CAZ $5.50 from Digikey
-40 to +110C

I will use the LM34AH in this example as I have one already. Other than

option b) Thermocouple
Thermocouples are a common way to measure temperature. They come in many shapes and types. We will use type K because they are common and have a monster range of 200 C to +1350C.
You can buy your thermocouple from Sparkfun ($13.95) or a nice bolt-on variety from Omega (~$8.00) if that works for your application. Thermocouples are nice because they come prewired in a variety of lengths. If you are buying the amplifier (below) from digikey, they have a couple of K -types in stock, including this T-29 bead type.

The trick with these thermocouples is that you need a thermocouple amplifier to translate their output into a voltage that is linearly correlated to temperature. This makes it very easy to interface to the Arduino. Enter the AD595. The AD595AQ has a +-3 degree accuracy and is available at Sparkfun ($17.95). The AD494CQ has +- 1 degree accuracy and is available from Digikey. Digikey also has both versions in ROHS (lead free package) versions for 10 - 20 bucks more each if you would like. These are 14 pin DIP (will fit in a breadboard) packages. Even though they are 14 pins, you can breadboard one without a lot of effort.

There are many many more types of thermocouples, as well as numerous other techniques for sensing temperature you could use with the strategy presented here.
Excellent 'ible. Congratulations it is very well done and very informative. I have a question though, could an attiny85 be used instead of an UNO? Since there are not so many pins used, maybe I could simplify the project.<br>Thank you before hand for your answer and advises. Looking forward to build your model and hear from you.<br>
<p>Hi @Timothy,</p><p>Great instructable! I'm just getting familiar with other versions of Arduino board, is there any reason the Nano would not work for this scenario? </p>
Hello, hmm. Do you have the schematic diagram for these? This is awesome, I also wanna make this :))
that is great. But the AD595CQ is so expensive for me. Maybe thermistor sensor is a much cheaper choice. <br>
A nice and safe alternative is to use a Wattstopper power unit which is UL approved, has zero voltage switching and as a bonus has DC output at about 150 mA to power your controller. One such unit (B-120 EP) is available from Amazon for about $15. - Enjoy.
Thanks a lot for the great instructable! I like how many temperature probes you cover, and the arduino code is very useful. Do you have any suggestions for waterproofing the thermocouple/sensor? Also, have you been satisfied by PID control, or have you changed the algorithm?
I'm an electrical engineer a bit out of the loop on different ways to control AC loads with logic signals.<br /> <br /> What are the differences and relative merits between SSRs and triacs? I have noticed that triacs are a hassle to control with inductive loads and PWM synchronized with the AC power. But it seems like the optoisolation of an SSR might be a little overkill - though I&nbsp;haven't checked cost differences.<br /> <br /> Great instructable!&nbsp;You might link to the code elsewhere and post it in a fixed-width font if possible. I should have referenced this instructable in mine, <br /> &nbsp;<a href="https://www.instructables.com/id/Mr-Compost-How-to-make-an-in-kitchen-compost-tur/" rel="nofollow">www.instructables.com/id/Mr-Compost-How-to-make-an-in-kitchen-compost-tur/</a><br />
Very instructive and cool use of arduino but .. how is this different from adding a thermostatic switch to the device?
this is different because you can track the temperature, as well as prevent overshooting if you calibrate it enough. Get it to add less heat as you get closer to the target temperature instead of getting to the temperature, and then shutting off, and then turning back on once it gets below. It can prevent swings and oscillations.
That's a good point. I don't think this example is any different from a thermostatic switch, a switch controlled by a thermostat, right? I feel this is more of a jumping off point for more advanced temperature control such as using PID, or other fanciness such as described in step 5.
dang, I did this project without an arduino last year for a class, and converted it to arduino, and was in the middle of writing up an instructable. Good job. Something I would add is that thermistors are a very cheap way of getting a reliable temperature. I may still post mine since it will help to calibrate for a thermistor.
Fantastic instructable, I have tried something similar but packed in after many failures.
Hi and thanks for this instructable! Because the AD595 is damn expensive I'll try to find another solution for the signal processing. I got a Typ-K thermocouple and will use your instructable to get it work. Regards
Thanks for the tip, I didn't know about that part. Also, for anyone looking to trim costs, if you can handle the shorter temperature range, I definitely recommend sampling the LM34. free!
The MAX6675 is a cheaper alternative and also has the added bonus of having a digital interface. The only downside is that it can only be sampled in SMD.
Wow! How the heck did I miss this instructable? I've been looking for a cheap, reliable way to do this, thanks!
This is a great instructable, and something I can and will definitely be using.

About This Instructable




Bio: Here is a site from when I Lived aboard and cruised in a wooden boat: www.slowtimes.com Current blog of randomness: growdown.blogspot.com ... More »
More by timothy:Electric Canoe Temperature Control For Kitchen Appliances 
Add instructable to: