All Projects → brycesub → Silvia Pi

brycesub / Silvia Pi

Licence: mit
A Raspberry Pi modification to the Rancilio Silvia Espresso Machine implementing PID temperature control.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Silvia Pi

Blacky
Designed to improve some structures to achieve better performance, and learn the algorithms used in the pupper project.
Stars: ✭ 84 (-7.69%)
Mutual labels:  raspberry-pi
Deconz Rest Plugin
deCONZ REST-API plugin to control ZigBee devices
Stars: ✭ 1,290 (+1317.58%)
Mutual labels:  raspberry-pi
Gpiozero
A simple interface to GPIO devices with Raspberry Pi
Stars: ✭ 1,302 (+1330.77%)
Mutual labels:  raspberry-pi
Luma.core
A component library providing a Pillow-compatible drawing canvas, and other functionality to support drawing primitives and text-rendering capabilities for small displays on the Raspberry Pi and other single board computers.
Stars: ✭ 84 (-7.69%)
Mutual labels:  raspberry-pi
P2p Internet Workshop
Building the Peer-to-Peer Internet workshop series
Stars: ✭ 88 (-3.3%)
Mutual labels:  raspberry-pi
Black.box
Plug-and-Play VPN router and unblocker
Stars: ✭ 89 (-2.2%)
Mutual labels:  raspberry-pi
Gopi
Raspberry Pi Go Language Interface
Stars: ✭ 82 (-9.89%)
Mutual labels:  raspberry-pi
Mfrc522 Rpi
🔑 Control your MFRC522 RFID Module with your Raspberry-pi and JavaScript
Stars: ✭ 91 (+0%)
Mutual labels:  raspberry-pi
Sled
Satanic/Sexy/Stupid/Silly/Shiny LED matrix controller
Stars: ✭ 88 (-3.3%)
Mutual labels:  raspberry-pi
Balena Sound
Build a single or multi-room streamer for an existing audio device using a Raspberry Pi! Supports Bluetooth, Airplay and Spotify Connect
Stars: ✭ 1,306 (+1335.16%)
Mutual labels:  raspberry-pi
Rpieasy
Easy MultiSensor device based on Raspberry PI
Stars: ✭ 85 (-6.59%)
Mutual labels:  raspberry-pi
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-6.59%)
Mutual labels:  raspberry-pi
Cutehmi
CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework. GitHub repository is a mirror!
Stars: ✭ 90 (-1.1%)
Mutual labels:  raspberry-pi
Arduino Robust Serial
A simple and robust serial communication protocol. It was designed for Arduino but can be used for other purposes (e.g. bluetooth, sockets). Implementation in C Arduino, C++, Python and Rust.
Stars: ✭ 83 (-8.79%)
Mutual labels:  raspberry-pi
Retropie Setup
Shell script to set up a Raspberry Pi/Odroid/PC with RetroArch emulator and various cores
Stars: ✭ 9,308 (+10128.57%)
Mutual labels:  raspberry-pi
Bsb Lan
LAN interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) and Punkt-zu-Punkt Schnittstelle (PPS) used by Elco Thision, Brötje and similar heating systems
Stars: ✭ 83 (-8.79%)
Mutual labels:  raspberry-pi
Pirogue
PiRogue is a small device meant to ease network interception and analysis.
Stars: ✭ 90 (-1.1%)
Mutual labels:  raspberry-pi
Nwjs rpi
[NW.js port for Raspberry Pi] binary compiled for the ARMv6 used in Raspberry Pi (compatible with RPi 2 and RPi 3)
Stars: ✭ 91 (+0%)
Mutual labels:  raspberry-pi
Mvpandroid
Sample app to demonstrate MVP (Model - View - Presenter) architecture in android
Stars: ✭ 91 (+0%)
Mutual labels:  espresso
Solarpi
A RaspberryPi based, Flask powered photovoltaic monitor
Stars: ✭ 90 (-1.1%)
Mutual labels:  raspberry-pi

silvia-pi

A Raspberry Pi modification to the Rancilio Silvia Espresso Machine implementing PID temperature control.

Currently Implemented Features:

  • Brew temperature control
  • RESTful API
  • Web interface for displaying temperature and other statistics
  • Programmable machine warm-up/wake-up

Planned Features:

  • Steam temperature control
  • Timed shots with pre-infusion
  • Digital pressure gauge

Dashboard

Hardware

Hardware Installation

Installation Instructions / Pictures

Circuit Diagram

High-level circuit diagram:

Circuit Diagram

Software

Install Raspbian and configure Wi-Fi and timezone.

silvia-pi Software Installation Instructions

Execute on the pi bash shell:

sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install rpi-update git build-essential python-dev python-smbus python-pip
sudo rpi-update
sudo bash -c 'echo "dtparam=spi=on" >> /boot/config.txt'
sudo reboot

After the reboot:

sudo git clone https://github.com/brycesub/silvia-pi.git /root/silvia-pi
sudo /root/silvia-pi/setup.sh

This last step will download the necessariy python libraries and install the silvia-pi software in /root/silvia-pi

It also creates an entry in /etc/rc.local to start the software on every boot.

API Documentation

GET /allstats

Returns JSON of all the following statistics:

  • i : Current loop iterator value (increases 10x per second)
  • tempf : Temperature in °F
  • avgtemp : Average temperature over the last 10 cycles (1 second) in °F
  • settemp : Current set (goal) temperature in °F
  • iscold : True if the temp was <120°F in the last 15 minutes
  • hestat : 0 if heating element is currently off, 1 if heating element is currently on
  • pidval : PID output from the last cycle
  • avgpid : Average PID output over the last 10 cycles (1 second)
  • pterm : PID P Term value (Proportional error)
  • iterm : PID I Term value (Integral error)
  • dterm : PID D Term value (Derivative error)
  • snooze : Current or last snooze time, a string in the format HH:MM (24 hour)
  • snoozeon : true if machine is currently snoozing, false if machine is not snoozing
GET /curtemp

Returns string of the current temperature in °F

GET /settemp

Returns string of the current set (goal) temperature in °F

POST /settemp

Expects one input 'settemp' with a value between 200-260.
Sets the set (goal) temperature in °F Returns the set temp back or a 400 error if unsuccessful.

GET /snooze

Returns string of the current or last snooze time formatted "HH:MM" (24 hour).
e.g. 13:00 if snoozing until 1:00 PM local time.

POST /snooze

Expects one input 'snooze', a string in the format "HH:MM" (24 hour).
This enables the snooze function, the machine will sleep until the time specified.
Returns the snooze time set or 400 if passed an invalid input.

POST /resetsnooze

Disables/cancels the current snooze functionality.
Returns true always.

GET /restart

Issues a reboot command to the Raspberry Pi.

GET /healthcheck

A simple healthcheck to see if the webserver thread is repsonding.
Returns string 'OK'.

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].