Step 1: Word of Caution!
Word of caution~
For the inexperienced, DO NOT mess with house standard voltage if you do not have experience in general electrical saftey and an understanding of how to work with a multi meter. This is extremely important and is needed to protect yourself and the loved ones around you from a possible electrical death... Please heed this warning to proceed with caution and understanding that this can be quite dangerous. Do not try to accomplish this project before knowing this. If you do choose to proceed do know I will not be responsible for any accidents you might inflict upon yourself by being unsafe. With that being said, let's get creative!
Step 2: Planning
1. A heating controller that will accurately keep heat to at least +-3 degrees.
2. A heating element+chamber that will disperse heat evenly.
For the first device we will make using a combination of mainly these components:
Arduino mega 2560
LCD + keypad display compatible with arduino mega
Relay rated for the heating plate ( will explain this later)
Max 31588 thermocouple amplifier
K type glass braid thermo couple
120 V outlet
When trying to come up with a good project box, I figured I'd look up a good diy enclosure and found this:
Awesome a conduit box cover!
I liked the idea but I didn't have a 3D printer to make it...I figured I could just dremel out a wall outlet faceplate to fit the LCD and keypad. As for the outlet where the plate would plug into, the faceplate already takes care of that:) I got this idea from a couple months ago when I made the "variable soldering iron controller" instructable by user: titaniumw41
Though I used a plastic wall plate instead.
For the second device we will need:
A hot plate preferably a flat iron top.
A heating chamber with some sort of insulation.
This is easily accomplished with an oster hot plate, aluminum rice pot, and sand as a insulator.
To know how to wire first device, we should probably figure out how much energy or Watts our heating plate is using. Look underneath for the wattage. Sometimes it will tell you the amperage that it draws. If not, then we can simply divide 900w by 120v =( 7.5 amps) this will give use the amount of amps the device supposedly uses. So if our heating plate draws 7.5 amps then we need a relay that can handle that much or a resistive load. With this in mind, the relays on the parallax board can handle 12 amps. The relay board itself can supposedly run two 8 amp appliances safely. This I believe, is to de-rate for inductive loads of house fans. From what I understand resistive loads you don't have to worry so much about de-rating. Since our heat plate is heated by a resistive coil, we can safely assume our relay can handle the amps drawn.
Now we can switch the heating plate on and off by a micro controller. To be able to sense any temperature values though we will need a type K thermocouple to measure the higher temps the heating chamber will rise to. The thermocouple uses two different metal wires fused at one end to create a voltage charge based on the temperature of that junction. This voltage signal is amplified by the Max 31588 amp and values are sent to the arduino mega 2560. These are then displayed on the Osepp lcd.
To control the temperatures accurately our code will need to accomplish a few things.
(From using the arduino with a heat mat and a dht11 temp humidity sensor I already have a few ideas on what needs to be implemented)
1. There needs to be a way to set a temperature. The keypad on the LCD can be programmed easily to change a set value for the hot plate to heat up to.
2. The relay will need to switch the hot plate off when it rises over, and on when it falls below the set temperature dialed in. This will be a simple on off function.
3. There needs to be a smoothing or averaging function to be able to smooth out readings from the thermocouple and also minimize heat swings made from such a simple on/off type of balance act that seems to occur often with a non variable heating controller.
More about the design and coding development will be explained later in this instructable.
Step 3: Sourcing Materials and Tools
Arduino Mega 2560- Used to control the relay, Osepp digital LCD display + keypad, and thermo couple amplifier.
Osepp digital LCD display + keypad shield- Used to display temperature readings and heating status. Also to control the desired set temperature. Fits nicely on top of the arduino mega 2560. Bought from Frys electronics for about $14.99.
Max 31855 Thermo Couple Amplifier with breakout board- Used to amplify electrical signals from type K thermocouples. Bought from Adafruit for $14.95
Type K glass braided Thermocouple-
used to sense high and low temperatures. Also from Adafruit for $9.95
7v to 9v DC wall transformer- can be sourced from older devices like cameras. Bought mine from the second hand store for $2. Used to power the relay magnetic switch.
Barrier strip- Used to safely connect 120v power inside project box to outlet/relay and 9v DC transformer. Bought from Radioshack for about 3$
120 v 12 amp relay - I bought mine a while ago from Fry's electronics for about $24.99. It is a dual relay board by Parallax. Used to control the Oster hot plate.
Oster hot plate- 120v 900w hot plate has low med and high control knob. Iron flat top provides some what of an even heating. Plus good heat retention. $19.99. Used to heat the aluminum rice pot.
Aluminum rice pot- Sourced from an broken rice cooker sitting in my friends kitchen. Provides additional even heat spread and acts as a chamber. Free. Could be bought at a second hand store on the cheap.
Aluminum foil- to cover the top of the rice pot.
Pet Sand- Pet sand for reptiles or fish aquariums. Be sure to get the all natural no additives and dye/color free fine grade sand. $7.99 for a 10 lb bag at Petco. Used for even more even heat distribution plus insulation. Also good for seating round bottom flasks used in a glass essential oil distill.
Dremel drill with bits- Borrowed mine from a friend. Always respect other people's tools, especially when they are kind enough to lend it to you for free.
Pliers/wire strippers- used for general electrical work.
Soldering Iron and acsessories- for making electrical connections.
Multi meter- for checking continuity, and Voltage. Very important tool for any electrical project. Must Use!!
Hot glue gun- for quick adhesive.
Step 4: Prime the Mantle!
I started with the heating chamber due to the fact that my thermocouple and amplifier didn't deliver yet...
1. Place heat plate on a level, solid surface.
2. Place aluminum rice pot on top centered.
3. Add 1 cup of natural sand.
(Heat transfer time will change depending on how much sand is added...more on that in Calibration)
4. Fold a sheet of aluminum foil in half to form a square that is big enough to cover the top. (if you use heavy duty aluminum you probably don't need to double up)
5. Fold edges of square by ~1/2cm to make 3 thicker borders.( This reduces tearing and makes the cover much more reusable and functional.)
6. On the side that was folded in half, cut a slit till the center of the square, and cut out a hole big enough for whatever you may be placing inside. In my friends case a round bottom flask.
6. Fold edges of slits like before to reduce tearing.
7. Place thermocouple end directly underneath the round bottom flask and bend VERY GENTLY to edge of rice pot.(Make sure the end it isn't digging to far underneath the sand, this can give slighlty off readings.)
8. Now place the cover on top and fold the FLAT edges of the foil cover underneath the rice pot to secure it in place. I start by folding the slitted ends first, then the other edges. Make sure the thermocouple couple end is still in place after securing the foil cover.
That's it! Pretty simple Huh? Now for the more complicated part...
Step 5: Schematic
First we must figure out the wiring for the components.
Before attempting please learn how to read basic schematic diagrams. This will definitely help with wiring this project together.
Download the over-all rough sketch here:
Use these links below to help understand how I set up my circuit.
Dual relay board schematic:
(^^^Use this to find pin outs and terminal connectors)
Max 31855 pins explained:
(^^^Good for understanding the amp board pins and where they are supposed to go)
For the relay, connect the top pin of the male connector to digital pin 28, and the one right below it to the ground pin of the arduino.
For the Max 31855, connect Vin to 5v pin, GND to the ground pin, DO to pin 35, CS to pin 36, and CLK to pin 37 on the arduino.
All other connections should be straight forward or able to figure out by yourself using the diagram provided...If not, comment for any additional help!
Note: A clearer/cleaned up version of the schematic has been uploaded.
Step 6: Assembly
I wired my amp circuit to a prefab RadioShack board with solid wires stripped at the end for easy connection to the arduino pin holes.
Next I cut open the transformer for powering the relay with a Dremel drill and made sure it was putting out the desired ~ 9 v range. Realize most transformers are sometimes very difficult to open without the right tools. Thankfully cutting blades come in-handy. I then wired it up accordingly to the parallax relay.
Then I started figuring out where I wanted the LCD and that was obviously for me, to be beneath the outlet that would power the heat plate. So I did a rough trace/measurements and started to cut out the face plate and the outlet box with a dremel drill cutting wheel. Everything else was fitted underneath the arduino+LCD keypad and outlet. Set up for you is optional. Mainly I made sure to put the thermocouple amp circuit at the top right so the wire probe would be parrallel with the power cord.
After screwing/bolting the components into place I wired them accordingly and tested.
Make sure no component wires are bare or have a possibility of shorting by using shrink tube or electric tape...
Now the code.
Step 7: Code
Upload to you're Mega and test. You should see the LCD boot up and start showing sensor readings and what not. I'll describe a bit about what is being displayed though it's kind of straight forward. Realize all temps are displayed in Celsius and I have NOT implemented Fahrenheit conversion.
The first temp is the thermocouple amplifiers reference temperature. Not exactly too important right now...
The second temp value is the thermocouple's temp. This reading will be watched till it hits a certain temp.
The third temp value is the Set Temperature. The up and down buttons controls the set temperature value.
The fourth is a flame emblem that appears when it's heating. It switches to an = sign to show it has reached the set temp.
Realize the displayed temperature for the thermocouple is an averaged value of 5 second intervals. This could be changed for improved or more responsive temperature control.
With that understood I'll explain a bit more about what's going on. Once powered and booted the LCD displays readings from the thermocouple, and the amp chip. It then checks if the thermocouple couple temperature is >= to the set temperature. If it is true, then it will display an = sign and relay will remained switched off. If not, then it will display a flame emblem and output 5v from pin 28 to the relay, switching on 120v of power to the outlet for the heat plate to use!
The Max 31855 amp chip library can be downloaded here:
The Osepp LCD and Keypad library can be downloaded here:
Pretty neat huh?
Any ideas on how to improve the code would be appreciated.
Step 8: Calibration
Depending on how much sand is added and where the thermocouple end is placed will change the heating response time, as well as the temperature on the heating plate dial. When trying to set a desired temp, set temperature on the keypad first, then turn up the heating mantle. It's very a good idea to slowly raise the temp on the heating plate till it evens around the set temp on the LCD. Otherwise you'll probably get a heat spike. Once desired temp is reached try to dial in the waivering of temp degrees by either removing sand or lowering plate dial. This will even the variability of degrees.
Step 9: Future Improvments
Replace heat plate with a fiber glass "mitt" or "cradle" with heating element strips lined inside. (Like a real heating mantle would have!)
A speed controlled magnetic stir bar.
(Would be easier to implement with the above improvement being installed before hand...)
A Solid State Relay would be much more reliable than a mechanical relay due to the fact it has to shut on and off ALOT for temp control. Mechanical relays can fail after over excessive switching which could lead to over heating during use.
I'm also wanting to add on a variable heat control some how. I'm not exactly sure how, but it would be alot more accurate as far as heat control goes. Instead of just on and off heat switching, I'd imagine it would be more gradual..
After building the heating mantle I came across a Dual LCD PID controller that was only about 15-24$.
It has everything you need to control most resistive heating elements. I thought wow this would have been an awesome $$$ saver! Then I realized where's the fun in that? It was much more fun learning and having to figure out the basics myself than it would be to just buy a controller... There would be no inventing spirit...
Anyway, if anybody has ideas on how to improve the components or coding further, please comment or msg me. Any feedback would be greatly appreciated!
Step 10: Conclusion
Please let me know if you have any questions in the comments or feel free to msg me! Thanks for checkin it out!