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

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

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

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

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
Ωχ! Διαβάζοντάς τα μου φάνηκαν κάπως γνωστά όλα αυτά.. Μέχρι που διάβασα και το όνομά μου στο τέλος στις ευχαριστίες. :)

Η αλήθεια είναι ότι ο αισθητήρας υπερήχων δουλεύει καλύτερα από κάθε άλλη μέθοδο που δοκίμασα... Εγώ όμως είχα πεισμώσει να το κάνω με capacitive coupling κι ας έχει τα θεματάκια του... Οπότε σωστά επέλεξες τη μέθοδο αυτή.

Οφείλω να ομολογήσω ότι σε 2 μόλις μήνες το έχεις πάει σε άλλο επίπεδο! Τώρα η classic δε θα είναι καθόλου classic με τόσες βελτιώσεις! Αν φτιάξεις και preinfusion και καμιά πατέντα προθέρμανσης του νερού πριν μπει στο μποιλερ τότε μιλάμε για μηχανή του χιλιάρικου, άνετα!

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

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

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

Γιατί δεν βάζετε ένα load cell ή force sensor κάτω απο το δοχείο που με ένα απλό calibration του άδειου δοχείου θα μπορεί να υπολογίσει το νερό που έχει μέσα ;

πχ:
https://grobotronics.com/flexiforce-pre ... -10kg.html

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

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

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

Γιατί θα πρέπει ο αισθητήρας βάρους να βρίσκεται κάτω από το κέντρο βάρους του δοχείου νερού και αυτό δεν είναι εύκολο για ένα δοχείο που μπαίνει και βγαίνει για να καθαρίζεται.

Επίσης κάθε φορά που θα ανάβεις το arduino ο αισθητήρας θα θέλει μηδενισμο. Κι αυτό είναι δύσκολο να γίνει χωρίς να αφαιρείς κάθε φορά το δοχείο.

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

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

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

brexei έγραψε:
Τετ Ιαν 06, 2021 9:30 pm
Γιατί θα πρέπει ο αισθητήρας βάρους να βρίσκεται κάτω από το κέντρο βάρους του δοχείου νερού και αυτό δεν είναι εύκολο για ένα δοχείο που μπαίνει και βγαίνει για να καθαρίζεται.
Επίσης κάθε φορά που θα ανάβεις το arduino ο αισθητήρας θα θέλει μηδενισμο. Κι αυτό είναι δύσκολο να γίνει χωρίς να αφαιρείς κάθε φορά το δοχείο.
Σωστά, ο αισθητήρας υπερήχων δουλεύει καλύτερα και με μεγαλύτερη ευκολία. Απλά έχει το θέμα ότι αν, κατά λάθος, πέσει περισσότερο νερό στο δοχείο (>1,7 lt) μπορεί να είναι πιο κοντά στη στάθμη από την ελάχιστη απόσταση των 2εκ και να δείχνει λάθος τιμή.. και επίσης το δοχείο μπορεί να καθαριστεί πιο εύκολα, μιας και ο αισθητήρας είναι αποσπώμενος.

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

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

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

Jousis έγραψε:
Τετ Ιαν 06, 2021 7:45 pm
Αυτό που θες να κάνεις, μπορείς να το δεις σε τελειωμένη μορφή εδώ:
https://www.cyberelectronics.org/?p=458
Θα σε βοηθήσει να διαβάσεις το project του για να κλέψεις ιδέες και γιατί όχι κομμάτια κώδικα*.
Έχει και καλό αλγόριθμο για PID temp control και για τον έλεγχο preinfusion με σωστό period για τις αντλίες αυτές.
Το έχω ήδη δει εκείνο το project, από εκεί πήρα την ιδέα του αισθητήρα! :oneup:
Ο τύπος το έχει πάει απλά αλλού!
Καλή ιδέα με το donation, δεν ήξερα ότι γίνεται. :oneup:

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

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

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

Για το κέντρο βάρους συμφωνώ σε περίπτωση που βάλετε load cell αν θέλετε ακριβή μέτρηση, αλλά εσείς δεν θέλετε.
Δεν σας νοιάζει τόσο αν είναι 100 ή 110.
Βάζετε 2 λεπτές και μακριές ξύλινες ή 3d printed επιφάνειες, 1 κάτω απο το load cell και 1 πάνω και τέλος.
Όσο πιο μεγάλο μήκος τόσο πιο μεγάλη ακρίβεια στην μέτηση αλλά ξαναλέω, δεν σας νοιάζει το +/- 10%.

πχ:
https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/8/3/HX711_and_Combinator_board_hook_up_guide-02.jpg


Αλλά δεν χρειάζεται μηδενισμό.
Κάθε φορά, όσες φορές κι αν ανοίξεις θα πάρεις το ίδιο (σχεδόν) voltage εάν είναι το ίδιο βάρος.
Το "calibration" είναι ο παρονομαστής της διαίρεσης που το κάνεις 1 φορά στο τόσο (όπως πχ και σε ζυγαριές) και θεωρείται μετά σταθερά στην εξίσωση gr = voltage / c , c = calibration factor.
(οι σένσορες δεν είναι απολύτως γραμμικοί αλλά για την περίπτωσή μας δεν μας νοιάζει, αρκεί το 1-point calibration).

