thiagopnts / espresso-controller

Temperature control for espresso machine using Raspberry Pi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Espresso Controller

PID temperature control and monitoring for a Rancilio Silvia or comparable espresso machine. dashboard configuration

Table of Contents

Tech Stack

The application is a single Go binary implementing:

  • gRPC API as defined in espresso.proto,
  • dashboard web app using React and Material-UI, and
  • /metrics web endpoint for Prometheus scraping

serving on a single port (default 8080) of a Raspberry Pi.

Installation

Requirements

Wiring

Here is the original circuit diagram from the manual: unmodified Rewire it like this (default gpio pin numbers shown): modified

Note on Thermocouple Placement

The thermocouple should be attached securely to the outer wall of the boiler. On the Rancilio Silvia, a convenient way to accomplish this is to loosen the screw holding down the factory thermostat to the boiler. Then, the thermocouple can be slipped into the gap between the boiler and thermostat.

Raspi Setup

  1. Follow the Raspberry Pi Getting Started Guide. Be sure to connect it to a wifi network.

  2. Ensure wifi power saving mode is off.

    pi@raspberrypi:~ $ sudo iw wlan0 set power_save off
    pi@raspberrypi:~ $ iw wlan0 get power_save
    Power save: off
  3. Take note of the Raspberry Pi's private ip address.

    pi@raspberrypi:~ $ hostname -I
    192.168.1.124
  4. Download the application and start it.

    pi@raspberrypi:~ $ curl -L -o espresso https://github.com/gregorychen3/espresso-controller/releases/download/v0.2.3/espresso
    pi@raspberrypi:~ $ chmod +x espresso
    pi@raspberrypi:~ $ ./espresso -v
    
         ╓▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
        █▀─╓▄         ┌▄▄┌         ▄▄ ╙█
        █ ╫█╠█ ╔▓▓  ▄█▀╟█╙█▄  ╔▓▓ █▌╟█ ██▓▄
        █  ╙╙       █  ╘▀  █▄      ╙╙  █─▐█
        █ ╔█▀█ ╓▄▄  █▌    ▄█  ╓▄▄ ▓██▌ █▄██
        █  ▀▀▀       ╙▀▀▀▀╙       ╙▀▀└ █╨
        ╙▀██▓▓▓▓▓▓██▓▓▓▓▓▓▓▓██▓██▓▓▓██▀╙
     ╔▓▓▓▓██▓▓▓▓▓▓█▌        ▐▌ ▐█▓▓▓██▓▓▓▄
     ╫█▄▄▄▄▄▄▄▄▄▄▄██▄▄▄▄▄▄▄▄██      ▐█ ▄██▄
          ╫▌          █▌▄█          ▐█ █▌▐█
          ╫▌           └└─          ▐█ █▄▐█
          ╫▌      ╒▓▓▓▓▓▓▓▓▓▓▓▓▓▄   ▐█ ╙╙╙└
          ╫▌      ▐█▄▄▄▄▄▄▄▄██  █▌  ▐█
          ╫▌      ╘█        █▀▀▀▀   ▐█
          █▌       ╠█▓▄┌ ▄▄█▌       ▐█
        █▀╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█
        █                              █─
        ╙▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    
    For more information, go to https://github.com/gregorychen3/espresso-controller
    
    2020-05-24T16:45:27.372-0400	INFO	espresso/server.go:115	Initializing gRPC server	{"port": 8080}
    2020-05-24T16:45:27.372-0400	INFO	espresso/server.go:123	Initializing gRPC web server	{"port": 8080}

    Or, start as a background process and leave it running.

    pi@raspberrypi:~ $ ./espresso &
    pi@raspberrypi:~ $ exit

Control and monitor

Finally, visit http://<ip_addr_from_step_2>:8080 using a web browser. Control and monitor the system from the dashboard there.

Finished

finished installation

Contributing

See the development README.

Credits

Logo icon made by catkuro from flaticon.com and converted to ASCII art using asciiart.club.

About

Temperature control for espresso machine using Raspberry Pi

License:MIT License


Languages

Language:JavaScript 35.0%Language:Go 32.3%Language:TypeScript 28.2%Language:HTML 3.8%Language:Makefile 0.8%