Project in progress
Fresca Versatile Temperature Controller

Fresca Versatile Temperature Controller © GPL3+

Control temperature for up to 8 separate processes! Cooling/heating control with humidity sensing. Based on Arduino and DS18B20/DHT22.

  • 27 respects

Components and supplies

Ph a000067 iso (1) wzec989qrf
Arduino Mega 2560
Sensors / Temperature, Thermal
DFRobot 1602 LCD Keypad Shield For Arduino
Main display device and key inputs
7 segment display (generic)
Temeprature monitoring displays
Relay (generic)
5v Temperature control switching
10167 01
DHT22 Temperature Sensor
Temperature/humidity sensor

Apps and online services

About this project

*** WORKING CODE is in github repository!!! ***

Check the for more info

Project description

Versatile temperature controller, supporting up to 8 sensors. The original project idea is to use the controller for beer fermentation

The current code has the following features:

  • +-0.5deg celsius accuracy from -10deg to +85deg without calibration (Higher accuracy is possible through calibration) (DS18B20)
  • Relative humidity sensing with DHT22 sensor
  • Interactive menu to modify sensor/temperature control parameters
  • Monitoring of temperature for each sensor on 7-segment displays, regardless of user input
  • CoolOn/CoolOff and HeatOn/HeatOff thresholds offer hysteresis-like temperature control for each sensor
  • Offset calibration for each sensor, stored in the DS18B20's EEPROM (each sensor will store the calibration data)
  • Storage of settings in Arduino's EEPROM
  • Sensor CRC and presence checking (no wrong read-outs)
  • Temperature display in celsius/fahrenheit

Would love feedback and feature requests. Enjoy!!! :)

Project parts

  • *Arduino Mega 2560* or similar (depending on how many fermenters are needed)
  • *DS18B20* digital temperature sensor with OneWire interface (as many as needed)
  • 7-segment displays (as many as needed) (based on TM1637 controller)
  • 5v Relays (as many as needed)

Usage of fresca

Main menu

All user input/interaction is displayed on the LCD, and user input is possible by using the keypad. The 7-segment displays monitor the temperature of each sensor. This is regardless of what mode the program is in. Temperature updates every second (actually a bit faster, around 900ms)

Menu navigation

On the main screen temperature is displayed for the current selected sensor (default sensor 0). Using the UP/DOWN arrows selects a different sensor. Pressing LEFT/RIGHT buttons will toggle temperature/humidity display (for sensors that support it)

While on the main screen, if the SEL key is pressed the program will enter configuration mode for the given sensor. The first configuration screen the 'CoolOn' threshold can be modified. Use LEFT/RIGHT arrows to change the temperature above which the relay for cooling will be activated. Then press SEL. The next screen modifies the 'CoolOff' threshold, also set it with LEFT/RIGHT arrows. If the temperature falls below this threshold the MCU will deactivate the respective relay. The next screen is accessed by pressing SEL again.

The next two screens are dedicated to the heating part of the controller. 'HeatOn' will turn on the heating relay if temperature falls below this threshold. When you are done press SEL to continue. 'HeatOff' will turn off the heating relay when temperature rises above said threshold. Press SEL after this to continue to the offset calibration.

This screen allows to modify the offset of the temperature reading of the sensor. This gives the possibility to calibrate the sensor to a known reference temperature. By pressing SEL once more, all settings are saved and the program returns to the main screen.

NOTE: If heating and cooling parts of the controller overlap, cooling will take precedence.


Source code is released under GPLv3, please read LICENSE for more information

PD: The project is called 'fresca' in reference to Argentinian slang word used to describe a cold beer! :)*




Similar projects you might like

Arduino Temperature Control

Project tutorial by Team pandhoit

  • 59 respects

How To Use DS18B20 Water Proof Temperature Sensor

Project showcase by IoTBoys

  • 40 respects

SMART Temperature Monitoring for Schools

Project tutorial by Aden and reginald loo

  • 19 respects

Fan Controlled By DS18B20 Temperature Sensor With 20x4 LCD

Project in progress by makeeuropeanu

  • 24 respects

3D Printer Power Controller and Fault Monitor

Project in progress by Colin Russell-Conway

  • 7 respects
Add projectSign up / Login