Hvis du elsker kaffe, vil du mest sannsynlig ha en vakker espressomaskin. Kanskje til og med en Rancilio Silvia. Silvia er en slank, enkel, robust maskin av høy kvalitet.

Men en ulempe ved denne kaffemaskinen er at det, som mange andre, bruker termostater for å kontrollere bryggetemperaturen. Ved hjelp av termostater for å oppnå presisjon og kontinuerlig temperaturkontroll er det ikke veldig effektivt.

Det er derfor du ser high-end kommersielle kaffemaskiner bruker Proportional-Integral-Derivative (PID) controllere.

Denne hacken vil vise deg hvordan du lager en GUI som vil innlemme presisjonstemperaturkontroll i en hvilken som helst enkel kaffemaskin. Hacking-it-up ved hjelp av en Raspberry Pi vil også bety muligheten til å integrere Internet-of-Things i maskinen.

  • Prøv ut flere fantastiske Raspberry Pi-prosjekter

Trinn ett vil være å ned et par doble espressoer. Så er det på tide å komme seg til virksomheten. Denne hacken vil kreve noen søte ferdigheter i Linux, Kivy (for frontend GUI) og Python.

Men ikke bekymre deg hvis du bare er nybegynner - denne opplæringen er en fin måte å bygge opp dine ferdigheter på. Du trenger også et loddejern, grunnleggende elektroniske verktøy og en solid tilførsel av kaffebønner (til eget forbruk).

Avhengig av hvor langt du vil gå med bygningen, kan du også lage et nytt frontpanel (selv om dette gjør det litt dyrere).

Hva trenger du

Maskinvare som kreves for Silvia-Pi-bygningen inkluderer:

  • Raspberry Pi 2
  • Raspberry Pi 7-tommers berøringsskjerm
  • Enhver kaffemaskin som kan gjøre med bedre temperaturkontroll
  • Solid State Relay (SSR)
  • 2x Double Pole Single Throw (DPST) reléer
  • 2x transistorer og dioder (for førerkretsene på DPST-reléene)
  • Integrert strømforsyning (ditt lands inngang V AC inn, 5 V DC ut)
  • k-type termoelement
  • 1x termoelementforsterker (1-leder MAX31850K)

Hvorfor bruker du en SSR? Hvorfor bruker du ikke et mekanisk relé for å styre kjelen? Vi vil…

Dette skyldes den potensielt høye omkoblingshastigheten til kontrolleren. I praksis er byttehastigheten relativt lav, og noen lav-end-maskiner bruker mekaniske reléer. Imidlertid mislykkes mekaniske reléer vanligvis ikke. SSR er vanligvis ikke stengt.

Dette er absolutt noe å huske på når du tenker på sikkerhet på søknaden din. I tillegg er mekaniske reléer bare gode for et spesifikt antall sykluser. I tillegg gjør mekaniske reléer en lyd, mens SSR er stille.

For denne applikasjonen er en god SSR å bruke Kudom KSI240D10-L SSR: 10A 240V AC, 4-32V DC.

Temperaturområdet K-type termoelement er vanligvis mellom -250ºC til 1250ºC, og nøyaktig til ± 1ºC. For signalbehandling er K-typen lett å imøtekomme.

Det finnes en rekke varianter av integrerte kretser som er pakket med forsterkere, filtrering, kaldkryssingskompensasjon og analog-til-digitale omformere som er spesielt bygget for K-type termoelementet og er også lave kostnader.

På grunn av dette er K-typen perfekt for denne kaffemaskinapplikasjonen.

Berøringsskjermen

For å feilsøke, feilsøke og bli kjent med funksjonaliteten, må du starte med å sette opp den 7-tommers berøringsskjermen på Raspberry Pi.

Gå til element14-nettstedet og sjekk ut deres Raspberry Pi 7-tommers Touchscreen Display Tutorial. Når du har fått det tilkoblet, kan du leke med hvor vakkert Debian, Pi og berøringsskjermen jobber sammen.

Et grafisk brukergrensesnitt

GUI-spesifikasjonen vil være som følger: en grafikk i sanntid, en kaffeknapp for å trekke et espresso-skudd, en dampknapp for å skumme melken og en varmtvannsknapp.

Plottingsgrafen gjør at du kan se hvor effektiv tuningen av PID-kontrolleren er ved å inkorporere settpunktsplottet og den faktiske bryggertemperaturplottet - pluss det gir maskinen din det høyteknologiske, presisjonsstyrte bildet det fortjener. Espresso-standarden angir tross alt 88 ° C ved gruppehodeuttaket

Bli kjent med Kivy

Kivy vil bli brukt til å bygge GUI. Hvorfor? Kivy er basert på et enkelt app-widget-system. Kivy-widgetsystemet er enkelt å finne ut. Kivy har god API-støtte og opplæringsprogrammer på Kivys nettsted. Kivy har også en innebygd innstillings widget manager som bruker JSON konfigurasjonsfiler.

