Αυτοματοποίηση Gaggia Classic μέσω Arduino

PID, μετρητές πίεσης, και ό,τι άλλο χρειάζεται ώστε το "φιατάκι" σας να γίνει Mitsubishi Evo.
Άβαταρ μέλους
CrazyDr1972
Δημοσιεύσεις: 16
Εγγραφή: Τρί Νοέμ 24, 2020 1:38 pm
Όνομα: Θεόδωρος
Μηχανή:: Gaggia Classic 2015
Μύλος:: Fiorengato F64 Evo
Τοποθεσία: Αθήνα

Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από CrazyDr1972 » Τετ Ιαν 06, 2021 1:34 am

Καλησπέρα!
Πριν από 2 περίπου μήνες άρχισα ένα project αυτοματοποίησης της Gaggia Classic βασισμένο σε ένα Arduino Mega.
Μετά από πολλές δοκιμές, κατάφερα να φτάσω σε ένα ικανοποιητικό σημείο αλλά τα δύσκολα μάλλον αρχίζουν τώρα.. :D
Μέχρι στιγμής λοιπόν το σύστημα κάνει τα εξής:
1. Στην αρχική εικόνα αναφέρονται σε γραφική μπάρα αριστερά η υπολειπόμενη ποσότητα νερού στο δοχείο, ο αριθμός συνολικών εκχυλίσεων, η συνολική ποσότητα καφέ που έχει καταναλωθεί και οι πληροφορίες σχετικά με την τελευταία εκχύλιση.
2. Οι τελευταίες περιλαμβάνουν τον χρόνο εκχύλισης (από τη στιγμή που πιέστηκε το Brew), το βάρος εκχύλισης, η ταξινόμηση (βάσει του ratio) σε ristretto, espresso ή lungo και σε under-, overextracted ή time balanced (βάσει του χρόνου εκχύλισης).
3. Επίσης απεικονίζεται γράφημα βάρους-χρόνου εκχύλισης, με σημειώση (κόκκινη γραμμή) του ιδανικού yield βάσει του ratio που επιλέξαμε.
4. Στο tray έχει τοποθετηθεί ζυγαριά συνδεδεμένη στο σύστημα, καταλαβαίνει πότε τοποθετείται το ποτήρι και έτσι μπαίνει στη φάση προετοιμασίας εκχύλισης. Αν το ποτήρι αφαιρεθεί επιστρέφει στην προηγούμενη κατάσταση.
5. Στην σελίδα προετοιμασίας λοιπόν επιλέγουμε την ποσότητα του αλεσμένου καφέ και το ratio (μέσω του touchscreen της οθόνης), ελέγχουμε ότι γίνει ο αυτόματος μηδενισμός της ζυγαριάς και πατάμε το brew.
6. Το χρονόμετρο ενεργοποιείται αυτόματα με την έναρξη λειτουργίας της αντλίας και η όλη διαδικασία απεικονίζεται γραφικά.
7. Παράλληλα υπάρχει εκτίμηση του τέλους εκχύλισης που βασίζεται στο extraction rate που υπολογίζεται αυτόματα ανά δευτερόλεπτο και απεικονίζεται σαν % και σε δευτερόλεπτα ( αυτό είναι ακόμα σε φάση βελτίωσης).
8. Επίσης υπάρχει ψηφιακό μανόμετρο ανάμεσα στην αντλία και στο boiler (εκκρεμεί calibration μόλις μου στείλουν τα υλικά για να τροποποιήσω ένα παλιό PF).
9. Και ένα PID βασισμένο στο C-Rex100.
9. Με την απενεργοποίηση του διακόπτη εκχύλισης επιστρέφουμε στην αρχική σελίδα.

Μπορείτε να δείτε ένα βίντεο του project εδώ:
https://youtu.be/lt5zQIwe3pw

Προσεχώς, έχω σκοπό να περάσω relays για τον έλεγχο της αντλίας και της βαλβίδας 3-way, να τελειώσω το calibration του μανόμετρου και... κάποια στιγμή να τα κλείσω όλα στο κουτί τους!

ΥΓ: Η εκχύλιση στο βίντεο δεν είναι καλή αλλά βοηθά πολύ στο να δείξει το σύστημα!

Jousis
Δημοσιεύσεις: 259
Εγγραφή: Πέμ Δεκ 29, 2016 3:46 am
Μηχανή:: nespresso
2η Μηχανή:: lelit mara x
Μύλος:: niche zero

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από Jousis » Τετ Ιαν 06, 2021 3:39 am

