Skip to content

This project covers somewhat advances features for an espresso machine controller.

License

Notifications You must be signed in to change notification settings

Kolkman/ESPressIoT-ESP32

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESPressIoT-ESP32

This project is a fork of the original ESPressIoT project by Roman Schmit originally written for an ESP3866 board with a TSIC sensor. This fork ports that code to an ESP32 with a MAX31855 amplified K thermocouple.

The project covers somewhat advances features for an espresso machine controller. The basic idea was to have reproducible "espresso results" due to temperature regulation and being able to fine-tune. Especially small machines have a low heat capacity and quality suffers a lot from different heat-up-times and high hysteresis in standard temperature switches.

This work is based on Roman's previous work with with IoT, MQTT and his small controller cofcon. As always - take care, you are working with high voltages and you are switching loads up to a few Kilowatts. Please be sure yo know what you are doing, always disconnect and unplug you machine before installing electronics components, choose your components (cables, connectors, sensors, SSR etc.) wisely...

Dependencies

  • Arduino-PID-Library v1
  • Espresso Machine (Gaggic CC, Rancilio Silvia etc.)
  • ESP32 dev board (I used the ESP32 NodeMCU Module WLAN WiFi Development Board met CP2102 )
  • ArduinoJSON v6
  • a suitable temperature sensor (This code uses the MAX31855 with the Adafruit-MAX31855 library)
  • ArduinoStreamUtils
  • a SSR which is capable of switching your heater, has a low trigger threshold and does not draw too much current (otherwise you will toast your ESP8266)
  • some electronics skills

Features

  • very fast and accurate adaptive PID-Controller for the heater of your espresso machine (heat-up-time about 2 minutes, stability/RMS of ~0.15 °C)
  • WWW-Interface for control, configuration and tuning
  • Telnet-Server for PID status (analogous to serial terminal)
  • MQTT-Interface (needs PubSub-Client)
  • OTA-Flash enabled (over-the-air, flash firmware via upload in WWW-Interface)
  • Serial Interface for testing, debugging
  • JSON-Config in internal SPIFFS (uses ArduinoJSON)
  • Re-Written auto-tuning-loop to optimize PID parameters
  • integrated simulation to test features and functionality

Hardware setup

For the hardware setup I followed the example from Bnayalivne's Instructable page. I used a splitter to solder a USB charger to. And the whole circuit I installed in the space behind the frontplate, in a small mayonnaise containero keep it dry from the drip plate.

Whilst the Fotek should be able to handle the 3.3 V output from the GPIO it failed doing so. The small circuit with the transistor, resistor, and the diode (against flowback) uses the GPIO defined in heater.ino to switch the 5V output.

PID in Action

Finally, here is a graph of the PID kicking into action.

PID in Action

About

This project covers somewhat advances features for an espresso machine controller.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.1%
  • C 0.9%