Tag Archives: Temperature Monitoring

Mini-BIAB Electric Turkey Fryer Mod–Part 3

Now that I have finished putting together the necessary circuits to read the thermistor and control the heating element, I need to provide some simple circuits for the user interface.

The Front Panel

Below is a mock up of what I want the front panel to look like:

ControlPanel

At the top right I will have a 16×2 LCD Display with a series of switches to control the heating element and set temperature for the temperature monitoring service.

  1. Heater Override – This switch will allow the user to cut off the return signal from the main circuit board back the Turkey Fryer 12V Relay to keep from accidentally dry firing the heating element.
  2. Heater Engage – This push button is used to signal the Netduino that the heater can be engaged and until pushed will not allow the Temperature Service to turn the heating element on.
  3. Heater Dis-Engage – This push button is used to signal the Netduino that the heater should be dis-engaged immediately, kind of like an all-stop button.
  4. Temp Up – This push button will raise the temperature monitoring service’s set temperature by one degree.
  5. Temp Down – This push button will lower the temperature monitoring service’s set temperature by one degree.

This is a pretty simple interface, but it provides all the basic necessities to control the Turkey Fryer during a brewing session.

The Main Board Connections

Below is the schematic for the main circuit board of the system along the right hand side you can see the various connectors that will be used to wire the switches into the Netduino:

Main_Board_Schematic

I have wired each of the push button switches using a pull-down resistor configuration, this keeps the signal to the Netduino ports low until the push buttons are pushed connecting the ports to 3.3V. The switch connections are wired into a series of header pins that will be used to connect each switch to the main board.

I have also ran Netduino Pin5 to a second screw terminal that connects to a Peizo speaker that is used to provide an audible signal when the temperature of the Fryer reaches the set temperature and again when a mash step completes. I’ll explain the code in a later post.

There is one last connector in the upper left of the schematic and this one connects the main circuit board to the LCD Display Daughter board. This connector extends the Netduino SPI ports 10, 11 and 13 to the daughter board along with 5V and Ground which are used to power the LCD Display.

In the next post I’ll cover the LCD Display Daughter Board and how you can use 3 Netduino pins to drive a 16 x 2 LCD Display.

Till next time, stay sanitized and keep an eye on those fermentation temps and I’ll catch you for a pint around the keg.

Jim Lavin – Otaku Brewer

Mini-BIAB Electric Turkey Fryer Mod–Part 2

It’s been a while since I started modding out the Electric Turkey Fryer to build out an Electric Brew In A Bag System. Between work, brewing for competitions and several other activities I finally got to spend the last couple of weeks finishing up the research to get the system up and running.

My major goal for this project was to use as much of the existing components from the Turkey Fryer, yet increase the precision of the temperature monitoring and control of the heating element to make the system as accurate as possible to handle a multi-step mash profile required for brewing good beer. To do this I needed to figure out what kind of thermistor the existing heating element had and build out the appropriate circuits to monitor the temperature and drive the existing relay and heating element.

Cracking the Thermistor

There are a lot of links on the internet for the Fryer unit, but all of them are mostly basic usage documentation about the unit, I couldn’t find anything that told me what type of thermistor was being used by the system. So I had to reverse engineer the unit so I could get some type of idea what I was dealing with.

For those of you who are new to electronics or sensors, there are two types of thermistors generally available, Positive Temperature Coefficient (PTC) and Negative Temperature Coefficient (NTC). You can identify the type of thermistor by it’s resistance curve as you heat it up, if the resistance rises with heat, it’s a PTC thermistor, if the resistance drops with heat, you have a NTC thermistor. So I hooked up my multi-meter and held my SMD hot air gun to the probe and watched as the resistance dropped with the rise in temperature. Great! that meant I had a NTC thermistor, next I needed to come up with the proper coefficients so I could calculate the temperature based on the resistance.

Now this is easy to find if you know the manufacturer and model of the thermistor, but for me that information could not be found, so I had to come up with another way to get them. This involved hooking up the thermistor to my Netduino along with a second temperature probe that I knew how to read and then record the resistance values and the temperature values so I could calculate the coefficients using the tools from the Thermistor Library on sourceforge.net.

Once I had a set coefficients, I used the code over at Arduino Playground as a basis to read the thermistor using the analog input of the Netduino and repeated the process of capturing resistance and temperature values until I got a set of coefficients that gave me temperature readings that matched my other probe.

My circuit ended up being a voltage divider using two resistors in series with the thermistor and taking the analog reading from the middle of the ladder. The resistance I ended up using for the second half of the ladder was 1.47M ohms. This needed to be as close to the 1.5M ohms that the thermistor reads at 25C/75F which is considered the base resistance for the thermistor. This way both resistances should provide equal values at the base temperature which is needed by the Stein-Hart quadratic polynomial equation used to calculate the temperature at a given resistance.

You can see the schematic for the circuit later in this article. Look for the Fryer Connector in the lower left of the schematic.

Driving the Relay

Next I needed to drive the relay which in turn would switch power to the heating element. The existing Fryer Control Unit used the 12V AC from the transformer and converted it to 12V DC to switch the relay on and off. I figured this would be perfect for me as well.

One thing you can’t easily do is use voltages greater than 3.3V with the Netduino controller, so I need to use a transistor to switch the 12V DC on and off to power the relay. This way I could safely drive the relay with a higher voltage without worrying about the Netduino.

I also needed to convert the 12V AC to 12V DC so I didn’t have to have yet another power source to drive the relay. Well this was pretty simple, all I needed was a bridge rectifier built from 4 diodes, a couple of capacitors to filter out the resulting wave and then run it through a power regulator to get a nice 12V DC output.

After a little research I came up with the circuit below on the right:

