New to Arduino: How to Start Building a Temperature Regulated BBQ Smoker?

Hello, I'm new. I have a specific project I'd like to build and saw a Youtube where a guy did something very similar and used an Arduino, so that's how I've come here.

The project I want to build is a thermostatically controlled, wood-burning (meat) smoker. A two-chamber smoker, where one container has wood burning and the smoke enters the adjacent chamber.

The temperature needs to be 225 deg. F, plus or minus say 10 degrees.

I have a 110 VAC squirrel cage fan and I would like to control the AC voltage to the fan depending on the temperature inside the smoking chamber.

I have decades-old soldering and electronics repair skills and decades old smattering of computer programming (old school Apple Basic). My main question is where and how to start. Thanks in advance.

A simple solution will use a (bimetal...) thermo switch, to turn the motor on and off. An Arduino can do the same, if a suitable temperature sensor (NTC, thermo couple...) is provided. A solid state relay (SSR) can be used to turn the the motor on and off, best with an isolated (opto coupler) input.

AC motors can require different circuits for analogue speed control, depending on the motor type. Try to find a suitable motor driver module for your motor, with a digital PWM input or other means of digital control.

Finally you write the code that converts the actual temperature difference into an output signal for the motor driver module.

Eric_Nofobea:
How to start?

By using a subject that explains what the post is really about - will give you more replies.

For your project: indeed the very basic is just a thermal switch, switching your fan on and off. Depending on how quick your system reacts and how accurate the switch is, it may be enough already to keep it within that temperature range, but not likely.

