New Curing Chamber using an Arduino

  • Some of the links on this forum allow SMF, at no cost to you, to earn a small commission when you click through and make a purchase. Let me know if you have any questions about this.
SMF is reader-supported. When you buy through links on our site, we may earn an affiliate commission.

joshwiss

Newbie
Original poster
Jan 5, 2016
9
11
St Louis
After years of wanting to create a curing chamber I Finally pulled the trigger. Growing up we always smoked, Salmon, Venison, and Kielbasa but always wanted to get into Cured meats.  I decided now is the time I picked up "The art of making fermented sausages" and "Great sausage recipes and meat curing" subscribed to the smoking meat forums and got started.

At first I figured I would buy the components for temperature and humidity sensors but a coworker asked if I thought about an Arduino unit.

I decided to try it out picked up an Arduino Uno, relay shield, and temperature\humidity sensor after a few attempts we were able to power a fan off an on based on temperature or humidity. It took a little bit as I was just learning the code and getting my head wrapped around how it all worked.

I came across this post and how to use the Arduino for High voltage 

http://makezine.com/projects/arduino-relays-high-voltage/

and thought hey that doesnt look to bad.  when setting it up though the 14 gauge wire would not permit me to jump the power wire between the relay boards as he did in the post.


Initial look at the Arduino with the relay shield,   I accidently fried the shield and changed plans in the end to use remote boards.


Here is the serial output from the temp/humid sensor


here is the sample code it initially just had if humidity above 50% turn on if below 40% turn off by blowing on the sensor we could turn it off and on.

While working on that and testing I put the word out I was looking for a refrigerator. A coworker that has sampled my jerky and summer sausage responded back he had a french door fridge with freezer on bottom that I could have it in trade for some product that came out of it.

I got the fridge home cleaned it out took all the shelves out and removed any plastic that was not needed.






I took one shelf apart filed down and attached aluminum rods to it for hanging the meat.



I mounted the Arduino and 2 Terminal Boards to a 12X12 plastic board using nylon screws.

I decided that I wanted the entire thing to be able to unplug and move easily in case of troubleshooting so I decided to use Cat 5 and telephone cables to easily plug in or remove as needed.


We soldered and used heat shrink the cables to ensure they were secure and safe.


decided on 1 inch conduit to run power and cat 5 into the fridge.


here is the 8 relay board for inside the fridge

I placed a 8 relay 5 amp board inside the 3 gang box using the Nylon screws


here is the relay inside the gangbox, it was a tight fit and I had to trim wires down and ensure that everything was working.


mounted inside the fridge


split the outlets so they require hot to each outlet while sharing the common and ground


man that looks messy I think if i did it again i would have opted for the 4 relay board and only put 4 outlets in the box it would have freed up alot of space.


I used outdoor tamper proof outlets to ensure humidity didn't become an issue.

I decided on a 3 gang outdoor Gang box for inside


and a 2 gang on the outside

I placed a 2 relay 10 amp board inside the 3 gang box

I am missing some finished pictures of the outlet boxes here but they look good.

I put a tererium 150 watt heat lamp, an ultrasonic humidifier, a dehumidifier, and a variable speed fan inside the chamber. I am only using 4 of the outlets.


My codebase for Fermenting it took some fine tuneing on where the humidifier setting was 

This kept the temperature 85-86 and humidity right at 92%

#include "DHT.h"
#define DHTPIN 10     // what digital pin we're connected to
byte relayPin[8] = { //define relay pins here
  2,3,4,5,6,7,8,9};
//Relayboard 1 8 Relays Inside fridge
//D2 -> RELAY1 Humifier
//D3 -> RELAY2 DeHumidifier
//D4 -> RELAY3 Heat Lamp
//D5 -> RELAY4 Fan
//D6 -> RELAY5 Unused at this time
//D7 -> RELAY6 Unused at this time
//D# -> RELAY7 Not Wired
//D# -> RELAY8 Not Wired
//Relayboard 2 2 Relays Outside Fridge
//D8 -> RELAY1Out Fridge
//D9 -> RELAY2Out

char input=0;
int val;

