Low Cost Beer Fermenter

by ricklloyd24 in Circuits > Arduino

1389 Views, 16 Favorites, 0 Comments

Low Cost Beer Fermenter

FermenterPic.jpg

Commercial beer fermenters/chillers cost between $500 and $2000. This design should cost less than $100 depending upon how much you pay for the refrigerator. This design also includes a heater so you can ferment beer regardless of the outside temperature.

The beer fermenter uses an ESP32 microprocessor to read temperature sensor(s), control a refrigerator, control a small heater and provide display and status.

Features:

  • Low cost (Less than 100 dollars)
  • Automatically changes temperature for Lagers and Ales
  • Has a cold crash mode at the end of the fermentation period
  • Wi-Fi display from a phone or computer
  • Accessible anywhere in the world with Port Forwarding
  • Sends e-Mail and Text message alerts
  • Data Logging
  • Temperature Stability +/- 0.75 degrees F
  • Works with all DHT and/or MCP9808 Temperature Sensors
  • Up to 3 sensors can be used

The heater and refrigerator are deactivated by time instead of temperature due to hysteresis. If you try to work on the temperature change, the temperature will overshoot the goal. For example, when the heater is turned on the heating element is turned on and heats up. When the heater is turned off the heating element is still hot and releases energy until it reaches ambient temperature.

By this method you can keep the fermenter at a very precise temperature and you don't have to worry about the refrigerator and heater constantly cycling.

Hardware

Fermenter.jpg

The above block diagram shows the hardware used in this project.

Heater/Refrigerator

Heater.jpg

Heater

I used a Honeywell HeatBud Ceramic Space Heater, Black – Energy Efficient Ceramic Heater with Two Heat Settings for Home, School or Office Heater. This room heater offers multiple safety options including Overheat Protection, tip over protection and a cool touch handle. It also features easy-to-use one button controls and fast, even heating using only 250 watts.

Any little heater should work. The above figure shows the one I bought.

Refrigerator

I bought a used refrigerator on Craigslist for $35. The only real criteria is that your fermenter vessel fits in the fridge.

Temperature Sensors

DHT.jpg
MCP9808.jpg

This project works with two different types of temperature sensors DHT and MCP9808.

DHT22/AM2302

The Digital Humidity and Temperature (DHT) Sensor Module is compact and easy to use module.

Features:

  • Main Chip: AOSONG AM2302 High Sensitive Temperature Humidity Sensor
  • Single-bus digital signal output, bidirectional serial data
  • Temperature range: -40 to 80 degree celsius,
  • Temperature measurement accuracy: +/- 0.5℃ degree celsius
  • Humidity measuring range: 0~100%RH,
  • Humidity measurement accuracy: ±2%RH

Specifications

  • Power supply 3.3-6V DC
  • Sensing element Polymer capacitor
  • Operating range humidity 0-100%RH; temperature -40~80 Celsius
  • Accuracy humidity +-2%RH(Max +-5%RH); temperature <+-0.5 Celsius
  • Resolution or sensitivity humidity 0.1%RH; temperature 0.1 Celsius
  • Repeatability humidity +-1%RH; temperature +-0.2Celsius
  • Humidity hysteresis +-0.3%RH
  • Long-term Stability +-0.5%RH/year
  • Sensing period Average: 2 seconds

MCP9808 Precision Temperature Sensor

This MCP9808 digital temperature sensor is low cost temperature sensor with a typical accuracy of ±0.25°C over the sensor's -40°C to +125°C range and precision of +0.0625°C. It has a wide voltage range of 2.7 to 5.5 volts. You can typically buy them for about 6 dollars. The following is a picture of the typical device. The device works on the I2C bus that is explained in the next section.

I2C Bus

The I2C bus is a standard bidirectional interface that uses a controller, known as the master, to communicate with slave devices. A slave may not transmit data unless it has been addressed by the master. Each device on the I2C bus has a specific device address to differentiate between other devices that are on the same I2C bus. The I2C bus can support 255 different addresses with a two wire interface.

All Arduino compaitible boards support the I2C bus. The MCP9808 has 3 address pins so you can connect up to 8 on the I2C bus. The base address 0x18.

The I2C bus is supported by the Arduino Wire library

Relays

Relay.jpg

The following are the specifications for the relay I selected.

  • 30VDC 250VAC Load The power switch is compatible with 10A 250VAC and 10A 30VDC load.
  • Optocoupler Isolator:3V/3.3V power relay module supports photocoupler isolation control.