Dette gjør byggappene raske og enkle. Du kan endre standard Kivy-innstillinger-widgeten for å inkludere søvn- og oppvåkningstider. Dette gir deg mulighet til å sette gruppehodet til å være fint og varmt når du kommer ut av sengen og spare strøm i lavtider.

Kivy har en super nyttig plugin manager kalt Kivy Garden. Kivy har også kryssplattformfunksjonalitet (Linux, Android, IOS, OS X, etc). Kivy Garden har noen kule plugin widgets denne hacken vil bruke, for eksempel Graph. Denne hacken benytter Graph for sanntidsplotteren. Koding med en FOSS IDE som Eclipse og Secure Shelling i Pi gjennom skrivebordet ditt er en effektiv måte å implementere denne hacken på..

Dette betyr at du må sette opp Kivy på både skrivebordet og på Raspberry Pi. Gå videre og gjør dette ved å logge inn på terminalen din og legge inn $ pip installere kivy deretter $ pip installere kivy-hage etterfulgt av $ hage installasjonsgraf

Bygg din Kivy-app

Når Kivy er installert, kan du begynne å bygge Kivy apps og bli kjent med Kivy-modulene. Gå til Kivys nettsted og se gjennom API-biblioteket, eller følg også “første app” opplæring - en Pong app - for å få hodet rundt koden og den generelle utformingen av å bygge Kivy apps.

Her skal vi bygge en CoffeeApp, som vil være en kombinasjon av Kivy-widgets som BoxLayout, Button, Label, Graph. Så, tid til å komme etter det. I coffee.py:

#! / usr / bin / kivy import kivy fra kivy.app import App fra kivy.uix.boxlayout import BoxLayout klasse CoffeeApp (App): def build (self): # Legg til foreldre widget root = BoxLayout (orientation = 'horizontal') verticalBtns = BoxLayout (orientering = 'vertikal', size_hint_x = 0,25) # Legg til barn widgets her, og legg dem til foreldrenes "root". returner rot # Kjør skriptet hvis __name__ == '__main__': CoffeeApp (). run ()

Ovennevnte kode vil opprette en aksjestandard BoxLayout Kivy app med en overordnet widget kalt rot. Du vil også legge merke til verticalBtns BoxLayout - Du vil bruke dette til å skille knappene dine fra grafen din og vise dem vertikalt i det høyre kvartalet av appen.

size_hint_x = 0,25. Du kan ikke se denne størrelseshinten i kraft før du legger til grafen senere. Å legge til knapper og grafer i widgeten er like enkelt som å lage widgeten

coffeeButton = Button (text = 'kaffe')

og deretter legge den til foreldremodulen:

verticalBtns.add_widget (coffeeButton)

I dette tilfellet legger du til de tre knappene (kaffe, damp og vann) ved å gjenta denne koden for hver knapp. Du bruker den enkle BoxLayout som håndterer posisjonen og størrelsen på knappene i appens forgrunns widget-rotasjon, derfor må du legge til verticalBtns til rotgrensesnittet ved å legge til følgende:

root.add_widget (verticalBtns)

Ol 'single line diagram for Silvia Pi bygge. Ser mye ut som hieroglyfier fra det gamle Egypt. Sannsynligvis fordi de jobbet på et lignende prosjekt.

Knapper, bindinger og hendelser

Nå for å få dine tre knapper sortert. Kjør koden og du ser tre knapper som er plassert vertikalt ned i appen. Hvis du kjører via SSH eller direkte til Raspberry Pi, vil du se appen kjøre rett til 7-tommers berøringsskjerm.

Prøv å trykke på knappene for å se hva som skjer ... Ikke mye? Du vil se knappene skifte fra grått til lyseblått, men det handler om det. Tid til å knytte disse knappene for å få litt funksjonalitet. Ved å bruke bindemetode og definere on_press () og on_release () metoder du kan spesifisere hva som skjer.

Begynn med å legge til funksjonalitet til coffeeButton i koden din. Mellom å opprette knappene og legge til knappene til rot, ring følgende bindemetode ved å legge til følgende kode:

coffeeButton.bind (on_press = self.coffeePress_callback)

og

coffeeButton.bind (on_release = self.coffeeRelease_callback)

Nå må du definere metodene i CoffeeApp-klassen:

coffeePress_callback (selv, * args)

og

coffeeRelease_callback (selv, * args)

Gjør dette over byggemetoden i klassen. Legg til noen skrive ut uttalelser der inne som spor for å se om noe skjer på press og slipp, og kjøre appen igjen.

Å nei! Ser ut som R2-D2 gjennomgår hjernekirurgi! Nah, egentlig ikke ... Det er Pi som blir smidd inn i Silvia sammen med de nødvendige reléer og sjåførkretser.

Du vil nå finne på å trykke på kaffeknappen som din skrive ut utsagn vil bli sendt ut til terminalen. Gjenta trinnene ovenfor for damp- og vannknappene.