CoffeePi - Automating portafilter machines
CoffeePi is an openly available project for customizing and automating portafilter machines.
This project is deployed on a raspberry Pi 3 and a Astoria Argenta AEP.
For connecting all sensors and actuators to the IoT-Device, a breakoutboard was develeoped.
Features of this project
The following features are currently implemented or in progress:
- Openhab interface
- SQLite Database backend
- 16x2 LC-Display and two buttons for user interaction
- Multithreaded and signal based Software architecture with very low CPU workload
- 3 5V/230V Relays controlling the main power, pump and the heating circuit
- 1-Wire Temperatur sensor (DS18B20)
- RGB LED Stripe with Controller
- Logging Framework with different verbosity levels
- Timer Framework
- Display Page Management corresponding to the machine state with delayed pages, prepages (page before the actual page corresponding to the current state) and postpages (similar to prepages)
- FSM controlling the and responding to the hardwarestate of the machine
- Event Manager with threads registering events and event subscriber
Software Features
- Auto-Brewing with predefinded Preinfusion (Amount-triggered) and predefinded Soak-Time. The brewing itself stops automatically after 30s or 65ml
- Cleaning Program
- Tracking of the number of brewed espressi and the comsumed energy (in kWh)
- Cleaning reminder after 35 cups or 90 days
- large user menu with information and settings (in progress)
- Reboot of the device and restart of the software available through the menu
- LCD Backlight turn off during idle
Deploy the project in your own coffeemachine:
All sensors(Buttons, LCD, Temperatur-Sensor, I2C-RGB-Stripe Controller) have to be available.
The relays have to intercept the powercircuit, pump circuit and the heating circuit.
All hardware access is either in a dedicated class (like 1-Wire) or in the hardware abstraction class (hal.h)