Main_Board_Schematic

As you can see I apply the 12V AC signal to the bridge created by the diodes and then filter the resulting signal through a 100uF polarized capacitor and then with a .33uF capacitor before it connects to the the LM7812 voltage regulator. The output is then filtered with a .1uF capacitor along with a second 100uF polarized capacitor. The .33uF and .1uF capacitance values come straight from the LM7812 datasheet. The other two came from some rough calculations to ensure I had enough voltage stored to smooth out the voltage dips between the peaks in the modified output created by the bridge rectifier. I also cheated a little and pulled the values of the capacitors from the original control board when it looked like my calculations of 400uF was going to be a little too much.

The connection to the relay is then taken from the positive and negative leads of the filtered output. I then use a diode to prevent a reverse voltage on the circuit when the relay shuts down and the NPN transistor is used as a switch to allow the voltage to flow to the 12V relay when the Netduino raises Pin 9 high.

I also put a switch in series between Pin 9 of the Netduino and the transistor to provide a safety measure to make sure the system does not power up the heating element unintentionally. This was needed since the pins on the Netduino are all raised high when the unit powers up. Without it the relay could get power when the Netduino is powered on causing a dry fire burning the element out.

Connecting the Old to the New

With the circuit to drive the  relay and heating element and the circuit to read the thermistor complete, I needed a simple way that I could run the old connections to the Netduino.

Temp_Controller_Connections

You might remember the picture above from my last post. Here you can clearly see that I needed to take 3 short leads and extend them to about 6 feet where the Netduino would be. To accomplish this I spliced the connections to the end of a Cat6 Ethernet cable. I used the following connections:

  1. 12V AC connections – Blue and Blue/White
  2. 12V DC connections – Orange and Orange/White
  3. Thermistor connections – Green and Green/White

The Ethernet cable is then connected to the breadboard via a RJ45 wall jack that connects to a series of screw terminals on the breadboard. You can see these connections in the schematic above in the lower left of the schematic labeled as Fryer Connector.

Here is a picture of the entire control circuit laid out on a breadboard connected to the Fryer:

WP_000089

You can see the RJ45 Connector coming into the screw terminals at the top along with the connections to the bridge rectifier and the return from the AC/DC Convertor on the right.

That’s about it for interfacing with the old Fryer Control Unit, In my next post I’ll discuss the Human Interface connections for the Temperature Controller as well as the LCD Display.

Till next time, stay sanitized and keep an eye on those fermentation temps and I’ll catch you for a pint around the keg.

Jim Lavin – Otaku Brewer

The DIY Brewery Temperature Logger Project

One of the most important things in brewing beer is temperature control. Matter of fact, one of my fellow club members is very fond of saying, “Come back and talk to me about brewing great beer after you have temperature control in place, because If you don’t have temperature control, there is no way you can brew great beer.” And I have to agree he is right, temperature control plays an important part of the entire brewing process. Not only do you need temperature control during the mashing process, you also need it during the fermentation, lagering and storage processes.

As part of building my Electric Brew System I’m going to need to control the temperature of my mash and I want to be able to program a mash profile and let the system notify me of significant steps in the process. To manage temperature you have to monitor it, so I started out building my controller with baby steps.

First I wrote the simple things like the control interface and services and then I broke the various parts of the automation control into separate circuits that could be built and tested by themselves.

I started off with the temperature monitoring circuit. What I wanted to be able to do, was set the interval that the microcontroller would read the temperature sensor and then log that to a file on a SD Card that I could then use to display a graph of the temperature over time. The DIY Brewery Temperature Logger project is the result of that first phase of development. It is a Netduino Plus Project that provides a web-based temperature monitor.

This project has several parts:

CodingSmackdown.ControlInterface – A jQuery based website that is hosted on the Netduino Plus’ SD Card and served using the NeonMika.NETMF.Webserver. It provides a self updating view of the temperature history as well as a settings tab that allows you to change the logger’s settings as well as the Netduino’s Network settings.

CodingSmackdown.Services – A C# .NETMF Library that contains the various threading libraries to handle the NETBIOS Name Resolution, NTP Time Client and Temperature Logging. It also includes classes to handle accessing the various GPIO and Analog pins on the Netduino and other various base and support classes used by the project.

CodingSmackdown.TemperatureMonitor – A C# .NETMF Application that is responsible for loading up the various services at start time and provides classes that are used by the NeonMika.NETMF.Webserver to process jQuery requests sent by the web client.

JSONLib – A C# .NETMF Library used to format the various responses in JSON format for use by the web client. The original code was written by Wouter Huysentruit and can be found over at http://code.tinyclr.com

NeonMika.NETMF.Webserver – A C# .NETMF Library that provides the entire web server for the project. The original code was taken from the NeonMika.NETMF.Webserver project here on codeplex over at http://neonmikawebserver.codeplex.com This version was paired down specifically for this project and to meet the memory constraints of the Netduino platform. For the latest version please reference the original project.

Below are pictures of the user interface and schematics of the temperature sensor circuit, so you can build it yourself.

The main page retrieved by navigating to http://netduinoplus/index.html

TempLogger_Index_Page

The Settings Tab that can be used to change the Temperature Logger’s behavior and network settings

TempLogger_Settings

The breadboard layout of the temperature sensor circuit

TempLogger_breadboard

The schematic of the temperature sensor circuit

TempLogger_schematic

Images of the prototype Netduino Shield that holds the temperature sensor circuitry

TempLogger_Shield1

 

TempLogger_shield2

You can find the source code and updates to the project at http://diybrewerytemplogger.codeplex.com/

Till next time, stay sanitized and keep an eye on those fermentation temps and I’ll catch you for a pint around the keg.

Jim Lavin – Otaku Brewer