All Projects → ilcardella → ArduinoCoffeeMachine

ilcardella / ArduinoCoffeeMachine

Licence: MIT license
Arduino PID controller for coffee machines

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to ArduinoCoffeeMachine

LibreCO2
Simple CO2 meter using Arduino UNO-Mega board and popular CO2 sensors (SenseAir S8, Sensirion SCD30, Winsen MH-Z14 or 19 and Cubic CM1106). Operation modes: Normal, Calibration 400ppm, Alarm adjust and Altitud compensation adjust
Stars: ✭ 31 (+106.67%)
Mutual labels:  arduino-nano
sqlite micro logger arduino
Fast and Lean Sqlite database logger for Microcontrollers
Stars: ✭ 128 (+753.33%)
Mutual labels:  arduino-nano
Volvo-melbus
Volvo MELBUS Bluetooth audio input and remote control with Arduino Nano
Stars: ✭ 51 (+240%)
Mutual labels:  arduino-nano
Arduino
🚀 Proyectos de todo tipo para arduino utilizando sus sensores y actuadores. 🤖
Stars: ✭ 27 (+80%)
Mutual labels:  arduino-nano
PsxNewLib
Playstation controller interface library for Arduino
Stars: ✭ 81 (+440%)
Mutual labels:  arduino-nano
fresh-coffee-listener
Using a raspberry pi, we listen to the coffee machine and count the number of coffee consumption
Stars: ✭ 52 (+246.67%)
Mutual labels:  coffee-machine
Arduino-BLE-MIDI
MIDI over Bluetooth Low Energy (BLE-MIDI) 1.0 for Arduino
Stars: ✭ 133 (+786.67%)
Mutual labels:  arduino-nano
vx8 gps
DIY GPS module for Yaesu VX-8DR/VX-8DE handheld transceiver.
Stars: ✭ 41 (+173.33%)
Mutual labels:  arduino-nano

Arduino Coffee Machine Documentation Status

This project is a PID controller for a Gaggia Paros (or Gaggia Classic) coffee machine using Arduino and a few other components. This Arduino based controller improves the stability of the water temperature of the coffee machine by controlling the boiler with a PID control loop feedback.

Software

This project is based on lib_coffee_machine which is a C++ library providing an abstraction of a generic coffee machine.

This project implements the library interfaces targeting an Arduino Nano platform and several sensors and displays.

Arduino libraries

This project depends on the following Arduino libraries:

Makefile

The Makefile at the project root directory provides targets to build the code and the documentation.

Build

You can build the code with different approaches:

  • with the Arduino IDE opening the CoffeeMachine.ino sketch
  • with VSCode and the Arduino extension opening the CoffeeMachine.ino sketch
  • with make build using Docker

Build with Docker

The code can be built inside a Docker container using docker-compose. The docker-compose.yml and the Dockerfile are in the docker directory. The docker-compose.yml depends on 2 environment variables that must be defined before starting the build:

  • CORE: the Arduino core
  • BOARD: the Arduino board to use

Refer to the arduino-cli documentation for the list of available cores and boards. The following is an example that builds the code for an Arduino Nano board:

$ cd /path/to/repo
$ CORE=avr BOARD=nano make build

The generated build files will be in the CoffeeMachine/build directory.

After building the Docker image the first time, you can then use the arduino-cli installed in the Docker image directly with:

$ cd /path/to/repo
$ docker run --rm -it -v $PWD:/build arduino-builder arduino-cli version
arduino-cli Version: 0.10.0 Commit: ec5c3ed

Hardware

Components

This is the list of components I used for the project:

  • 1x Arduino Nano (any board type will do)
  • 1x Solid State Relay 40A
  • 2x Digital temperature sensors (e.g. TSic306)
  • 1x I2C 128x64 OLED
  • Wires and other supplies

Documentation

Read the project documentation at: https://arduinocoffeemachine.readthedocs.io

Or build it locally with:

$ cd /path/to/repo
$ make docs

Tools

The tools directory contains a Python script that can be used to read the Arduino Serial messages and to plot the current water temperature on a graph. The goal is to help the PID tuning process showing the realtime results.

$ cd tools
$ poetry install --no-dev
$ poetry run python temp_plotter.py

Acknowledgement

A big thanks goes to these two other projects that helped me a lot in the understanding of the electric schematics of the coffee machine and the components to use:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].