The above schematic provides an overview of the connections. I included a picture of my final product. I got the line cord off a food blender that was broken. The line cord has 16-gauge wires. The plug and the box were pieces I had laying around. The relay is enclosed inside the electrical box. The plug in the box goes to the freezer. I broke the power tab in the AC socket, so each socket is individual. I wired one socket to the relay normally open connection and the other to the relay normally closed connection. When the freezer is on the power socket is off and when the freezer is off the power socket is on.

A second relay box is used for the heater.

ESP32 Processor

ESP32.jpg

For this project I selected the FREENOVE ESP32-WROOM development board. The main reason is the breakout board that is available for this board. The breakout board is great. I prefer to use a Arduino power supply instead of powering board from a type C USB connector. The above figure shows the final product.

I drilled a hoe in the refrigerator door to run the wires. The main reason is the MCP9808 sensor wire can only be about 1.5 feet. I used plumbers putty to seal the hole. It is water tight and a good insulator and you can remove it easily.

In the picture you can see the processor on the breakout board and a power distribution strip for 3.3V and Grounds. I had one available so I used it. You can use small wire nuts instead of the strip.

The hardware information is available at https://github.com/RickLloyd24/Beer-Fermenter

Software

iphonescreenshot.jpg

The Fermenter Program controls the heater and refrigerator. The Arduino configuration for this board is defined on the first line of the main program. The Fermenter program uses an Asynchronous Web Server to host the web page display. This program also gets the time of day from a Network Time Protocol (NTP) server, sends emails, provides a Domain Name System (DNS) server, (so you don’t have to type in IP addresses), provides an Over the Air (OTA) program update capability and provides a Web Serial Interface for debugging. The above figure is a sample of what the main web page looks like.

The first line is the title of the web page. The second line is the average temperature of the refrigerator.  The third line is the day of week, day/month/year date followed by the time of day (local time). The next line is the number of days the fermenter has been running. The next line is the temperature goal. This is the temperature you want the program to keep the refrigerator at.

The status line provides status information and alarm information.

The temperature line provides the current temperature reading of the temperature sensors. You can have up to three sensors. The “Using #1” shows the sensor that is currently being used to control the refrigerator temperature. The refrigerator is controlled by the current temperature not the average temperature. 

The next line shows the warmest and coldest temperatures that have occurred. If the outside temperature is changing below and above the temperature goal, then the refrigerator temperature will move 1.5 degrees above and below the goal temperature. If the outside temperature is always above or below the goal temperature, the temperature will change 0.75 degrees. The default tolerance is 1.5 degrees, but you can change this if you want it to be tighter. You will need to adjust the Fridge On time and the Heater On time if you change this.

The next two lines provide the refrigerator and heater status. They tell you if they are currently on or off and the percentage of time, they have been on during the fermentation process.

The next line shows how close the temperature was to the goal the last time the heater or refrigerator were turned on. The last time the heater was turned on the temperature was higher than the goal by 0.2 degrees. The last time the refrigerator turned on the temperature was below the goal by 0.2 degrees. Above the goal is positive and below the goal is negative. You can use these values to adjust the heater and refrigerator on time. Wait until these values are stable before using them. When the heater of refrigerator turns off the values change until the maximum or minimum value has been reached.

The next line is the Reboot count and the Received Signal Strength Indicator (RSSI) in dBm. If there is a power failure or a program glitch, the program will reboot and continue operating where it left off. The RSSI level is the Wi-Fi signal strength. A level above -60 is very good. The signal normally needs to be above -80 dBm to connect to the Wi-Fi. 

The radial selection indicators are used to select the mode. The modes are described later.

The three buttons perform the following functions:

·        Clr – Clears the Coldest, Warmest, and average temperature values.

·        New Batch – Starts a new fermentation cycle. The Days Running, Reboot count, Heater On Time, and Fridge On time are set to zero. The statistics are also reset.

·        Refresh – Displays the latest information.

The next line displays the temperature sensor values in the freezer. Depending on how many you have installed this line will either have none or three values. The next line is the IP Address. This is a reserved address that I have forwarded to the internet for access away from home. If this address changes I know there is something wrong with my router.

The last lines just display reminder information.

Software Details

The software is available at https://github.com/RickLloyd24/Beer-Fermenter There are also software writeups to explain key features.

All the writeups assume that you are an experienced Arduino user. I don't include how to install Arduino, installing libraries or the Arduino interface.