Smokin'Pi

Raspberry Pi Based Propane Smoker Controller

This project is maintained by Noggin01

Smokin'Pi

The Smokin'Pi is a solution to controlling your propane smoker by adjusting the flow of propane via a servo controlled valve. A needle valve is used to improve the resolution of the controller and to also allow increased torque output from the servo motor. Control is provided via a web interface.

Temperature Monitoring

Temperature monitoring is achieved through the use of multiple thermistor probes. Since the Raspberry Pi doesn't have any analog inputs available, an ADC IC with SPI communication was chosen. The selected part is a TI TLC1543IN.

The TI TLC1543IN is designed to run from a 5v power rail. The SPI inputs on the TLC1543IN are compatible with 3.3v signaling, but the outputs are driven to 5v. Simple circuitry is utilized to ensure that the voltage presented to the Raspberry Pi does not exceed 3.3v.

Temperature Control

Temperature control is achieved via a motorized needle valve which limits the flow of propane to the burner. The propane pressure regulator is still required and the main temperature knob present on the smoker should still be utilized as a manual shutoff. During the smoking process, the main temperature knob should be left fully open so that the needle valve will be the limiting component.

A multi-turn servo is physically attached to the handle on the needle valve. The Raspberry Pi's PWM output is used to control the servo. Servo signaling is not true PWM as neither the duty cycle nor the frequency of the signal matters. The control mechanism of the signaling is derived solely from the positive pulse width of the signal. Despite the fact that the servo control signal isn't truly a PWM signal, a PWM peripheral on the processor is fully capable of driving the servo.

The control signals to a servo are not standardized, so on different models of servos, the same pulse widths will result in different physical positions of the servo. Each model of servo will need to be tested when used in this project. Testing should be done to determine when the servo is at its physical limits so that the servo will not be instructed to a position beyond its capabilities. Additional testing is also needed to determine when the servo is at the physical limits of the needle valve.

PID Controller

A PID controller is used to close the loop on the setpoint vs the actual temperature.

From the PID article on Wikipedia:

A proportional-integral-derivative controller (PID controller) is a generic control loop feedback mechanism (controller) widely used in industrial control systems. A PID controller calculates an "error" value as the difference between a measured process variable and a desired setpoint. The controller attempts to minimize the error by adjusting the process control inputs.

The PID controller algorithm involves three separate constant parameters, and is accordingly sometimes called three-term control: the proportional, the integral and derivative values, denoted P, I, and D. Simply put, these values can be interpreted in terms of time: P depends on the present error, I on the accumulation of past errors, and D is a prediction of future errors, based on current rate of change. The weighted sum of these three actions is used to adjust the process via a control element such as the position of a control valve, a damper, or the power supplied to a heating element.

Logging

A SQL database is used to log the state of the entire system. The logged values include the following:

Web Interface

Apache is used to provide a web interface which allows for remote monitoring and control of the system. Setpoints for cabinet temperature and the finishing temperature for each of the meat probes may be specified on the web page. Current temperatures of each probe, meat and cabinet, may be monitored from the web page.

The web interface also allows for the database to be downloaded in an Excel compatible csv format.

Safety Precautions

A K-Type thermocouple is utilized to detect the flame from the burner. In the case that the flame is extinguished, the propane needle valve will be closed. In order to light the flame, this safety feature must be temporarily bypassed via the web interface. The bypass will remain active until either 5 minutes have passed or flame is detected. During bypass, the needle valve will be fully opened. The propane may be manually shut off through the smoker's main control knob.