Πίνακας περιεχομένων:
- Βήμα 1: Πρωτότυπο
- Βήμα 2: Αποστολή ειδοποίησης μέσω του Blynk
- Βήμα 3: Μέτρηση της κατανάλωσης ενέργειας και εκτίμηση της διάρκειας ζωής της μπαταρίας
- Βήμα 4: Μέτρηση της στάθμης της μπαταρίας
- Βήμα 5: Να γίνει πιο όμορφο
- Βήμα 6: Τελειώνοντας τις πινελιές
Βίντεο: Αισθητήρας ειδοποίησης πλυντηρίου: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Αυτός ο αισθητήρας πλυντηρίου βρίσκεται πάνω από το πλυντήριο μου και χρησιμοποιεί επιταχυνσιόμετρο για τον εντοπισμό κραδασμών από το πλυντήριο. Όταν αισθανθεί ότι ο κύκλος πλύσης έχει τελειώσει, μου στέλνει μια ειδοποίηση στο τηλέφωνό μου. Το έχτισα επειδή το ίδιο το μηχάνημα δεν ακούγεται πλέον μπιπ όταν τελειώσει και κουράστηκα να ξεχνάω να βγάλω τα ρούχα.
Μπορείτε να βρείτε τον κωδικό εδώ:
Πλήρης λίστα ανταλλακτικών:
- WEMOS LOLIN32
- Μισό μέγεθος Breadboard (για πρωτότυπο)
- ABS Project Box με πίνακα Matrix 59x88x30mm
- Sparkfun LIS3DH - Επιταχυνσιόμετρο τριπλού άξονα Breakout
- 1x ZVP3306A P-channel MOSFET, 160 mA, 60 V, 3-pin E-Line
- 1x τρανζίστορ BC549B TO92 30V NPN
- 5mm LED μπλε 68 mcd
- 1x 100k 0.125W CF Resistor
- 1x 330k 0.125W CF Resistor
- 2x 10k 0.250W CF Resistor
- 1x 100 0.250W CF Resistor
- 2-pin θηλυκό καλώδιο JST PH-Style (14cm)
- Μαγνήτης δίσκου νεοδυμίου 4x M1219-8 6x4mm
Βήμα 1: Πρωτότυπο
Η συσκευή χρησιμοποιεί μικροελεγκτή ESP32. Σε αυτήν την περίπτωση χρησιμοποιώ τον πίνακα ανάπτυξης Lolin32 της Wemos, τον οποίο μπορείτε να αγοράσετε στο AliExpress για περίπου $ 7. Το επιταχυνσιόμετρο είναι το Sparkfun LIS3DH - είναι σημαντικό το επιταχυνσιόμετρο να είναι ψηφιακό και όχι αναλογικό, όπως θα δείτε αργότερα. Η μπαταρία πήρα από ένα παλιό σετ ηχείων bluetooth.
Το ESP32 συνδέεται με το επιταχυνσιόμετρο μέσω I2C. Η πρώτη έκδοση του κώδικα απλώς δημοσκόπησε τους τρεις άξονες επιτάχυνσης (x, y και z) για τη μετρούμενη τιμή επιτάχυνσης κάθε 20ms. Τοποθετώντας το πρωτότυπο του breadboard στο πλυντήριο και δημιούργησα το παραπάνω γράφημα που δείχνει κορυφές επιτάχυνσης σε διάφορες φάσεις του κύκλου πλύσης. Αυτές οι κορυφές όπου η απόλυτη επιτάχυνση ήταν μεγαλύτερη από 125mg (125 χιλιοστά κανονικής βαρύτητας) εμφανίζονται με πορτοκαλί χρώμα. Θέλουμε να εντοπίσουμε αυτές τις περιόδους και να τις χρησιμοποιήσουμε για να καθορίσουμε την κατάσταση του πλυντηρίου.
Πώς να καθορίσετε εάν το μηχάνημα είναι ενεργοποιημένο ή απενεργοποιημένο;
Ένας από τους στόχους της κατασκευής αυτής της συσκευής ήταν ότι θα ήταν εντελώς παθητική. Δηλ. Δεν πρέπει να πατήσετε κανένα κουμπί. θα λειτουργούσε απλά. Θα πρέπει επίσης να είναι πολύ χαμηλής ισχύος καθώς δεν ήταν πραγματικά δυνατό να επεκτείνω τα καλώδια τροφοδοσίας στο πλυντήριο στην περίπτωσή μου.
Ευτυχώς, το επιταχυνσιόμετρο LIS3DH διαθέτει ένα χαρακτηριστικό όπου μπορεί να προκαλέσει διακοπή όταν η επιτάχυνση υπερβεί ένα δεδομένο όριο (σημειώστε, αυτό απαιτεί τη χρήση του ενσωματωμένου φίλτρου επιταχυνσιόμετρου-δείτε τον κωδικό στο Github για λεπτομέρειες) και το ESP32 μπορεί να αφυπνιστεί από τη λειτουργία βαθύ ύπνου μέσω διακοπής. Μπορούμε να χρησιμοποιήσουμε αυτόν τον συνδυασμό λειτουργιών για να δημιουργήσουμε μια κατάσταση ύπνου πολύ χαμηλής ισχύος που ενεργοποιείται από την κίνηση.
Ο ψευδοκώδικας θα μοιάζει κάπως έτσι:
# Ξυπνήστε τη συσκευή
notification_threshold = 240 counter = 10 accelerometer.set_threshold (96) # 96mg ενώ counter> 0: if accelerometer.above_threshold (): counter ++ else: counter-- if counter> notification_threshold: # final κύκλος περιστροφής ανίχνευσε ύπνο (1 δευτερόλεπτο) accelerometer.set_threshold_interrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()
Μπορείτε να δείτε εδώ ότι χρησιμοποιούμε έναν μετρητή για να ανιχνεύσουμε πόσα δευτερόλεπτα επιτάχυνσης έχουμε εντοπίσει κατά την τρέχουσα περίοδο αφύπνισης. Εάν ο μετρητής πέσει στο μηδέν, μπορούμε να θέσουμε ξανά τη συσκευή σε κατάσταση αναστολής λειτουργίας. Εάν ο μετρητής φτάσει το 240 (το όριο ειδοποιήσεων), τότε αυτό σημαίνει ότι έχουμε εντοπίσει 4 λεπτά δόνησης. Μπορούμε να αλλάξουμε τις τιμές αυτών των ορίων για να βεβαιωθούμε ότι η συσκευή ανιχνεύει σωστά τον τελικό κύκλο περιστροφής. Μόλις εντοπιστούν επαρκείς δονήσεις, μπορούμε απλά να κοιμηθούμε για άλλα 5 λεπτά (στην περίπτωσή μου αυτός είναι ο χρόνος που χρειάζεται μέχρι να ολοκληρωθεί το πλύσιμο) πριν στείλουμε μια ειδοποίηση.
Βήμα 2: Αποστολή ειδοποίησης μέσω του Blynk
Το Blynk είναι μια υπηρεσία που έχει σχεδιαστεί για να επιτρέπει την αλληλεπίδραση με συσκευές IoT με μια εφαρμογή στο τηλέφωνό σας. Σε αυτήν την περίπτωση, χρησιμοποιώ το API ειδοποίησης push που ενεργοποιείται από ένα απλό HTTP POST στο Blynk API.
Βήμα 3: Μέτρηση της κατανάλωσης ενέργειας και εκτίμηση της διάρκειας ζωής της μπαταρίας
Το τσιπ ESP32 διαφημίζεται ότι έχει πολύ χαμηλή κατανάλωση ενέργειας όταν βρίσκεστε σε βαθύ ύπνο (τόσο χαμηλά όσο 5uA). Δυστυχώς, τα κυκλώματα στους πολλούς διαφορετικούς πίνακες ανάπτυξης παρέχουν πολύ διαφορετικά χαρακτηριστικά κατανάλωσης ενέργειας - δεν δημιουργούνται όλοι οι πίνακες dev ESP32 ίσοι. Για παράδειγμα, όταν ξεκίνησα για πρώτη φορά αυτό το έργο, χρησιμοποίησα το Sparkfun ESP32 Thing το οποίο θα κατανάλωνε περίπου 1mA ισχύος σε κατάσταση ύπνου βαθύ (ακόμη και μετά την απενεργοποίηση της λυχνίας LED ισχύος). Έκτοτε χρησιμοποιώ το Lolin32 (όχι την έκδοση Lite) στο οποίο μέτρησα ένα ρεύμα 144,5uA ενώ βρισκόμουν σε κατάσταση βαθύ ύπνου. Για να κάνω αυτή τη μέτρηση, απλώς ένωσα ένα πολύμετρο σε σειρά με τη μπαταρία και τη συσκευή. Αυτό είναι σίγουρα πιο εύκολο να γίνει ενώ δημιουργείτε πρωτότυπα με ένα breadboard. Επίσης μέτρησα την τρέχουσα χρήση όταν η συσκευή είναι ξύπνια:
- Βαθύς ύπνος: 144,5uA
- Ξύπνιο: 45mA
- Wifi ενεργοποιημένο: 150mA
Υποθέτοντας ότι χρησιμοποιώ το μηχάνημα δύο φορές την εβδομάδα, υπολόγισα τους ακόλουθους χρονισμούς για το χρόνο που περνά ο αισθητήρας σε κάθε κατάσταση:
- Βαθύς ύπνος: 604090 δευτερόλεπτα (week 1 εβδομάδα)
- Ξύπνα: 720 δευτερόλεπτα (12 λεπτά)
- Wi -Fi ενεργοποιημένο: 10 δευτερόλεπτα
Από αυτά τα στοιχεία, μπορούμε να υπολογίσουμε πόσο καιρό θα διαρκέσει η μπαταρία. Χρησιμοποίησα αυτόν τον εύχρηστο υπολογιστή για να λάβω μια μέση κατανάλωση ενέργειας 0,2mA. Η εκτιμώμενη διάρκεια ζωής της μπαταρίας είναι 201 ημέρες ή περίπου 6 μήνες! Στην πραγματικότητα έχω διαπιστώσει ότι η συσκευή θα σταματήσει να λειτουργεί μετά από περίπου 2 μήνες, ώστε να υπάρξουν κάποια λάθη στις μετρήσεις ή την χωρητικότητα της μπαταρίας.
Βήμα 4: Μέτρηση της στάθμης της μπαταρίας
Σκέφτηκα ότι θα ήταν ωραίο αν η συσκευή μπορούσε να μου πει πότε τελειώνει η μπαταρία, ώστε να ξέρω πότε να τη φορτίσω. Για να το μετρήσουμε αυτό πρέπει να μετρήσουμε την τάση της μπαταρίας. Η μπαταρία έχει εύρος τάσης 4,3V - 2,2V (η ελάχιστη τάση λειτουργίας του ESP32). Δυστυχώς, το εύρος τάσης των ακίδων ADC του ESP32 είναι 0-3,3V. Αυτό σημαίνει ότι πρέπει να μειώσουμε την τάση της μπαταρίας από το μέγιστο 4,3 σε 3,3 για να αποφύγουμε την υπερφόρτωση του ADC. Αυτό είναι δυνατό να γίνει με ένα διαχωριστή τάσης. Απλά συνδέστε δύο αντιστάσεις με τις κατάλληλες τιμές από τη μπαταρία στη γείωση και μετρήστε την τάση στη μέση.
Δυστυχώς, ένα απλό κύκλωμα διαίρεσης τάσης θα εξαντλήσει την ισχύ από την μπαταρία ακόμη και όταν η τάση δεν μετριέται. Μπορείτε να το μετριάσετε χρησιμοποιώντας αντιστάσεις υψηλής αξίας, αλλά η κάτω πλευρά είναι ότι το ADC μπορεί να μην είναι σε θέση να αντλήσει αρκετό ρεύμα για να κάνει μια ακριβή μέτρηση. Αποφάσισα να χρησιμοποιήσω αντιστάσεις με τιμές 100kΩ και 330kΩ οι οποίες θα πέσουν 4,3V στα 3,3V σύμφωνα με αυτόν τον τύπο διαχωριστή τάσης. Δεδομένης μιας συνολικής αντίστασης 430kΩ, θα περιμέναμε μια τρέχουσα ισοπαλία 11,6uA (χρησιμοποιώντας το νόμο του Ohm). Δεδομένου ότι η τρέχουσα χρήση μας σε βαθύ ύπνο είναι 144uA, είναι μια αρκετά σημαντική αύξηση.
Καθώς θέλουμε να μετρήσουμε μόνο μία φορά την τάση της μπαταρίας λίγο πριν στείλουμε μια ειδοποίηση, είναι λογικό να απενεργοποιήσουμε το κύκλωμα διαχωριστή τάσης κατά τη διάρκεια του χρόνου που δεν μετράμε τίποτα. Ευτυχώς, μπορούμε να το κάνουμε αυτό με δύο τρανζίστορ συνδεδεμένα σε έναν από τους ακροδέκτες GPIO. Χρησιμοποίησα το κύκλωμα που δόθηκε σε αυτήν την απάντηση στοίβας. Μπορείτε να με δείτε να δοκιμάζω το κύκλωμα με ένα Arduino και ένα breadboard στην παραπάνω φωτογραφία (σημειώστε ότι υπάρχει ένα σφάλμα στο κύκλωμα που είναι ο λόγος που μετράω υψηλότερη τάση από την αναμενόμενη).
Με το παραπάνω κύκλωμα στη θέση του, χρησιμοποιώ τον ακόλουθο ψευδοκώδικα για να λάβω μια τιμή ποσοστού μπαταρίας:
Ποσοστό μπαταρίας():
# ενεργοποίηση κυκλώματος τάσης μπαταρίας gpio_set_level (BATTERY_EN_PIN, HIGH) # Η στάθμη της μπαταρίας επιστρέφεται ως ακέραιος μεταξύ 0 και 4095 adc_value = adc1_get_value (ADC_PIN) # ενεργοποίηση κυκλώματος τάσης μπαταρίας gpio_set_level (BATTERY_EN_PIN, LOW) float adc_volt = adc_volt ο διαιρέτης χρησιμοποιεί αντιστάσεις 100k/330k ohm # 4.3V -> 3.223, 2.4 -> 1.842 expect_max = 4.3*330/(100+330) expect_min = 2.4*330/(100+330) battery_level = (adc_voltage -expect_min)/(expect_max -expected_min) επιστροφή μπαταρίας_επίπεδο * 100.0
Βήμα 5: Να γίνει πιο όμορφο
Ενώ η έκδοση του breadboard λειτουργεί καλά, ήθελα να το βάλω σε ένα πακέτο που θα ήταν πιο προσεγμένο και πιο αξιόπιστο (χωρίς καλώδια που μπορεί να χαλαρώσουν ή να βραχούν). Κατάφερα να βρω το τέλειο κουτί έργου για τις ανάγκες μου το οποίο ήταν το σωστό μέγεθος, που περιλάμβανε μια σανίδα καρφιτσών, στηρίγματα στήριξης και βίδες για να τα συνδυάσω όλα. Επίσης, ήταν φθηνό σε λιγότερο από 2 λίρες. Μετά την παραλαβή του κουτιού, το μόνο που έπρεπε να κάνω ήταν να κολλήσω τα εξαρτήματα στον πίνακα καρφιτσών.
Perhapsσως το πιο δύσκολο μέρος αυτού ήταν η τοποθέτηση όλων των εξαρτημάτων του κυκλώματος τάσης της μπαταρίας στο μικρό χώρο δίπλα στο Lolin32. Ευτυχώς με λίγο τρελλό πόκερ και τις κατάλληλες συνδέσεις που γίνονται με κόλληση το κύκλωμα ταιριάζει τακτοποιημένα. Επίσης, δεδομένου ότι το Wemos Lolin32 δεν διαθέτει πείρο για να εκθέσει τον θετικό ακροδέκτη της μπαταρίας, έπρεπε να κολλήσω ένα καλώδιο από το βύσμα της μπαταρίας στον πίνακα ακίδων.
Πρόσθεσα επίσης ένα LED που αναβοσβήνει όταν η συσκευή εντοπίσει κίνηση.
Βήμα 6: Τελειώνοντας τις πινελιές
Κόλλησα υπερβολικά 4 μαγνήτες νεοδυμίου 6mm x 4mm στη βάση του κουτιού που του επιτρέπουν να κολλήσει με ασφάλεια στη μεταλλική κορυφή του πλυντηρίου.
Το κουτί του έργου έρχεται ήδη με μια μικρή τρύπα για να παρέχει πρόσβαση στα καλώδια. Ευτυχώς, μπόρεσα να τοποθετήσω την πλακέτα ESP32 κοντά σε αυτήν την τρύπα για να δώσω πρόσβαση στην υποδοχή micro USB. Αφού μεγεθύνετε την τρύπα με ένα μαχαίρι χειροτεχνίας, το καλώδιο ταιριάζει απόλυτα ώστε να επιτρέπει την εύκολη φόρτιση της μπαταρίας.
Εάν ενδιαφέρεστε για οποιαδήποτε από τις λεπτομέρειες αυτού του έργου, μη διστάσετε να αφήσετε ένα σχόλιο. Αν θέλετε να δείτε τον κωδικό, ελέγξτε τον στο Github:
github.com/alexspurling/washingmachine
Συνιστάται:
Μη ασφαλές επίπεδο ειδοποίησης θορύβου: 11 βήματα (με εικόνες)
Unsafe Noise Level Alert System: The Oshman Engineering Design Kitchen (OEDK) είναι ο μεγαλύτερος χώρος κατασκευής στο Πανεπιστήμιο Rice, παρέχοντας χώρο σε όλους τους φοιτητές για να σχεδιάσουν και να δημιουργήσουν πρωτότυπες λύσεις σε πραγματικές προκλήσεις. Για την εξυπηρέτηση αυτού του σκοπού, ο ΟΕΔΚ στεγάζει μια σειρά από ηλεκτρικά εργαλεία
Λαμπτήρας ειδοποίησης Kodak Pi της δεκαετίας του 1930: 6 βήματα (με εικόνες)
Λάμπα ειδοποιήσεων Kodak Pi της δεκαετίας του 1930: Πρόκειται για ένα Kodak Table Viewer του 1930 που έχω προσαρμόσει για να εμφανίζει ειδοποιήσεις και ειδοποιήσεις χρησιμοποιώντας μια σειρά από έντονα χρώματα. Η πηγή φωτός είναι ένα pHAT μονόκερου, μια προγραμματιζόμενη μήτρα φωτεινών LED, και αυτό ελέγχεται από ένα Raspberry Pi Zero W, το οποίο
Πόσο εύκολο ήταν να επισκευάσω τα ηλεκτρονικά του πλυντηρίου μου: 5 βήματα (με εικόνες)
Πόσο εύκολο ήταν να επισκευάσω τα Ηλεκτρονικά του Πλυντηρίου μου: Γιατί; Επειδή είμαι Κατασκευαστής μου αρέσει να επισκευάζω τα δικά μου πράγματα, κάτι που μερικές φορές είναι πρόβλημα γιατί μένουν εκτός λειτουργίας, ενώ βρίσκω λίγο χρόνο για να καταλάβω τη στρατηγική της καθυστέρησης το πρόβλημα. Η επισκευή κάτι είναι συνήθως απλή και διασκεδαστική, αλλά η εύρεση του
Πώς να συνδέσετε μια μηχανή πλυντηρίου ρούχων ως γεννήτρια: 3 βήματα (με εικόνες)
Πώς να συνδέσετε μια μηχανή πλυντηρίου ρούχων ως γεννήτρια: Πώς να συνδέσετε έναν κινητήρα πλυντηρίου ως γεννήτρια ή βασικά στοιχεία καλωδίωσης γεννήτρια κινητήρα πλυντηρίου είναι ένα σεμινάριο σχετικά με τις γενικές αρχές καλωδίωσης κινητήρα σε τροφοδοσία DC και AC. Μια γεννήτρια είναι μια συσκευή που μετατρέπει την κινητήρια δύναμη σε ηλεκτρική ισχύ
Ειδοποιήσεις πλυντηρίου με MESH: 4 βήματα (με εικόνες)
Ειδοποιήσεις πλυντηρίου με MESH: Ωχ! Ξέχασα τα ρούχα στο πλυντήριο … Ξεχνάτε πάντα να μαζεύετε τα ρούχα σας αφού πλυθούν; Αυτή η συνταγή θα αναβαθμίσει το πλυντήριο σας για να λαμβάνει ειδοποιήσεις μέσω Gmail ή IFTTT μόλις τα ρούχα σας είναι έτοιμα για φωτογράφιση