:a013:

Αφού το ξεκινάς τώρα κρίμα είναι να το κάνεις με arduino mega.

Βάλε ένα ESP32 ή κάποιο STM32 ή κάποιον άλλον 32bit που σου κάνει κέφι.

Με το ESP32 θα έχεις αρκετούτσικα I/O + BLE + wifi οπότε σε 2η φάση είτε φτιάχνεις εφαρμογή για κινητό είτε μέσω wifi + mqtt το πετάς σε μια σελίδα και θα έχεις ιστορικό/στατιστικά.
Για να μην πω οτι θα κάνει και σωστά refresh την TFT ;)

Μια άλλη λύση είναι το feather οικοσύστημα, θα σου γλιτώσει και χώρο:
esp32
tft + touch

Άβαταρ μέλους
CrazyDr1972
Δημοσιεύσεις: 16
Εγγραφή: Τρί Νοέμ 24, 2020 1:38 pm
Όνομα: Θεόδωρος
Μηχανή:: Gaggia Classic 2015
Μύλος:: Fiorengato F64 Evo
Τοποθεσία: Αθήνα

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από CrazyDr1972 » Τετ Ιαν 06, 2021 7:44 am

Καλημέρα!!
Μάλλον ξέχασα να το γράψω στο αρχικό μου post αλλά είναι η πρώτη φορά που ασχολούμαι με ηλεκτρονικά (είναι κάτι λιγότερο από 2 μήνες σήμερα :oneup: ), το arduino το επέλεξα επειδή υπάρχουν πολλά παραδείγματα και tutorials στο διαδίκτυο και το Mega γιατί ήθελα να έχει πολλά pin για όλα εκείνα που θέλω να κάνω.
Βέβαια, έριξα μια ματιά στο ESP32 και μου φαίνεται ΠΑΡΑ πολύ καλή ιδέα.. και για το refresh της TFT !
Μια ερώτηση: χρησιμοποιώ το PlatformIO, υποθέτω ότι δουλεύει και με το ESP32, σωστά;

Jousis
Δημοσιεύσεις: 259
Εγγραφή: Πέμ Δεκ 29, 2016 3:46 am
Μηχανή:: nespresso
2η Μηχανή:: lelit mara x
Μύλος:: niche zero

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από Jousis » Τετ Ιαν 06, 2021 10:51 am

Που να το καταλάβω οτι είσαι αρχάριος, εγώ υπέθεσα οτι ξέρεις πιο πολλά απο εμένα με αυτό που είδα !

Μιας και είσαι στην αρχή, κάνε focus στο project και όχι στο hardware. Συνέχισε με το mega.
Μετά, σε 2η φάση αν δεν έχεις βαρεθεί το hobby, πηδάς σε 32bit + wifi + ble.

Για τέτοιου είδους κώδικα η αλλαγή θα είναι εύκολη, εκτός απο το κομμάτι της ζυγαριάς που θα θέλει λίγο finetune γιατί το esp32 είναι πολύ πιο γρήγορο.

Τα Ι/Ο του esp32 λογικά θα σου φτάνουν οριακά αν η οθόνη είναι με SPI (+backlight+touch).
Ναι, παίζει και με platformio με arduino C project αλλά έχει και "δικό του" OS (πάλι με platformIO).

Άβαταρ μέλους
brexei
Δημοσιεύσεις: 435
Εγγραφή: Παρ Νοέμ 23, 2018 10:46 am
Όνομα: Αδάμ
Μηχανή:: Lelit PL41em
2η Μηχανή:: V60 ceramic
Μύλος:: Mahlkoenig Vario
Οι καφέδες μου:: Δοκιμάζω...
Τοποθεσία: Ηράκλειο

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από brexei » Τετ Ιαν 06, 2021 1:21 pm

Φοβερή δουλειά! Συγχαρητήρια!

Πως μετράς την ποσότητα του νερού που απομένει στο δοχείο; Εγώ είχα δοκιμάσει κάμποσους τρόπους για πειραματισμό αλλά τελικά τη μετράω με χωρητικότητα πυκνωτή...

Επίσης αν μπορείς πες μας πως καταλαβαίνεις ότι λειτουργεί η αντλία;

