June 13th

When we moved I sadly had to part with my fermentation fridge. Since then I have been trying to ferment bread either on the counter (too cold – takes forever) or in the oven with just the light on (too hot – dough comes out like soup).  Today I made a mobile fermentation assistant (i.e. temp controller+heater) that I can put in the oven whilst my bread is inside. I haven’t used it with a loaf quite yet, but based on previous experience I don’t really see any risk of it not working. 

The Parts, the essence. 

Tools i used:

  • Soldering iron.
  • Pliers, wire strippers

Some pictures and what the hell is going on here?

Main thing on its portable plank of wood.

HEATER:

The heater is a paint can with a lightbulb in it. Light can be bad for certain types of fermentation such as beer and kombucha, hiding the bulb in a paint can helps evenly dissipate heat and shields the light. 

The picture on the right shows a lightbulb on a base I found. This sits inside the paint can. I drilled a hole in the lid of the can to pass the wires through and wired those to a cable that had a plug end on it. The green wire (ground was also screwed onto the paint can so i don’t electrocute myself accidentally if my wiring sucks or something melts. 

THE BRAIN:

From left to right 

  • plug socket (paint can heater plugs into here)
  • Thicker black wire trailing off to the upper right. This is a cable with a plug end on it. It plugs into the wall. Half of it is wired to the plug socket shown, the other half is wired to the relay. 
  • Solid state relay – the “live wire” is broken by the relay so the lightbulb in the paint can won’t turn on without the relay switching.
  • Arduino! Red and blue wires trigger the relay to connect the 120v for the plug. 
  • The cable going off and to the middle right is the temperature probe. 

Above is a schematic. It doesn;t show the whole plug socket thing but you don’t really need that. 

So I hooked this up and busted out some code. Was working as intended. I hardcoded the temp to 72. I also double checked the temp probe was working as intended by calibrating it against another thermometer. 

All donezo!

The arduino code i pushed to the UNO

Also don’t forget to download that temperature sensor library. 

—-

This Arduino sketch reads DS18B20 “1-Wire” digital

// temperature sensors.

// Tutorial:

// http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html

#include <OneWire.h>

#include <DallasTemperature.h>

// Data wire is plugged into pin 3 on the Arduino

#define ONE_WIRE_BUS 3

// Setup a oneWire instance to communicate with any OneWire devices

OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 

DallasTemperature sensors(&oneWire);

// Assign the addresses of your 1-Wire temp sensors.

// See the tutorial on how to obtain these addresses:

// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

DeviceAddress insideThermometer = { 0x28, 0xFF, 0xA5, 0x00, 0xA4, 0x15, 0x04, 0xB3 };

//declare varibles

int ledpin = 13;

float val;    // variable to read the value from the analog pin 

void setup(void)

{

  // start serial port

  Serial.begin(9600);

  // Start up the library

  sensors.begin();

  // set the resolution to 10 bit (good enough?)

  sensors.setResolution(insideThermometer, 10);

 //for the LED

 pinMode(ledpin, OUTPUT);

}

float printTemperature(DeviceAddress deviceAddress)

{

  float tempC = sensors.getTempC(deviceAddress);

  if (tempC == -127.00) {

    Serial.print(“Error getting temperature”);

  } else {

    Serial.print(“C: “);

    Serial.print(tempC);

    Serial.print(” F: “);

    Serial.print(DallasTemperature::toFahrenheit(tempC));

return tempC;

}

void loop(void)

  Serial.print(“Getting temperatures…\n\r”);

  sensors.requestTemperatures();

  float heater = sensors.getTempF(insideThermometer);

  Serial.print(“Inside temperature is: “);

  printTemperature(insideThermometer);

  Serial.print(“\n\r”);

//for the potentiometer to control the temp

   val = map(val, 0, 1023, 0, 220);     // scale it to use it with the servo (value between 0 and 180) 

   Serial.print(“set temperature is:”);

   Serial.print(“\n\r”);

   Serial.print(val);

   Serial.print(“\n\r”);

   Serial.print(“actual temperature is:”);

   Serial.print(heater);

   Serial.print(“\n\r”);

//conditional statement 

  if (heater < 71){

  digitalWrite(ledpin, HIGH);

  }

  if (heater > 73){               

  digitalWrite(ledpin, LOW);

  }

   delay(3000);

}