# New Curing Chamber using an Arduino



## joshwiss (Feb 15, 2016)

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.













1230151233b.jpg



__ joshwiss
__ Feb 15, 2016






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













1230151233.jpg



__ joshwiss
__ Feb 15, 2016






Here is the serial output from the temp/humid sensor













1230151232_HDR.jpg



__ joshwiss
__ Feb 15, 2016






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.













0115161933.jpg



__ joshwiss
__ Feb 15, 2016


















0114161645a.jpg



__ joshwiss
__ Feb 15, 2016


















0114161645.jpg



__ joshwiss
__ Feb 15, 2016


















0116161217a.jpg



__ joshwiss
__ Feb 15, 2016


















0127160919.jpg



__ joshwiss
__ Feb 15, 2016






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













0116161650a.jpg



__ joshwiss
__ Feb 15, 2016


















0117160957.jpg



__ joshwiss
__ Feb 15, 2016






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.













0116161520.jpg



__ joshwiss
__ Feb 15, 2016






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













0116161518.jpg



__ joshwiss
__ Feb 15, 2016






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













0116161407.jpg



__ joshwiss
__ Feb 15, 2016






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













0116161459a.jpg



__ joshwiss
__ Feb 15, 2016






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.













0117161042.jpg



__ joshwiss
__ Feb 15, 2016






mounted inside the fridge













0116161459b.jpg



__ joshwiss
__ Feb 15, 2016






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













0117161042a.jpg



__ joshwiss
__ Feb 15, 2016






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.













0117161204.jpg



__ joshwiss
__ Feb 15, 2016






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













0116161650.jpg



__ joshwiss
__ Feb 15, 2016






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.













0127161322.jpg



__ joshwiss
__ Feb 15, 2016






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);
  } 
}_


----------



## joshwiss (Feb 15, 2016)

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.













0129162138_1.jpg



__ joshwiss
__ Feb 15, 2016






They came out tasty but a little dry which i am thinking was the fact that they were a little thin.


----------



## daveomak (Feb 15, 2016)

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 ??


----------



## joshwiss (Feb 15, 2016)

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.


----------