Much better: microprocessor with thermocouple (maybe other types of heat sensors will do but thermocouples won't die when exposed to direct fire, unless they have plastic housing), some form of speed control for the fan (a triac may work), and the PID library for controlling the output based on the input.

Use a thermocouple.

.

wvmarle:
By using a subject that explains what the post is really about - will give you more replies.

Thanks. I read the forum's "Stickies" etc... on how to post a question, and I've been posting on forums for years, so I'm fully appreciative of how important it is to avoid a very vague title in the post, but I really meant it in both ways. "How to start" in the technical sense of the project, but also "How to start" in learning about the Arduino, what it does, how it works, etc... I guess in this sense of the question, I was looking for youtube videos, or technical manuals or something.

Thanks to all for the posts. I'm going to spend the next couple of days grinding on them, and will post back once I feel I've learned enough to be able to do so.

DrDiettrich:
A simple solution will use a (bimetal...) thermo switch, to turn the motor on and off. An Arduino can do the same, if a suitable temperature sensor (NTC, thermo couple...) is provided. A solid state relay (SSR) can be used to turn the the motor on and off, best with an isolated (opto coupler) input.

AC motors can require different circuits for analogue speed control, depending on the motor type. Try to find a suitable motor driver module for your motor, with a digital PWM input or other means of digital control.

Finally you write the code that converts the actual temperature difference into an output signal for the motor driver module.

Okay so first I don't think this is going to be "binary" on/off control. The design I have imagined relies 100% on forced air flow. There will be no passive air flow so without the fan moving a minimum amount of air, the fire (coals, really) will die. So there will be a minimum "always on" level for the fan, with an emergency "total off" state in case there is a fire in the meat smoking chamber (grease, and the temps could surge to 500 deg. F). I would set 300 deg. F. inside the cooking/smoking chamber as an "Emergency Off" situation, where the whole thing is choked down to zero airflow for as long as it takes for the temperature to come down to say 200 deg. F, the minimum cooking temperature.

The whole purpose of the system is to maintain temperature at exact 225, and depending on how much wood is in the firebox, and how well it is burning at any give time, will determine how much air needs to be forced into the firebox. Here's a little table to make this more clear:

Lots of wood + poor burning = lots of air
moderate wood + moderate burning = moderate air
very little wood + poor burning = lots of air
very little wood + moderate burning = lots of air

Etc... this is all very rough and may be illogical. I will need to do field testing, etc... The point here is that there are variables to consider. My thinking is that a full firebox that is fully involved in the burning is going to need a lot less air than an almost empty firebox that is fully involved in the burning.

Another thing to consider is that I don't want so much airflow that ash from the firebox gets into the cooking/smoking chamber and gets on the meat. There will need to be some physical screening, but also some rpm limits on the motor to limit cfm airflow in order to limit the ash traveling out of the firebox. Instead of having (for example) 20 cfm for 2 minutes, the fan might need to run at 10 cfm for 4 minutes, before the temp rises to (for example) 235 F, and then the fan comes down to a normal "sustenance" rpm and cfm.

This is my initial approach, and is subject to change. But this kind of complexity is why I'm looking at Arduino, as it is my assumption that once the system is physically established and running, programming changes should be able to produce the desired effect, which is a constant 225 deg. F for extended periods of time. Example, a brisket (or "Apron Steak") might take 8 to 10 hours.

It is also my thought that strictly regulating the firebox by it's air intake will increase the efficiency of the burning. Significant fluctuations in temperature wastes the fuel (wood), burns and dries-out the meat (too hot), and increases the cooking time (too cool). Wasted fuel may mean having to interrupt the cooking/smoking process in order to add more, which increases the cooking time.

I'm also considering making a "deluxe" model, which will incorporate LP gas in order to strictly regulate the temperature no matter what the firebox is doing (say it runs out of fuel after 6 hours and you need heat for another 4 hours). The system will detect that there isn't enough heat coming from the firebox for a extended period of time (say you give it full maximum air for 20 minutes and the cooking/smoking box temp falls continuously during that time. At that point the LP gas circuit "kicks in" and finishes the job with a warning light (or other signal) sent to the Human Operator that the firebox is out.

The whole point of this device is to slow-cook or smoke a brisket for the full 10 hours with ZERO involvement from the Human Operator. If anyone here has every smoked meat, you will understand how tedious and time consuming it can be. You have to mess with it at least once an hour. More air in, less air out, add more wood, etc... and every time you open the cooking chamber you add 15 minutes or more to the cooking time. I want to make a brisket smoker for the everyman, and then I want to sell them to untanned northerners who have never had authentic Texas Bar-b-que. Make the thing idiot-proof, and they will come. At least that's the dream.

An internet search for "arduino controlled bbq" turns up lots of similar, finished projects.

This search turns up some others.

I would search up the Heater Meter on the Virtual Weber Bullet forums. There's a really nice project, and even if you hoe your own road you could get a lot of geat info. It would be a good starting point.

Yesterday I learned the basic concepts of thermocouples and how two dissimilar metals will generate a very small electric voltage when heat is applied. I also understand that a secondary device is need both to read that minute voltage and convert some kind of signal to send to the Arduino.

However what I don't understand is this "cold temperature" reference I've seen mentioned several times. I don't know what this means, or how it applies. I get the idea that the thermocouple voltage is a standalone value and that converting it to represent actual temperature requires a reference point (another temperature), but I have no idea what that means in practical terms. Do you have a 2nd thermocouple for ambient air? Some other temperature sensing device? How do you account for the fact that ambient air temperature varies? It's never constant. If you can't define the actual temperature at the thermocouple, how can you define the temperature of the ambient air? If you can define the temperature of the ambient air, why not use that same method to determine the actual temperature of (in my case) the "cooking chamber".

All very confusing to me. Any help appreciated.

However what I don't understand is this "cold temperature" reference I've seen mentioned several times.

In situations where the ambient temperature changes this may become a problem.
However with an application like this I wouldn't worry about this too much.

Basically you should run the thermocouple wires all the way to your amplifier, having the connections in a temperature controlled enclosure.
Avoid using plain copper wire interface cables where dissimilar metals would cause junctions that are temperature sensitive and therefore produce tiny voltages.

Use a amplifier similar to the one mentioned in post #3 (MAX31850K)

.

A thermo voltage occurs wherever two different metals meet together, i.e. not only at the tip of the thermo couple, but also at the other ends of the thermo wires. If all junction points in a loop have the same temperature, the resulting thermo voltage is zero. If you have one temperature at the tip of the thermo couple (hot junction), and another temperature at the other ends of these wires, the resulting voltage corresponds to the difference between both temperatures. Thus its essential to know the temperature of that "cold junction", because it adds to the temperature derived from the measured thermo voltage. Another temperature sensor is required for the cold junction temperature, or a heater that keeps the cold junction at a fixed (known) temperature.

IOW a thermo couple produces a voltage, that is proportional to the difference between the cold and hot junction temperature. A thermo couple only extends the range of measurable temperatures, the precision depends on the knowledge of the exact cold junction temperature. The cold junction point exists where the thermo wires connect to copper wires. That's why thermo couple wires can not be extended with ordinary (copper) wires, because this would move the cold junction point to that connection.

larryd:
In situations where the ambient temperature changes this may become a problem.
However with an application like this I wouldn't worry about this too much.
.

It's an outdoor BBQ/smoker. Temps could be as low as 40 F and as high as 100 F. That's 60 deg. difference. If I need a "reference temperature" and the reference temperature varies 60 degrees, then my measured temperature will vary that much also. You said it's a problem. Then you said don't worry about it. But you didn't say why. And you didn't say a bunch of other things. Why SHOULDN'T I worry about it? What magic thing is either going to happen or not happen, that would be a problem maybe for someone else, in some other situation, but for some unknown and magic reason, it won't be a problem for me and my situation.

Again, I don't understand the whole point of this "reference temperature" thing. I posted a clearly worded statement about how I didn't understand it. I understand it even less now, but now I'm aggravated. Should I repost the entirety of my previous post all over again, in order to hammer-home the fact that I don't understand what a reference temperature is? Why it's necessary? How you deal with the fact that it's necessary? Etc..???

DrDiettrich:
IOW a thermo couple produces a voltage, that is proportional to the difference between the cold and hot junction temperature. A thermo couple only extends the range of measurable temperatures, the precision depends on the knowledge of the exact cold junction temperature. The cold junction point exists where the thermo wires connect to copper wires. That's why thermo couple wires can not be extended with ordinary (copper) wires, because this would move the cold junction point to that connection.

Well okay but this is a BBQ. I posted that right from the start. And the consensus immediately was to use a thermocouple. Then a few posts down it's learned that a thermocouple is a royal pain the ass. My ambient temperature is going to change by 60 degrees. meaning the "cold" end of the wire, thermocouple, whatever is going to be 80 degrees while the end is 225. Or the cold end will be 50 deg, while the hot end is 250. Or the cold end will be 90 deg while the hot end is 190.

We have a mash of data, and amplifier, an Arduino and now what? None of this makes any sense and it seems the more "answers" I get, the more convoluted the whole thing becomes. Now I'm at the point that I'm starting to think that all the time I spent learning about thermocouples has been wasted. Do I need to research a special "heater" circuit, and have a "known" temperature for the "cold" side? If I can know the "cold" side, why can't I simply use this method (whatever it is) to know what the "hot" side is. That's all I want to know. I'm pretty sure I laid the whole situation out. Pretty sure I asked basic questions, and pretty sure it's all very common sense. I want to know the temperature inside the cooking unit. Something about thermocouple. Something about hot, cold, known, reference, amplifier and Arduino. None of this makes any sense at all. This is a simple circuit. It cannot possibly be this difficult to answer this simple question.

I'm quite sure you will be able to simply compensate for the cold junction temperature by adding a simple thermistor (those things are super cheap, easy to implement and give a pretty accurate absolute temperature - usually within 1-2 deg C) to measure the temperature of the cold junction.

Measuring high temperatures is just about always done using a thermocouple, for the simple reason that those things are all metal and thus can withstand really high heat.

Seems you have all the steel formed and welded together. If so, can we see a picture and point out when the fans and sensors will go.

Paul

Necrothread

dave-in-nj:
Necrothread

Damn! Caught again!

Paul

If your temperature is above 250°F, close down the vents to reduce the amount of oxygen in order to reduce the temperature. If your temperature dips below 225°F, open up the vents fully to allow more oxygen in to increase the temperature. Learn more about temperature control. If you need more info, then you can visit here..