Πίνακας περιεχομένων:
- Βήμα 1: Εργαλεία και υλικά
- Βήμα 2: Αποσυναρμολόγηση της αρχικής μονάδας
- Βήμα 3: Εξηγήθηκε το κύκλωμα
- Βήμα 4: Προετοιμασία του ATTiny85
- Βήμα 5: Χτίζοντας την ασπίδα Wemos
- Βήμα 6: Προετοιμασία του Wemos
- Βήμα 7: Το βάζουμε όλα μαζί
Βίντεο: IOToilet: 7 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Το IOToilet είναι η πρώτη έξυπνη θήκη χαρτιού υγείας, η οποία παρακολουθεί την καθημερινή χρήση χαρτιού υγείας και επιτρέπει τη συσσώρευση στατιστικών που δείχνουν αυτές τις μετρήσεις. Και γιατί πρέπει να με νοιάζει για την καθημερινή μου χρήση χαρτιού τουαλέτας που μπορεί να ρωτήσετε; Λοιπόν, όπως αποδεικνύεται, η κοιλιακή μας υγεία, ειδικά ο κύκλος της πέψης, έχει να κάνει τόσο με τη σωματική μας υγεία όσο και με την ψυχική μας υγεία. Για παράδειγμα, εδώ είναι μια ωραία ομιλία TED (μια από τις λίγες, παρεμπιπτόντως) που επεξεργάζεται αυτό το θέμα:
Αρχικά μου ανατέθηκε να φτιάξω 10 μονάδες αυτής της συσκευής για ένα πρακτορείο επωνυμίας, το κλιπ του οποίου μπορείτε να δείτε παραπάνω (2η τοποθεσία), για μια εκστρατεία μάρκετινγκ που προορίζεται για μια μεγάλη εταιρεία. Στην αρχή, απέρριψα την ιδέα καθώς κάποιος προερχόταν από ένα άλλο υπερ-δημιουργικό μυαλό που προσπαθούσε απεγνωσμένα να κερδίσει έναν λογαριασμό πελάτη, αλλά σταδιακά αυξήθηκε πάνω μου, μέχρι που συνειδητοποίησα την αξία των πληροφοριών που συλλέγονται μέσω αυτής της συσκευής.
Η κατασκευή βασίστηκε σε ένα υπάρχον υλικό που πήρε ο πελάτης μου από το EBay, μια συσκευή εγγραφής φωνής ενσωματωμένη σε μια θήκη χαρτιού υγείας. Είχε τον σωστό συντελεστή φόρμας και όλα τα απαραίτητα περιφερειακά που ήταν ήδη ενσωματωμένα, όπως ηχείο, αισθητήρα κίνησης για ενεργοποίηση της συσκευής, ελατήρια για να κρατά το ίδιο το χαρτί υγείας, θήκη μπαταριών και διακόπτη on-off, οπότε επέλεξα ευχαρίστως χρησιμοποιώντας αυτό το έτοιμο αντί να μοντελοποιήσω και να εκτυπώσω το δικό μου.
Βήμα 1: Εργαλεία και υλικά
Υλικά που χρησιμοποιούνται:
Θήκη για χαρτί υγείας
Wemos D1 Mini
Τσιπ ATTiny85, συσκευασία DIP
2 x 2n2222 τρανζίστορ
Αντίσταση 220 Ohm
2 * 1KOhm αντίσταση
Επιταχυνσιόμετρο MPU6050
Προαιρετικά, σε περίπτωση που δεν χρησιμοποιώ το PCB μου:
Ασπίδα πρωτοτύπων Wemos
σύρμα, συγκόλληση κλπ.
Εργαλεία που χρησιμοποιήθηκαν:
Dremel με δίσκο κοπής
Πίνακας ATTiny dev (για εύκολη μεταφόρτωση υλικολογισμικού)
Προγραμματιστής USB Tiny ISP
τριγωνικό κατσαβίδι, χρησιμοποίησα αυτό το κιτ:
Βήμα 2: Αποσυναρμολόγηση της αρχικής μονάδας
Αφού πήρα τον αρχικό άξονα από χαρτί υγείας, άνοιξα τη θήκη του χρησιμοποιώντας ένα τριγωνικό κατσαβίδι και αφαίρεσα το αρχικό PCB, αποσυνδέοντας το ηχείο και αφήνοντας όσο το δυνατόν περισσότερο καλώδιο συνδεδεμένο σε αυτό.
Στη συνέχεια κόλλησα το LED και τον αισθητήρα κλίσης από το αρχικό PCB, για να ενσωματωθούν αργότερα στο νέο κύκλωμα. Προσέξτε να μην υπερθερμάνετε τον διακόπτη κλίσης, καθώς μπορεί να προκληθεί ζημιά. Το δικό μου ήταν γκρι, αλλά επειδή δεν το έβγαλα καλά όταν το έβγαλα από την αρχική συσκευή, έπρεπε να χρησιμοποιήσω μια φωτογραφία από το δίχτυ (βλέπε παραπάνω), όπου ήταν πράσινη. Μια μικρή λεπτομέρεια.
Μετά το άνοιγμα της θήκης και την αφαίρεση των ηλεκτρονικών, χρησιμοποίησα επίσης ένα Dremel για να αφαιρέσω το περιττό πλαστικό που χρησιμοποιήθηκε για να κρατήσει το αρχικό PCB στη θέση του, αυτά τα μικρά πλαστικά ράφια και ένα από τους 4 βιδωτούς σωλήνες. Μπορείτε να το αναβάλετε στο στάδιο συναρμολόγησης, αν θέλετε, αλλά σε κάθε περίπτωση θα χρειαστεί κάποιο πλαστικό κόψιμο.
Βήμα 3: Εξηγήθηκε το κύκλωμα
Λοιπόν, εδώ είναι λίγο για τη λογική πίσω από το κύκλωμα:
Για να διαρκέσουν πολύ οι μπαταρίες, έπρεπε να βάλω τόσο το επιταχυνσιόμετρο MPU6050 όσο και τον επεξεργαστή ESP8266 στο Wemos D1 Mini για να κοιμηθούν μεταξύ των ενεργοποιήσεων. Το πρώτο έγινε εύκολα χρησιμοποιώντας ένα τρανζίστορ που ενεργοποίησε και απενεργοποίησε το MPU6050.
Σημείωση: Αρχικά σκέφτηκα ότι θα μπορούσα να το προγραμματίσω για να στείλει ένα σήμα διακοπής που θα ξυπνήσει τον κύριο επεξεργαστή. Αλίμονο, δεν μπορούσα να βρω έναν τρόπο να το πραγματοποιήσω, η διαμόρφωση των κατάλληλων καταχωρητών του MPU6050 ήταν μια δύσκολη εργασία που ακόμα δεν ξέρω αν είναι δυνατόν…
Η δεύτερη επιλογή μου ήταν η χρήση του διακόπτη κλίσης που παρέχεται με την αρχική μονάδα για να αφυπνίσει το ESP. Το έδεσα αρχικά απευθείας στον πείρο Wemos RESET όπως περιγράφεται στις παραπάνω φωτογραφίες, χρησιμοποιώντας ένα τρανζίστορ για να ενεργοποιήσετε/απενεργοποιήσετε τον μηχανισμό. Όταν η βάση του τρανζίστορ ήταν υψηλή, το GND θα μπορούσε να περάσει από τον διακόπτη κλίσης και να τον κάνει να συνδεθεί προσωρινά με τον πείρο RESET, προκαλώντας την επαναφορά του MCU (αυτός είναι ο μόνος τρόπος για να ξυπνήσετε ένα ESP από βαθύ ύπνο, προφανώς). Στη συνέχεια, συνέδεσα το D0 με τη βάση τρανζίστορ, ακολουθώντας την υπόθεση ότι αυτό το σκέλος είναι Υ HIGHΗΛΟ όσο ο MCU κοιμάται και μόλις ξυπνήσει, το D0 επιστρέφει στο LOW, απενεργοποιώντας τον μηχανισμό επαναφοράς. Άλλωστε, δεν χρειαζόμουν επαναλαμβανόμενη επαναφορά για να συμβεί, μόνο για πρώτη φορά όταν άρχισε να κινείται η θήκη χαρτιού υγείας.
Ωστόσο, αυτό που ανακάλυψα ήταν ότι ο πείρος D0 χρειάζεται αρκετό καιρό μετά την επαναφορά του MCU για να επιστρέψει στο LOW, περίπου 200ms. Αυτό σήμαινε ότι αν περιστρέφω τη θήκη χαρτιού τουαλέτας αρκετά γρήγορα ενώ το MCU κοιμόταν, θα εμφανίζονταν πολλαπλές επαναλήψεις, αντί να μετράμε τους γύρους, όπως θα έπρεπε.
Έτσι, προσπάθησα να λύσω αυτήν τη νέα κατάσταση με ορισμένα διακριτά εξαρτήματα (πυκνωτές, τρανζίστορ κ.λπ.), αλλά κατάφερα μόνο να πάρω μερική λύση στο πρόβλημα.
Κατέληξα να προσθέσω ένα άλλο MCU, ένα ATTiny85, το οποίο θα ξυπνούσε από τον ύπνο με το διακόπτη κλίσης, μετά, ξυπνούσα το ESP8266 και περίμενα για λίγο πριν ξανακοιμηθώ. Ξέρω ότι αυτή δεν είναι ίσως η πιο οικονομική λύση στο πρόβλημα, αλλά είχα προθεσμία…
Μπορείτε να δείτε τη λεπτομερή λύση στο σχήμα που έχω συμπεριλάβει. Λάβετε υπόψη ότι οι αντιστάσεις 10K αντικαταστάθηκαν με 1K καθώς οι 10k ήταν πολύ υψηλές για να ανοίξουν πλήρως τα τρανζίστορ.
Βήμα 4: Προετοιμασία του ATTiny85
Εάν δεν έχετε προγραμματίσει ποτέ ένα ATTiny85, μην φοβάστε! Η χρήση του αγαπημένου Arduino IDE μπορεί να σας οδηγήσει σε όλη τη διαδρομή. Ξεκινήστε με αυτές τις οδηγίες σχετικά με τον τρόπο ρύθμισης παραμέτρων του Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Στη συνέχεια, εγκαταστήστε τα προγράμματα οδήγησης για το USBTinyISP από εδώ:
learn.adafruit.com/usbtinyisp/drivers
Τώρα, φορτώστε τον συνημμένο κωδικό δοκιμής: WakeOnExternalInterruptTest.ino
και συνδεθείτε (δείτε το διάγραμμα Pinout ATTiny85):
1. Κουμπί τακτ μεταξύ του πείρου 3 και της γείωσης
2. Αντίσταση led και 220 Ohm σε σειρά, μεταξύ του πείρου 2 και της γείωσης
Επόμενο, Επιλέξτε το USBTinyISP ως προγραμματιστή (στην ενότητα Εργαλεία -> Προγραμματιστής) και ανεβάστε το δοκιμαστικό σκίτσο στον πίνακα.
Το LED πρέπει να αναβοσβήνει 5 φορές και μετά το τσιπ πρέπει να κοιμηθεί. Πατώντας το κουμπί θα ξυπνήσει και θα επαναλάβει αυτήν την ακολουθία.
Λειτουργεί; μεγάλος! Ανεβάστε το τελικό σκίτσο "Awakener" στο ATTiny, για χρήση στο τελικό κύκλωμα.
Βήμα 5: Χτίζοντας την ασπίδα Wemos
Έτσι, για να κατασκευάσετε την ασπίδα έχετε 3 επιλογές από τις οποίες μπορείτε να επιλέξετε:
1. Χρησιμοποιήστε ένα τυπικό protoshield για το Wemos και κολλήστε το κύκλωμα σε αυτό.
2. Κατασκευάστε ένα PCB, με βάση τα συνημμένα αρχεία EAGLE.
3. Ζητήστε μου ένα PCB που μπορώ να σας στείλω μέσω ταχυδρομείου με σαλιγκάρι (έχω λίγα ψέματα, το κόστος είναι σχεδόν τίποτα).
Σε κάθε περίπτωση, προτείνω να κατασκευάσετε το κύκλωμα σε σανίδα πριν δεσμευτείτε στο PCB!
Εάν χρησιμοποιείτε τις επιλογές PCB, φροντίστε να συνδέσετε το μαύρο καλώδιο όπως στις φωτογραφίες, είτε στην μπροστινή είτε στην πίσω πλευρά του πίνακα (το τελευταίο λειτούργησε καλύτερα για μένα). Αυτό το καλώδιο συνδέει το GND από το Wemos στο ATTiny85 και χωρίς αυτό, το ξύπνημα δεν θα πραγματοποιηθεί.
Απλά ρίξτε μια καλή ματιά στις εικόνες και διαβάστε τους σχολιασμούς που έχω προσθέσει, αυτό πρέπει να είναι αρκετό.
Βήμα 6: Προετοιμασία του Wemos
Εάν δεν έχετε χρησιμοποιήσει ποτέ το Arduino IDE για να προγραμματίσετε έναν πίνακα Wemos, ξεκινώντας εγκαθιστώντας τον διαχειριστή πλακέτας και επιλέγοντας τον πίνακα στο μενού Εργαλεία -> Πίνακας, όπως περιγράφεται εδώ:
github.com/esp8266/Arduino
Ξεκινήστε ανεβάζοντας το σκίτσο αναλαμπής στον πίνακα σας, βεβαιωθείτε ότι ο κώδικας ανεβαίνει σωστά.
Βήμα 7: Το βάζουμε όλα μαζί
Εγκαταστήστε την ασπίδα στο Wemos. Μπορείτε να το κολλήσετε, αλλά προτείνω να χρησιμοποιήσετε γυναικείες κεφαλίδες συγκολλημένες στο Wemos που θα επιτρέπουν προσωρινή σύνδεση μεταξύ του Wemos και της ασπίδας, σε περίπτωση οποιουδήποτε προβλήματος. Απλώς λάβετε υπόψη ότι η γυναικεία κεφαλίδα θα πρέπει να κατέβει στο τελικό στάδιο συναρμολόγησης για να χωρέσει η μονάδα στο πλαστικό κέλυφος. Επίσης, για να κάνετε τα πράγματα λίγο πιο περίπλοκα, υπάρχει μια καλή πιθανότητα ότι όταν η ασπίδα είναι συνδεδεμένη στο Wemos, η μεταφόρτωση κώδικα θα απενεργοποιηθεί. Αντιμετώπισα αυτό το φαινόμενο με μη συνεπή τρόπο και δεν είχα χρόνο να το ερευνήσω.
Συμβουλή: προγραμματίστε εκ των προτέρων.
Τώρα, Δοκιμές!
Μόλις εγκατασταθεί, ξεκινήστε ανεβάζοντας το δοκιμαστικό σκίτσο BlinkAccelerometer στο Wemos και βεβαιωθείτε ότι ενεργοποιεί και απενεργοποιεί το LED MPU6050. Εάν όχι, ελέγξτε την καλωδίωση του τρανζίστορ που είναι υπεύθυνη για την τροφοδοσία του MPU6050. Η βάση του θα πρέπει να είναι συνδεδεμένη με τον πείρο D5 του Wemos, ο συλλέκτης θα πρέπει να είναι συνδεδεμένος με το GND του επιταχυνσιόμετρου και ο εκπομπούς θα πρέπει να συνδεθεί με το κοινό GND.
Στη συνέχεια, ανεβάστε το σκίτσο TurnCountTest1 στον πίνακα Wemos και ανοίξτε το Serial Monitor. Θα πρέπει να δείτε δεδομένα που προέρχονται από το επιταχυνσιόμετρο που παρουσιάζονται στην οθόνη. Εάν δεν λειτουργεί, ελέγξτε το ρολόι και την καλωδίωση δεδομένων: Το CLK πρέπει να είναι συνδεδεμένο στο D1 και το DATA πρέπει να είναι συνδεδεμένο στο D2.
Τώρα, κολλήστε τον διακόπτη κλίσης στις καθορισμένες οπές στην πλακέτα (βλέπε σχολιασμούς), βεβαιωθείτε ότι είναι κάθετος στον άξονα περιστροφής, έτσι ώστε η περιστροφή του άξονα να κλείνει και να ανοίγει η σύνδεση μεταξύ των δύο αγωγών του.
Στη συνέχεια, συνδέστε την είσοδο μπαταρίας 3V στο Wemos VCC και το μείον τερματικό της στο Wemos GND. Βεβαιωθείτε ότι η ενεργοποίηση του διακόπτη ενεργοποιεί τη μονάδα. Τέλος, συνδέστε το ηχείο στο GND και καρφιτσώστε το D4 του Wemos.
Ανεβάστε τον τελικό κώδικα στο Wemos - ένα σκίτσο που ονομάζεται SmartWipe. Ανοίξτε μια σειριακή οθόνη και βεβαιωθείτε ότι η μονάδα κοιμάται μετά από 3 λεπτά και ξυπνάει μετακινώντας τον διακόπτη κλίσης (τα αντίστοιχα μηνύματα πρέπει να εμφανίζονται στην οθόνη).
Εάν θέλετε να μειώσετε την ώρα που το Wemos είναι ξύπνιο (κυρίως για σκοπούς δοκιμής), μειώστε την τιμή του WIFI_CONFIGURATION_IDLE_TIMEOUT που ορίζεται στα params.h και ανεβάστε το σκίτσο στον πίνακα. Βεβαιωθείτε ότι μετά τον ύπνο του Wemos, η μετακίνηση του διακόπτη κλίσης προκαλεί την αφύπνιση του ATTiny (σηματοδοτείται από το LED), το οποίο, με τη σειρά του, ξυπνά τα Wemos.
Αλλάξτε την τιμή της παραμέτρου πίσω στα 180000L (3 λεπτά, σε χιλιοστά του δευτερολέπτου) και βεβαιωθείτε ότι το Wemos ενεργοποιεί ένα Hotspot που ονομάζεται IOToilet_XXXXXXXX όπου το XXXXXXX θα ανακτηθεί από τη διεύθυνση MAC του τσιπ. Συνδεθείτε σε αυτό το Wifi χρησιμοποιώντας ένα έξυπνο τηλέφωνο και θα πρέπει να οδηγηθείτε σε μια φόρμα εγγραφής (ένας μηχανισμός που ονομάζεται Captive Portal). Συμπληρώστε τα στοιχεία, ιδιαίτερα σημαντικό είναι το SSID και ο κωδικός πρόσβασης του τοπικού wifi και υποβάλετε τη φόρμα. Η μονάδα θα πρέπει στη συνέχεια να προσπαθήσει να συνδεθεί στο δίκτυο χρησιμοποιώντας τα παρεχόμενα διαπιστευτήρια και, εάν είναι επιτυχής, να αναπαράγει 3 ανερχόμενους ήχους στο ηχείο. Εάν υπήρχε πρόβλημα στη σύνδεση με το Wifi, θα ακουστεί 3 κατεβαίνοντας ήχος. Μετά από αυτό, οι Wemos πρέπει να κοιμηθούν βαθιά, μέχρι να ξυπνήσουν από την κίνηση.
Τέλος: Δοκιμή συστήματος από άκρο σε άκρο.
Τυλίξτε τη θήκη χαρτιού τουαλέτας κατά μήκος του άξονα περιστροφής της μερικές περιστροφές και, στη συνέχεια, τοποθετήστε την σε μια σταθερή επιφάνεια (το σήμα με τη χρήση του ρολού έχει τελειώσει και ενεργοποιεί τη μεταφόρτωση δεδομένων). Περιμένετε περίπου 10 δευτερόλεπτα για να σταλεί ο αριθμός ρολών στο cloud και, στη συνέχεια, μεταβείτε στη διεύθυνση https://smartwipe-iot.appspot.com/ και κάντε κλικ στην επιλογή Ερώτημα. Θα πρέπει να δείτε τα στοιχεία εγγραφής σας και τον αριθμό των πρόσφατων ρολών χρήσης σας στο cloud! Φροντίστε να γράψετε το uuid, το οποίο είναι το μοναδικό σας αναγνωριστικό στο σύστημα, που εξάγεται από τη διεύθυνση MAC του Wemos.
Εάν θέλετε να εξαγάγετε μόνο τα στατιστικά σας σε μορφή JSON, χρησιμοποιήστε ένα URL παρόμοιο με αυτό:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
απλά αντικαταστήστε το uuid με το δικό σας.
Έχω συμπεριλάβει όλες τις πηγές για την εφαρμογή ιστού, η οποία φιλοξενείται στη μηχανή Google App, έτσι ώστε οι χρήστες που επιθυμούν να αποκτήσουν μεγαλύτερο απόρρητο στα δεδομένα, να μπορούν να τα αναπτύξουν στον δικό τους χρήστη Google, να προσθέσουν έλεγχο ταυτότητας κ.λπ.
Όταν όλα λειτουργούν, τοποθετήστε τα ηλεκτρονικά μέσα στο πλαστικό κέλυφος, κόβοντας το πλαστικό με ένα ντέμελ, όπως απαιτείται. Ολόκληρο το κομμάτι θα πρέπει να ταιριάζει όμορφα στο περίβλημα.
Ταλαιπωρία? Γράψτε μου!
ΕΝΩΜΕΝΟΙ ΒΑΖΟΥΜΕ!
Συνιστάται:
Πώς: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και εικόνες: 7 βήματα (με εικόνες)
Howto: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και Εικόνες: Σκοπεύω να χρησιμοποιήσω αυτό το Rapsberry PI σε ένα σωρό διασκεδαστικά έργα στο ιστολόγιό μου. Μη διστάσετε να το ελέγξετε. Iθελα να επιστρέψω στη χρήση του Raspberry PI, αλλά δεν είχα πληκτρολόγιο ή ποντίκι στη νέα μου τοποθεσία. Είχε περάσει λίγος καιρός από τότε που έστησα ένα Raspberry
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: 13 βήματα (με εικόνες)
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: Αυτή είναι μια οδηγία σχετικά με τον τρόπο αποσυναρμολόγησης ενός υπολογιστή. Τα περισσότερα από τα βασικά στοιχεία είναι αρθρωτά και αφαιρούνται εύκολα. Ωστόσο, είναι σημαντικό να είστε οργανωμένοι σε αυτό. Αυτό θα σας βοηθήσει να αποφύγετε την απώλεια εξαρτημάτων και επίσης να κάνετε την επανασυναρμολόγηση να
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: 5 βήματα (με εικόνες)
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: Χρησιμοποιώντας Eagle3D και POV-Ray, μπορείτε να δημιουργήσετε ρεαλιστικές τρισδιάστατες αποδόσεις των PCB σας. Το Eagle3D είναι ένα σενάριο για EAGLE Layout Editor. Αυτό θα δημιουργήσει ένα αρχείο ανίχνευσης ακτίνων, το οποίο θα σταλεί στο POV-Ray, το οποίο με τη σειρά του θα βγει τελικά από το τελικό im
Κάμερα για εικόνες λήξης χρόνου που έγιναν εύκολα .: 22 βήματα (με εικόνες)
Camera for Time Lapse Pictures Made Easy: Έλεγχα ένα από τα άλλα Instructables σχετικά με την παραγωγή ταινιών time lapse. Καλύπτει αρκετά καλά το κομμάτι της ταινίας. Μίλησε για το δωρεάν λογισμικό που μπορείτε να κατεβάσετε για να κάνετε ταινίες. Είπα στον εαυτό μου, νομίζω ότι θα δω αν μπορώ
Πώς να εικονογραφήσετε εικόνες - Εύκολα: 3 βήματα (με εικόνες)
Πώς να Pixellate Εικόνες - Εύκολα: Αυτή η γρήγορη είναι μια τεχνική για τη χρήση λογοκρισίας pixel για τη διατήρηση της ανωνυμίας, της αξιοπρέπειας κ.λπ. σε ψηφιακές εικόνες. Χρειάζεστε μόνο έναν απλό επεξεργαστή εικόνας όπως το MS Paint, χρησιμοποιώ το MS Paint. Για εναλλακτική λύση, δείτε αυτό Διδάξιμο