Jousis
Δημοσιεύσεις: 259
Εγγραφή: Πέμ Δεκ 29, 2016 3:46 am
Μηχανή:: nespresso
2η Μηχανή:: lelit mara x
Μύλος:: niche zero

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από Jousis » Τετ Ιαν 06, 2021 1:24 pm

Το ON/OFF για την αντλία το δίνει μόνος του αν δεις το βίντεο.
Είναι πλήρως αυτόματη η λειτουργία !
Λογικά έχει SSR για αντλία και άλλο ένα για θέρμανση.

Άβαταρ μέλους
CrazyDr1972
Δημοσιεύσεις: 16
Εγγραφή: Τρί Νοέμ 24, 2020 1:38 pm
Όνομα: Θεόδωρος
Μηχανή:: Gaggia Classic 2015
Μύλος:: Fiorengato F64 Evo
Τοποθεσία: Αθήνα

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από CrazyDr1972 » Τετ Ιαν 06, 2021 3:52 pm

brexei έγραψε:
Τετ Ιαν 06, 2021 1:21 pm
Πως μετράς την ποσότητα του νερού που απομένει στο δοχείο;
Χρησιμοποίησα έναν αισθητήρα υπερήχων (HC-SR04) τοποθετημένο στο ψηλότερο μέρος του δοχείου: βρίσκει την απόσταση μέχρι τη στάθμη του νερού (2εκ min) και βάσει των διαστάσεων/σχήματος του δοχείου υπολογίζει τον υπολειπόμενο όγκο.
https://www.dropbox.com/s/c4wnqe9l553dh ... n.jpg?dl=0
https://www.dropbox.com/s/zgypbcyzqab1l ... 9.jpg?dl=0
https://www.dropbox.com/s/z6gdavx6he39h ... n.jpg?dl=0
brexei έγραψε:
Τετ Ιαν 06, 2021 1:21 pm
Επίσης αν μπορείς πες μας πως καταλαβαίνεις ότι λειτουργεί η αντλία;
Η αντλία ενεργοποιείται από το πάτημα του διακόπτη. Το πρόγραμμα αντιλαμβάνεται τη λειτουργία της (για να αρχίσει το χρονόμετρο) από την μεταβολή του μαγνητικού πεδίου που δημιουργείται γύρω από την αντλία, μέσω ενός αισθητήρα Hall effect (Waveshare Hall effect board 49E). Αυτό είναι μεταβλητό και η μέση τιμή του (ακόμα και όταν η αντλία λειτουργεί) είναι 0-1, οπότε δεν χρησιμεύει πολύ. Αυτό που έκανα ήταν να φτιάξω έναν αλγόριθμο που αντιλαμβάνεται την μεταβλητότητα του πεδίου, αθροίζοντας τις απόλυτες τιμές των μεταβολών, οι οποίες αυξάνονται κατά 10-20 μονάδες όταν η αντλία λειτουργεί. Πολλά ευχαριστώ στον Adam Adikimenakis https://www.youtube.com/watch?v=MH8dMXPnL2g που το ανέπτυξε πριν από μένα!
https://www.dropbox.com/s/h35k1g0tvlcih ... n.jpg?dl=0
https://www.dropbox.com/s/wfnf91hbxvkkj ... n.jpg?dl=0
https://www.dropbox.com/s/q5k4i4oxe18ip ... n.jpg?dl=0
Τελευταία επεξεργασία από το μέλος CrazyDr1972 την Τετ Ιαν 06, 2021 4:11 pm, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
CrazyDr1972
Δημοσιεύσεις: 16
Εγγραφή: Τρί Νοέμ 24, 2020 1:38 pm
Όνομα: Θεόδωρος
Μηχανή:: Gaggia Classic 2015
Μύλος:: Fiorengato F64 Evo
Τοποθεσία: Αθήνα

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από CrazyDr1972 » Τετ Ιαν 06, 2021 4:05 pm

Jousis έγραψε:
Τετ Ιαν 06, 2021 1:24 pm
Το ON/OFF για την αντλία το δίνει μόνος του αν δεις το βίντεο.
Είναι πλήρως αυτόματη η λειτουργία !
Σωστά. Πρέπει να πατήσω τον διακόπτη για να αρχίσει η διαδικασία και μετά να τον ξανακλείσω για να τελειώσει. Αυτό ήταν έτσι και αλλιώς η αρχική μου πρόθεση.

