BBQ Aid
Introduction: BBQ Aid
Many people can't tell the difference between barbeque and grilling. Heck, we almost always made a fire that put some blacksmiths to shame, just to grill those pork chops under 3 nanoseconds!
(no, really, we used an industrial air compressor to fan the fire up until all the coal was red and no one could get near the grill, literally)
I was introduced to proper BBQ just a few years ago, and fell in love with low and slow. It's now a sunny saturday task to ignite the fire, grill a round of chevap to keep people from starving, and after that, BBQ some pork spare ribs or collar for 6-8 hours, about 120°C (250°F). Of course, it wasn't THAT good on the first and second try, and it failed because of the temperature. It went occasionally too high. How hot was it? You don't know without proper measurement!
Yes, you can buy a smoker with builtin thermometer, but I would like to introduce you to DIY electronics. (or proper cooking if you already know how to program an Arduino, you should try this) It's much fun to tinker and it's always a possibility to upgrade - like adding an audible warning signal or changing the splash screen.
The key to success is controlling the temperature for very long. But since my stuff runs on coal and wood (I find gas BBQ a bit heretic), putting enough solid fuel for 8-10 hours is not an option. I ended up with a small heap of coal and I check it every 20-30 minutes, but we both need a proper thermometer to check the actual temperature. That's what we make today!
Supplies
Arduino Pro Micro
A box
USB cable to sacrifice
MAX31855 module with a thermocouple
SSD1306 128*32 pixel OLED display
Proto PCB
Some capacitors (10 and 1000 uF, at least 10V electrolytic)
(optional) extra pin headers if resoldering
Tools: solder iron, solder, wires
Step 1: Measuring Hot Stuff
Sensing room temperature? No big deal! Measuring the temperature of the fire? Well, it gets tricky.
First, since the guy with the big white beard invented thermodynamics to punish engineers, hot air tends to go higher. The air thermometer on your smoker measure a different temperature, not Mr. <PERSON>'s cooking temperature. So, we need to measure the temperature as near as possible.
Plan A: get an average NTC thermistor, Pt100/Pt1000 (used for example in 3D printers) or similar. 152
The problem: I don't like the taste of burned plastic, and that's what you get when you put insulated wires in a fire.
Plan B: get a pyrometer (that's the fancy name of those remote infrared stuff), open the smoker, and there goes the heat... Even those builtin air temperature meters are better choice. Also, tricky to measure the flames.
Plan C: Thermocouples. What do you get when you weld 2 metals together? A tiny, and temperature dependent voltage, and we measure this. It's widely used, reasonably priced, and can measure over 1000°C (1800°F) easily. (well, we hopefully don't go that hot since some metal parts would already melt) The sensor leads can handle high temperatures unlike average plastic, and you can buy integrated circuits that do all the magic, you just ask for the measured temperature! Neat. So that's why we use thermocouples.
Step 2: Mechanical Tasks
After so much theory, be more useful. Get some tools and start tinkering.
Get the USB cable and chop one end off. (obviously not the one you plug in the power bank / charger / whatever)
The box will need some holes. Not very much, only 2 small ones on the side (one for the sensor, one for the power), and one elongated one for the display - of course on the top. Get the drill spinning!
And also cut the proto PCB to fit inside the box.
Step 3: Positioning
I chose a pretty tight box, so I had some constraints. But at least it's not bulky.
The display comes on the outside, so the pins must be long enough to reach outside of the box. But not too much! The pins are not glued in place, they can be pushed in and out, so fine-tune.
The USB port of the Arduino is used for uploading the software, we will power it from the VCC pin. If you won't forget to flash the firmware before soldering and promise not to update it later, you can block the port, otherwise make it accessible. 98