Fermentation temperature controller
I got an old freezer that was surplus to requirements and a heat pad and then made a control box with an ESP8266 and ESPHome which control a 2 channel relay board.
The microcontroller talks to 3 Maxim/Dallas 1-wire bus temperature sensors, one for the fermenter, one for fridge air and one for the ambient air.
The ESPHome YAML looks like..
esphome:
name: fermenter
platform: ESP8266
board: d1_mini
wifi:
ssid: "xxx"
password: "xxx"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Fermenter Fallback Hotspot"
password: "xxx"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
mqtt:
broker: mqtt.dons.net.au
ota:
dallas:
update_interval: 30s
pin: D2
sensor:
- platform: dallas
address: 0xFF000801537D4C10
name: "Fermenter"
id: fermenter
- platform: dallas
address: 0x1600080153406D10
name: "Fridge"
id: fridge
- platform: dallas
address: 0x8E00080153057610
name: "Ambient"
id: ambient
switch:
- platform: gpio
name: "Heater"
id: heater
interlock: [cooler]
pin:
number: D5
inverted: yes
- platform: gpio
name: "Cooler"
id: cooler
interlock: [heater]
pin:
number: D6
inverted: yes
climate:
- platform: bang_bang
name: "Fermenter Control"
id: fermenter_control
sensor: fermenter
default_target_temperature_low: 18 °C
default_target_temperature_high: 20 °C
visual:
min_temperature: 1 °C
max_temperature: 30 °C
visual:
min_temperature: 1 °C
max_temperature: 30 °C
temperature_step: 1 °C
cool_action:
- switch.turn_on: cooler
- switch.turn_off: heater
heat_action:
- switch.turn_on: heater
- switch.turn_off: cooler
idle_action:
- switch.turn_off: heater
- switch.turn_off: cooler
A shot of the internals:
There's a lot more space after replacing the previous Atmel version.
-- Main.darius - 30 Sep 2007