It was a great fall weekend! Weather was great so I figured I’d put a few burgers on the grill and do an initial test of my first version of the Wireless (WiFi) BBQ Smoker Thermometer. I came up with a grand idea after a few coffee talk discussions with some guys at work. Herein lies the details of the device and a little creation theory as to why I built the device in the first place.
It’s no secret. Good barbecue comes from ultra-slow smoke cooking. There may be no such thing as slow cooking a pulled pork too long. The more you can let the beast brew and stew in it’s marbled fat the more tender and flavorful the meat will be. I have my own personal recipe that requires around 16 to 18 hours of smoking. That’s a long time. And if you are like me I don’t like to leave the house too long, as I worry about something unexpected happening and the temperature rising too high or worse… the breaker tripping! It would be great if I could go to work or do all my errands on a weekend Saturday and be able to pull up a web-page on my iPhone to see what the current temperature of my smoker and meat was. Figuring out a solution wasn’t that hard. After about a month of designing and prototyping I had my first unit to test. That first test was excellent! So I figure I would document my experience thus far for anyone interested, and hope that if you come up with different creations to please post them here for all to see. I expect to have 2 or 3 more versions after this one. I’d like to have the ability to have my device control my electric smoker via a relay, as a sort of thermostat, and I’d also like the ability to have an emergency stop that I can send via the same web-page I use to view the temperature.
Here is a little description of the devices components with more details as well as the code for you to improve off of! The heart of my WiFi BBQ Smoke Thermometer is the Arduino Uno. Arduino is an open-source electronics prototyping platform that can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. It’s programed using a simple language self titled Arduino Programming Language. I added a pre built add-on (called a shield in Arduino ‘talk’) that allow the device to connect to my wireless router. Then with a few other various electronic components as well as some temperature probes and free on-line software service, pachube.com, (pronounced “PATCH-bay”) had my device made!
Here is an itemized list of all the components that made up version 1 of my design:
Qty Item Site
1 Arduino Uno Sparkfun
1 LinkSprite CuHead WiFi Shield for Arduino CuteDigi
1 Enclosure for Arduino AdaFruit
1 Standard 16×2 LCD Display (white on blue) AdaFruit
6 10K Ohm 5% Resistor Radio Shack
3 2.5mm MONO Phono Plugs Mouser Electronics
1 Breadboard Radio Shack
3 Temperature Probes Amazon
2 Push Buttons West Florida
You will more than likely be able to find some of these items elsewhere or at your local Radio Shack, Fry’s, or general Electronics store. Speaking of electricity.
Time for my legalese. This stuff discussed in here deals with electricity. Electricity can kill. Therefore since I’m just a general and lowly man, I absolve myself from every and all liability. If you aren’t sure about something consult someone who does or find another project to test and create. Don’t risk playing with your life.
Credit: I give credit where credit is deserved. My design is largely sourced from the design by Luke Miller. You can find his original creation here. While I was spending a week researching the items I would need, I ran across Luke’s site, and was relieved to see that over 3/4 of what I needed to do was already very well documented by him! Thank you Luke!
So How is this thing going to work? Okay! I get it. You wanna start smok’n! Slow down! You can’t rush this stuff! lol. Here is how all this stuff put together is basically supposed to work. I’m going to start from the beginning for those of you who aren’t familiar with the Arduino and stuff.
The Arduino is basically a mini computer. It ships without an “Operating System”. That is what you will need to supply. The operating system is going to tell it what you want done, and how to do it. And here it is… the obvious. There isn’t any ‘windows’ or ‘start button’ or fancy things like this with this computer. Think of it as you re-inventing the wheel… starting where Bill Gates or Steve Jobs did with the first personal computers. You are re-writing history my friend. You are going to create an operating system for your Arduino that is going to explain to it how to read the temperature probes, convert the reading to something useable by our human brains (it’s hard to read a bunch of zeros and ones 00010100101010010010101010001010100). This operating system is also going to explain how to get it connected to the WiFi shield, and it’s going to tell it to listed for you to press the buttons, etc that you wire into the box. Fear not though. It’s can be complicated, but I will be nice and supply the source code for you. But don’t stop there. Feel free to play, change, and improve on my method. That after all is part of the “freedom” that comes with using the Arduinos. A quick Google search will return millions of pages where authors have contributed there code and wiring designs to the public community. It’s an awesome device all the way around!
Operation: For those requiring a bit more detail into the intricacies of this version of the device, here you go. The device can handle up to 3 temperature probes. The probes are basic thermistors. Thermistors are a resistor whose resistance changes according to the temperature. That’s what the arduino is good for! It measures the resistance and does the nasty calculation to get it readable by us in a Fahrenheit conversion. I’m going to venture to guess that the probes aren’t readily interchangeable with other probes you find. The specific model of my probes is “CDN AD-DTTC Replacement Probe For DTTC-S, DTTC-W Models”. You can Google around and find a few exact replacements. If you do find another probe that is cheap and works let me know. If you find one that doesn’t work, you will need to recalculate the coefficients and replace them within the program of the Arduino. Note that these probes are rated to 400 degrees Fahrenheit which should be plenty for smoking with. When you plug in power for the Arduino, the program start right away asking if you want to connect to WiFi. Press the choice button once for YES, or leave it for a few seconds and it will assume NO and continue to the next 2 questions (the remaining 2 questions ask you for a low and high limit. The Arduino is configured to turn on an output line which can be wired to a relay to configure it to maintain the temperature of your smoker within the specified range. You would need a separate relay that has enough amperage to handle your specific smoker based on it’s wattage. I didn’t include this in this version of the device, although I left the code in from Luke Miller’s version if you would like to use it. I already have a separate device that does this so I didn’t personally need it). If you answer YES, it will attempt to connect to your home network based on the IP and security settings you configured in the code before uploading to the Arduino. When successful, it will remind you of the IP address to use if you want to see a simple browser based web-page with the temperature information displayed. For example if you assigned the device an IP address of 192.168.1.50, you can go to another computer on your home network, open a browser and type http://192.168.1.50 and see a built in web-page that displays a simple output of the probes current temperature. You can hit your refresh button every once in a while to get the latest temperature readings. Or, if you are away from home, and have an internet enabled phone, or are at work, you can visit your feed at pachube.com in order to see the temperature of the probes through the internet. This requires setting up an account at pachube.com. I believe a free account should work just fine for most people. A free account has a maximum of 5 samples per minute. This devices only sends 1 sample so it falls easily under the free account. If you have a paid account, feel free to adjust to sampling timing within the code of the Arduino respectively.
So enough about that, back to business. You will need to download the Arduino programming environment. I won’t go into the details of all of that. It’s pretty easy once you go to the Getting Started page from Arduino’s site. Feel free to do a couple of the sample “sketches” that come with the development environment if you aren’t use to the Arduino. I used the 0022 version of the environment although I think it will work with earlier versions fine.
Once you have that setup and are talking to the Arduino from your computer, go ahead and download and install the WiFi library from Asynclabs GitHub repository. You can find it here. I suggest that you do a sample project (such as the WiServer) first to verify that you can connect to your home network using the Arduno and WiFi shield pair. And you can find an excellent explanation of the LCD hookup by visiting the ever gracious and wonderful Ladyada’s site here. Last but not least, my code for the Arduino can be downloaded here.
And without a whole bunch of wiring explanation, you can wire up your Arduino and components as shown. Realize that this drawing doesn’t show the WiFi shield stacked on-top. You, of course, will need to do that first before you start wiring. And this drawing shows 4 probes. My code doesn’t use the 4th one on Analog 3 (ohh yeah… those little grey disc looking thing represent the temperature probes). You are more than welcome to include it though. It should be fairly simple to change.
I always double, triple, and quadruple check my wiring before I even entertain the idea of plugging my creation in for the first time. You will need to play around with the placements of the components in the project box. It might get just a little tight. I recommend using ribbon cable the best you can, in order to keep the number of individual wires flying all around in there. And don’t try packaging this thing with all the components dry fitted within a small component board. That’s fine for testing with, but don’t expect it to work too long because a component will come loose eventually.
Remember to setup an account at Pachube.com. This will give you your on-line access to view the current temperature. If you are real handy with coding and understand their API library, you can add the feeds or custom components directly to your web-site. I would be interested in other people’s ideas and custom pachube examples on their own web-site. I included some simple graphs on my site. But eventually I’d like to learn the API and put a simple text based version on a page that is formatted for viewing on my mobile phone, that loads quickly and tells me what I need to know.
Future versions of this device? I hope to make one or two more versions. My next version would incorporate Luke Millers relay, and allow me to remotely turn on or off the smoker from the same web-page I use to view the temperature probes. Sort of an “Emergency Off” or “On” feature, if you will. My last version would incorporate a device configuration page that allows me to configure the IP, Passcode, and Pachube key from a simple built in web-page, and store those settings within the Arduino’s EEPROM. That way I don’t need to hook the Arduino up to a computer every time I change settings, etc. But for now, I think I’m just going to enjoy what I have, and more importantly… go decide what I’m going to smoke for next weekend!