#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(57600);
  Serial.println("DHTxx test!");

  for(int i = 0; i < 8; i++)  pinMode(relayPin,OUTPUT);
  delay(100); 
  for(int j = 0; j < 8; j++)  digitalWrite(relayPin[j],HIGH);
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

//Humidifier 88-93 Range
 if (h<88.00){
    digitalWrite(relayPin[0],0);
  }
 if (h>93.00){
    digitalWrite(relayPin[0],1);
  }

//DeHumidifier Keeps Humidity below 95
 if (h>95.00){
    digitalWrite(relayPin[1],0);
  }
 if (h<93.00){
    digitalWrite(relayPin[1],1);
 } 

 
//Heater Keeps chamber at above 85
  if (f<83.00){
    digitalWrite(relayPin[2],0);
  } 
   if (f>87.00){
    digitalWrite(relayPin[2],1);
  } 

  //fan blows at all times
  if (f<55.00){
    digitalWrite(relayPin[3],0);
  } 
   if (f>55.00){
    digitalWrite(relayPin[3],0);
  } 

//Fridge Relay Cools chamber to below 90
  if (f<90.00){
    digitalWrite(relayPin[7],1);
  } 
   if (f>88.00){
    digitalWrite(relayPin[7],0);
  } 
}

My Codebase for curing

This kept the temperature 55-56 and humidity right at 68%

#include "DHT.h"
//Temperature and Humidity sensor
#define DHTPIN 10     // what digital pin we're connected to
byte relayPin[8] = { //define relay pins here
  2,3,4,5,6,7,8,9};
//Relayboard 1 8 Relays Inside fridge
//D2 -> RELAY1 Humifier
//D3 -> RELAY2 DeHumidifier
//D4 -> RELAY3 Heat Lamp
//D5 -> RELAY4 Fan
//D6 -> RELAY5 Unused at this time
//D7 -> RELAY6 Unused at this time
//D# -> RELAY7 Not Wired
//D# -> RELAY8 Not Wired
//Relayboard 2 2 Relays Outside Fridge
//D8 -> RELAY1Out Fridge
//D9 -> RELAY2Out

char input=0;
int val;

#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(57600);
  Serial.println("DHTxx test!");

  for(int i = 0; i < 8; i++)  pinMode(relayPin,OUTPUT);
  delay(100); 
  for(int j = 0; j < 8; j++)  digitalWrite(relayPin[j],HIGH);
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

//Humidifier 70-80 Range
 if (h<58.00){
    digitalWrite(relayPin[0],0);
  }
 if (h>68.00){
    digitalWrite(relayPin[0],1);
  }

//DeHumidifier Keeps Humidity below 83
 if (h>72.00){
    digitalWrite(relayPin[1],0);
  }
 if (h<68.00){
    digitalWrite(relayPin[1],1);
 } 

 
//Heater Keeps chamber at above 55
  if (f<53.00){
    digitalWrite(relayPin[2],0);
  } 
   if (f>57.00){
    digitalWrite(relayPin[2],1);
  } 

  //fan blows at all times
  if (f<55.00){
    digitalWrite(relayPin[3],0);
  } 
   if (f>55.00){
    digitalWrite(relayPin[3],0);
  } 

//Fridge Relay Cools chamber to below 60
  if (f>60.00){
    digitalWrite(relayPin[7],0);
  } 
   if (f<55.00){
    digitalWrite(relayPin[7],1);
  } 
}
 
  • Like
Reactions: Maple
My first meat into it was the 

http://lpoli.50webs.com/index_files/Salami Sticks.pdf

I thought i knew better and went with 19 mm casings and was disappointed they were way to thin in the end I will try again with 21 this week.

I also picked up the cyclone attatchment for my grinder stuffer.


They came out tasty but a little dry which i am thinking was the fact that they were a little thin.
 
Great job and tutorial....  I have seen where some folks have plumbed the humidity stream into the chamber, leaving the humidity generator outside the chamber for more room....   Are you planning on doing that mod. in the future ??
 
I thought about doing that and or cutting into the freezer to make more room.  But for now I have enough room to make some test batches and see what product comes out.    
 
SmokingMeatForums.com is reader supported and as an Amazon Associate, we may earn commissions from qualifying purchases.

Hot Threads

Clicky