Jousis έγραψε:
Τετ Ιαν 06, 2021 1:24 pm
Λογικά έχει SSR για αντλία και άλλο ένα για θέρμανση.
Από εβδομάδα θα τοποθετήσω πάνω στο σύστημα ένα 2πλό SSR για να ελέγχω την αντλία και την 3πλή. Ακόμα δεν έχω καμιά διάθεση να βάλω χέρι στα θερμαντικά σώματα.. έτσι και αλλιώς το PID ελέγχει τη θερμοκρασία του boiler.
Ο έλεγχος στην αντλία όμως θα μου επιτρέψει μεγαλύτερη αυτοματοποίηση, αρχικά θα κλείνει μόνη της μετά την εκχύλιση. Αργότερα μάλλον θα ενεργοποιείται και μόνη της. :a048:
Ο έλεγχος στην 3πλη ανοίγει τον δρόμο για Preinfusion και, σε συνδυασμό με το ψηφιακό μανόμετρο (και την ρύθμιση της εργοστασιακής μου Gaggia στα 9 bar), για pressure profiling.
Τελευταία επεξεργασία από το μέλος CrazyDr1972 την Τετ Ιαν 06, 2021 4:32 pm, έχει επεξεργασθεί 2 φορές συνολικά.

Άβαταρ μέλους
CrazyDr1972
Δημοσιεύσεις: 16
Εγγραφή: Τρί Νοέμ 24, 2020 1:38 pm
Όνομα: Θεόδωρος
Μηχανή:: Gaggia Classic 2015
Μύλος:: Fiorengato F64 Evo
Τοποθεσία: Αθήνα

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από CrazyDr1972 » Τετ Ιαν 06, 2021 4:30 pm

Jousis έγραψε:
Τετ Ιαν 06, 2021 10:51 am
Για τέτοιου είδους κώδικα η αλλαγή θα είναι εύκολη, εκτός απο το κομμάτι της ζυγαριάς που θα θέλει λίγο finetune γιατί το esp32 είναι πολύ πιο γρήγορο.
Τα Ι/Ο του esp32 λογικά θα σου φτάνουν οριακά αν η οθόνη είναι με SPI (+backlight+touch).
Η ιδέα του να τρέξω το project σε κάποια γρηγορότερη πλατφόρμα είναι πολύ δελεαστική (δεν μπορώ άλλα "Waiting" στην οθόνη :D ) Από την άλλη το όλο project είναι 15 σελίδες κώδικας, με συνεχόμενα input από 4 αισθητήρες, οπότε βαραίνει λιγάκι (έτσι σκέφτηκα άλλωστε να πάρω το Mega αντί του Uno). Και φαντάσου ότι πριν ήταν πολύ πιο αργό αλλά το ξαναέγραψα σε μορφή state machine και βελτιώθηκε αρκετά.

Και δεν βοηθά η οθόνη, που είναι 320x480, με SPI, backlight και touch..

Jousis
Δημοσιεύσεις: 259
Εγγραφή: Πέμ Δεκ 29, 2016 3:46 am
Μηχανή:: nespresso
2η Μηχανή:: lelit mara x
Μύλος:: niche zero

Re: Αυτοματοποίηση Gaggia Classic μέσω Arduino

Δημοσίευση από Jousis » Τετ Ιαν 06, 2021 7:45 pm

Άρα ακόμα είσαι στην φάση διαβάσματος, δεν ελέγχεις κάτι, κατάλαβα λάθος.
Προχώρα ακάθεκτος, θα μάθεις πολλά στην πορεία :)

Αυτό που θες να κάνεις, μπορείς να το δεις σε τελειωμένη μορφή εδώ:
https://www.cyberelectronics.org/?p=458

Θα σε βοηθήσει να διαβάσεις το project του για να κλέψεις ιδέες και γιατί όχι κομμάτια κώδικα*.
Έχει και καλό αλγόριθμο για PID temp control και για τον έλεγχο preinfusion με σωστό period για τις αντλίες αυτές.

Η αλλαγή απο mega σε esp32 δεν θα είναι δύσκολη, τα πιο πολλά θα είναι ίδια.
Απλά θα έχεις νέες δυνατότητες και πονοκέφαλο με την ζυγαριά (hx711 είναι κακό chip).


*προτείνω αν έχεις την οικονομική δυνατότητα, να του κάνεις κι ένα donate ;)

Απάντηση