To tare (βάρος άδειου δοχείου) είναι ένα offset που μπορείτε επίσης να αποθηκεύσετε όταν μετρήσετε το δοχείο 1 φορά (είτε σε gr είτε σε mV).
Οπότε έχουμε
gr water = (Vc-Ve) / c
όπου c= cal factor, Vc = voltage now, Ve= voltage with empty water


όταν λέω "αποθηκεύσετε" εννοώ στην EEPROM, να μην το χάνετε μετά απο poweroff.

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

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

Δημοσίευση από CrazyDr1972 » Παρ Ιαν 08, 2021 5:06 pm

Η ιδέα του να βάλω load cell κάτω από το δοχείο ήταν η πρώτη που μου είχε έρθει και θα το είχα κάνει αλλά το πρόβλημα είναι και χωροταξικό: το δοχείο της Gaggia μπαίνει τσίμα τσίμα, γύρω έχει μεταλλικά τοιχώματα και δεν υπάρχει χώρος ούτε καλά καλά για τον αισθητήρα υπερήχων! Για να τον χωρέσω τον έχω βάλει εν μέρει μέσα στο δοχείο!!

Τελικά πήρα ένα ESP32, του πέρασα μια άλλη οθόνη μέσω SPI και τώρα θέλω να το συνδέσω (πάλι μέσω SPI) με το Mega. Σκέφτηκα να συνδέσω απευθείας τους αισθητήρες στο ESP32 αλλά, κάποιοι (εδικά εκείνος της πίεσης) είναι αναλογικοί στα 5V και για να τους μετατρέψω για χρήση στα 3,3V θέλει ολόκληρη ιστορία.

Εσύ τι λές; Κάποια ιδέα ή πρόταση;

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

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

Δημοσίευση από Jousis » Παρ Ιαν 08, 2021 5:58 pm

Σχεδόν όλοι οι 5v παίζουν και με 3.3v.
Για την ακρίβεια δεν έχω βρει ούτε έναν που να μην παίζει.
Απλά θα έχεις μικρότερη ανάλυση στην μέτρηση (θεωρητικά).

Αν θες να μιλήσουν μεταξύ τους τα δύο μπορείς να το κάνεις και με serial.

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

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

Δημοσίευση από CrazyDr1972 » Παρ Ιαν 08, 2021 8:24 pm

Μόλις τελείωσα τον έλεγχο των specs: το Hall Sensor module και το HX711 είναι 3,3V/5V, το Ultrasonic HC-SR04 και το Gravity pressure sensor είναι μόνο 5V. Και ενώ μπορώ να δώσω ρεύμα 5V σε όλα από το Vin του ESP32, το πρόβλημα είναι με την επιστροφή του αναλογικού σήματος (που πρέπει να μπει σαν 3,3V για να δώσει σωστές τιμές).
Και ενώ αρχικά έλεγα να συνδέσω το Mega, πριν από λίγο έφτιαξα ένα Voltage divider (με R1=470Ω και R2=1ΚΩ) και πέρασα του Echo του HC-SR04 κατευθείαν στο ESP32!
Οπότε, μάλλον θα τα περάσω όλα στο ESP32 όπως μου είχες πει αμάλλονρχικά. Και είχες απόλυτο δίκιο: το ESP32 είναι απίστευτα γρήγορο, τα τεστ γραφικών τα πάει σφαίρα και κάποιους υπολογισμούς που του έβαλα επίσης! Άσε που θα χρησιμοποιήσω το WiFi για να κάνω γραφικές λίστες με τους στατιστικών καφέ σε κάνα web server!

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

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

Δημοσίευση από Jousis » Παρ Ιαν 08, 2021 9:02 pm

Αλήθεια δεν παίζει η κινεζιά το Ultrasonic με 3.3V ρεύμα;
Του δίνεις 3.3Vcc και δεν παίζει;
Οι δικοί μου παίζουν μια χαρά :lick:

Παρατήρηση: εάν θέλεις να δίνεις ρεύμα 5V θα πρέπει να χρησιμοποιήσεις κάτι τέτοιο για το logic:
https://grobotronics.com/logic-level-co ... ional.html

Επίσης διάβασε για τους ADC του ESP32, είναι λίγο...χμ...περίεργοι*
https://docs.espressif.com/projects/esp ... s/adc.html
https://randomnerdtutorials.com/esp32-a ... ADC%20pins.


*ξέρω, πρώτα σε έφτιαξα και μετά σε φρενάρω, σόρρυ. Λογικά δεν θα αντιμετωπίσεις κανένα πρόβλημα για τέτοιες εφαρμογές.

Απάντηση