A year or so ago I got a propane-heated vertical smoker, which I’ve been using to make some pretty decent ribs and pork shoulders. It keeps temperature fairly well, but not well enough that you can just ignore it. Since the only way to read the temperature was to look at the mechanical gauge on the front of the smoker, this pretty much meant you were stuck spending the day in a camp chair by the smoker or at least popping in every 5 minutes to make sure the temperature was still good.
This was starting to feel like a huge waste of time, so for a while I’ve been wanting to equip it with some temperature probes that can be sent over an Xbee so the temperature is readable remotely. I ordered two long PT100 probes so I could get a handle on the temperature distribution, and also a K-type thermocouple for the burner. This was in anticipation of what I really want to do which is also control the burner to keep the temperature by putting a stepper on the control valve, but that’s more work than I want to deal with now (and also requires a power source for the motor.)
To read the probes I got some MAX31865 RTD and thermocouple breakout boards from Adafruit. The MAX31865 is SPI and the thermocouple board uses 1-wire, which is handy since it plugs right into my existing code for reading the DS18B20 probes. I wired up everything up on a prototype board with a 3.3V Arduino Pro Mini.
The board is powered with a 18650 Li-ion cell, which can be charged through a USB connector. I got a waterproof enclosure to put everything in, added cable glands for the probe wires and mounted the box on the smoker bracket that secures the propane bottle.
As usual with these boards, there’s an Xbee radio that sends the data to the receiver sitting on the Raspberry Pi that generates web plots. That’s great for sitting at the computer, but not so great for when you’re actually right next to it. There’s a substantial difference between the mechanical gauge and the PT100s, so it would be nice to have a way to read the temperature probes locally too. (It’s unclear whether this is just because the mechanical is a fairly short probe so not measuring the same location, or if it’s just inaccurate. When the smoker is off, the two PT100 probes agree to within a few tenths of a C, so those seem very accurate.)
For this reason, I added one of SparkFun’s MicroOLED displays. These are tiny displays communicating over SPI that can draw arbitrary shapes. Here, I just use it to draw text. It shows the average temperature between the two probes, if there’s a fault on the probes, and occasionally also shows some extra info like the battery voltage, the Arduino’s internal temperature sensor, and the burner thermocouple. If the battery voltage gets below 3.6V it also starts flashing a warning.
I think it’ll be a while before I can add the gas control, but this will make it a lot more useful. One thing that might be nice to add for the local display is a simple graph of the temperature so it’s readily apparent if it’s increasing or decreasing, but there are more important things to do for now…
27 degrees does not seem like the right temperature for smoking meat in either of the three major temperature scales.
Never heard of “kallrökt”?