Wednesday, March 24, 2010

Control My Smoker!


After seeing some of the nicer smokers that are out there and having just a thrift store electric one I knew it needed some upgrades. I use the smoker in weather that varies from 120 in the summer in Mesa to single digits in Flagstaff in the fall and winter when I go see my family. The built in thermostat just wasn't cutting it for me, and the original temperature gauge only told me "ideal", "hot" and "cool" temperatures, no idea actual degrees.

I initially added a temperature gauge to let me know the temperature in the smoker, as I'd like to keep it around 215 or so for most of what I do. This helped, but the smoker never seemed to get to a decent temperature with it, always struggling to stay over 200. At one point I added an additional heat unit (butchered hot plate) in order to try to get the heat up.



It still wasn't working to my satisfaction, so there was only one thing to do: make it more complicated with another project! I needed to make an electronic temperature controller. I had been kicking around the idea to turn on a fan in the summer when it got hot in the house so figured I could make this do both.

I picked up an Arduino (no, I don't care that I could have done this on smaller, cheaper hardware or that I could have made minor changes and done it on the Atmega in C instead of the arduino language, been there, done that, don't care) to do my development on and got my prototype working in short order then when to the pain task of soldering it up. I always get bored with a project after the prototyping phase so it was a struggle to keep going at it. I ordered some kits on ebay with the bootloader for arduino burned on the atmega328 chip that came with a crystal, voltage regulator and plug for the chip, around $7 each I think. I used the microchip onewire temperature sensors, and initially programmed it to use two of them, one for meat temperature and one for smoker temperature, but backed down to one and use a separate meat sensor that has a pager.

It is currently using a Radio Shack 275-0005 relay, it will control 120v at 12 amps with 9 volt control. I took the additional heating element out of the smoker to bring total draw down to 15 rated amps and figured I'd take my chances with the relay. I used a 2n2222 transistor to control the relay as the arduino operates at 5v and I wouldn't want to put the current through it that the relay requires.

I drew up some schematics as I disassembled the circuit from prototyping phase so I could figure out how to get it back together. They may or may not be helpful.

I try to modularize the parts so I can swap them out when I improve them or blow them up, so I kept the relay on a separate board.

I even draw up how to do silly things like buttons so I don't have to draw them all or think about them next time I want to do a project.

And here is how I tied all that into the arduino (or rather, the atmega chip running the arduino bootloader).


I didn't get any pictures of the device in prototyping phase, but here it is wired up waiting for an enclosure. I hooked up the MicroChip onewire temp sensor with CAT-V plenum, kind of a pain using the solid core wire but I'm cheap and got some for free. I initially had it hooked up using dedicated power but couldn't get a reading from them at all. As I had done the brilliant move of changing my source code and the hardware at the same time troubleshooting was lots of fun. I eventually tried them in parasite power mode and they sprung to life giving readings just like they should.


Here I'm beginning the enclosure. I didn't have much laying around the house that I thought would look nice and be the right size but thought that some left over pool piping would do the trick.



I ended up splitting the pipe length wise to fit everything in so capped it with some pieces of wood that had cut off strait joints hot glued on. I also hot glued the pipe back together to keep moisture out. The hot glue probably won't hold up to well in the summer if I leave it in the sun, but the LCD probably won't like it much either.


Here it is on a maiden run of turning the heating element for the smoker on. The relay seemed to be staying cool enough and by setting the threshold temperature low I could trigger the device by heating the sensor with my fingers.


First time using it to actually control the smoker! Making some ribs while helping friends make some Adirondack chairs and wood ammo box. The ribs came out a little bitter, sure if it was the rub (which has tasted excellent before), the crab apple wood, but most likely because I didn't soak all of the wood before putting it in and I think some of it caught fire and got soot on the ribs :-(.


Ahh, nice when I actually *finish* a project, well, kinda...I've still got a lot I'd like to do with this one...



Most of the time it is just displaying current and target temperature. This pic is right after I started it up so it isn't quite at the target temperature yet.


For what it currently does. There is a switch that determines control mode and set temperature mode. When in set temperature mode the buttons closes to the LCD move it up and down. Pressing them both at the same time will reset the temperature back to 220. When in control mode pressing the buttons individually does nothing, but pressing them both at the same time will switch it from keeping things warm to keeping things cool: trigger in the opposite direction. The third button saves the settings to EEPROM, but asks first. The up button confirms, the down button denies.

Link to sketch here (fixed 2012-01-21...feel free to email me if I break it again).

The temperature seems to have about a 6 degree swing, drops to about 3 below when kicking on the heat element and about 3 over by the time it turns if off. I thought about trying to stabilize this in the software but don't think it's enough to worry about.

Future changes include a solid state relay (SSR). I ordered some of these from ebay for pretty cheap and they will simplify the circuit quite a bit. I will no longer need a 9v power supply, the relay, the transistor for the relay, etc. The SSR can also handle up to 25Amps, so no worries about overloading it either. If I get some time (yeah, right) I'd like to change it so it didn't have a switch but used the third button to change modes. One of the modes would be a program mode where you could program it to hold at different temperatures for differing periods of time. Say you want it to hold at 100 degrees for an hour, then go up to 150 for an hour, then 200 for another hour, then back to 160 for two hours. Something along those lines would be fun. I also would like to change out the Onewire temperature sensor for a Type K thermocouple due to the different packaging these come in. They have them bolt on, insertion probes, etc and some can handle up to 1400C or something crazy, and have nice wires that are better at handling heat too. This will require a little adapter, probably using MAX6675 (I had a nice place to get those and a etched board from bookmarked but can't find it right now). Then I need to make one of those for Roy as I probably eat more of the stuff he smokes than I do. Will I ever get it all done? Maybe if I don't do the time/temperature settings reprogram and get busy with the soldering iron.

No comments:

Post a Comment