- Απαιτούμενα στοιχεία για την κατασκευή αυτοματοποιημένων τυφλών Arduino
- Έλεγχος ρολών με χρήση Arduino
- Σχεδιάστε και κατασκευάστε το τυφλό εργαλείο παραθύρου
- 3D Εκτύπωση της βάσης του κινητήρα και του τυφλού εργαλείου
- Διάγραμμα κυκλώματος για τον έλεγχο Arduino Blinds
- Εφαρμογή Blynk για Arduino Blind Control
- Προγραμματισμός NodeMCU για τον έλεγχο τυφλών χρησιμοποιώντας το Blynk
- Έλεγχος τυφλών παραθύρων χρησιμοποιώντας τον Βοηθό Google
- Αυτόματος έλεγχος τυφλών παραθύρων με βάση το Arduino - Επίδειξη
"Καλημέρα. Είναι 7 π.μ. Ο καιρός στο Μαλιμπού είναι 72 μοίρες… »αυτές ήταν οι πρώτες λέξεις του JARVIS όταν παρουσιάστηκαν στο Marvel Cinematics Universe. Οι περισσότεροι οπαδοί του Iron Man θα πρέπει να μπορούν να θυμούνται αυτήν τη σκηνή και να θυμούνται ότι ο JARVIS κατάφερε να ανοίξει ένα παράθυρο (είδος) το πρωί και να ενημερώσει σχετικά με την ώρα και τον καιρό. Στην ταινία, τα παράθυρα Glasses ήταν πραγματικά κατασκευασμένα από οθόνες αφής See-Through και, ως εκ τούτου, το JARVIS μπόρεσε να το μετατρέψει από μαύρο σε διαφανές και επίσης να εμφανίσει στατιστικά καιρού σε αυτό. Όμως, στην πραγματικότητα, είμαστε πολύ μακριά από τις οθόνες αφής See-through, και όσο πιο κοντά μπορούμε να φτάσουμε είναι να ελέγχουμε αυτόματα τις περσίδες παραθύρων ή τους περιορισμούς.
Έτσι, σε αυτό το έργο, πρόκειται να χτίσουμε ακριβώς αυτό, θα χτίσουμε ένα αυτοματοποιημένο μηχανοκίνητο blind που θα ανοίγει και θα κλείνει αυτόματα σε προκαθορισμένες ώρες. Προηγουμένως, έχουμε κατασκευάσει πολλά έργα οικιακού αυτοματισμού στα οποία αυτοματοποιήσαμε τα φώτα, τους κινητήρες κ.λπ. Μπορείτε να τα ελέγξετε αν σας ενδιαφέρει. Έτσι, επιστρέφοντας, αυτές οι περσίδες που ελέγχονται από το Arduino μπορούν επίσης να λαμβάνουν εντολές από τον βοηθό της Google, έτσι ώστε να μπορείτε να ανοίξετε ή να κλείσετε τα παράθυρα σας από απόσταση μέσω φωνητικών εντολών. Συναρπαστικό; Τότε, ας το φτιάξουμε.
Απαιτούμενα στοιχεία για την κατασκευή αυτοματοποιημένων τυφλών Arduino
Το έργο είναι σχετικά απλό και δεν απαιτούνται πολλά στοιχεία. Απλώς συγκεντρώστε τα στοιχεία που αναφέρονται παρακάτω.
- NodeMCU
- Stepper Motor - 28BYJ-48
- Ενότητα προγράμματος οδήγησης κινητήρα Stepper
- LM117-3.3V
- Πυκνωτές (10uf, 1uf)
- Προσαρμογέας 12V DC
- Πίνακας Perf
- Σετ συγκόλλησης
- Εκτυπωτής 3D
Έλεγχος ρολών με χρήση Arduino
Τώρα υπάρχουν πολλοί τύποι περσίδων στην αγορά, αλλά ο συνηθέστερα χρησιμοποιούμενος έχει ένα σχοινί με χάντρες (όπως φαίνεται παρακάτω) που μπορεί να τραβηχτεί για να ανοίξει ή να κλείσει τις περσίδες.
Όταν τραβήξουμε αυτό το κυκλικό σχοινί προς τη φορά των δεικτών του ρολογιού, θα ανοίξουν οι περσίδες των παραθύρων και όταν τραβήξουμε αυτό το σχοινί προς την αριστερόστροφη κατεύθυνση, οι περσίδες των παραθύρων θα κλείσουν. Έτσι, εάν θέλαμε να αυτοματοποιήσουμε αυτήν τη διαδικασία, το μόνο που πρέπει να κάνουμε είναι να χρησιμοποιήσουμε έναν κινητήρα για να τραβήξουμε αυτό το σχοινί δεξιόστροφα ή αριστερόστροφα και θα τελειώσουμε με αυτό. Στην πραγματικότητα, αυτό θα κάνουμε σε αυτό το έργο. θα χρησιμοποιήσουμε τον κινητήρα stepper 28BYJ-48 μαζί με ένα NodeMCU για να τραβήξουμε το χάντρες.
Σχεδιάστε και κατασκευάστε το τυφλό εργαλείο παραθύρου
Το ηλεκτρονικό τμήμα αυτού του έργου ήταν αρκετά απλό και ευθεία προς τα εμπρός, το προκλητικό μέρος ήταν στην κατασκευή του τυφλού εργαλείου που θα μπορούσε να τραβήξει το χάντρες. Ας ξεκινήσουμε λοιπόν αυτό το άρθρο με το σχεδιασμό των τυφλών γραναζιών, δεν πρόκειται να αναφερθώ σε λεπτομέρειες σχετικά με το πώς να σχεδιάσετε το γρανάζι, αλλά αυτή η βασική ιδέα θα σας βοηθήσει. Παρακάτω φαίνεται μια εικόνα του σχοινιού με τις χάντρες.
Και πάλι, υπάρχουν πολλοί τύποι σχοινιών, αλλά τα συνηθέστερα χρησιμοποιούμενα σχοινιά είναι η απόσταση από κέντρο σε κέντρο κάθε χάντρας είναι 6 mm και η διάμετρος κάθε χάντρας είναι 4 mm. Χρησιμοποιώντας αυτές τις πληροφορίες, μπορούμε να ξεκινήσουμε τη σχεδίαση των εργαλείων μας. Εάν το σχοινί στις περσίδες σας έχει τις ίδιες διαστάσεις όπως συζητήθηκε, μπορείτε απλά να παραλείψετε αυτό το βήμα και να κατεβάσετε το αρχείο STL που παρέχεται σε αυτό το άρθρο και να εκτυπώσετε το γρανάζι. Εάν το σχοινί σας έχει διαφορετική διάταξη χάντρες, τότε πρέπει να ξανασχεδιάσετε το τυφλό γρανάζι.
Αποφάσισα να έχω 24 χάντρες στο γρανάζι μου για να αποκτήσω το βέλτιστο μέγεθος του γραναζιού, μπορείτε να επιλέξετε οποιονδήποτε αριθμό κοντά σε αυτό για να είναι ο τροχός σας μεγάλος ή μικρός. Τώρα, γνωρίζουμε ότι η απόσταση μεταξύ κάθε χάντρας είναι 6mm και χρειαζόμαστε 24 χάντρες στο γρανάζι μας. Ο πολλαπλασιασμός και των δύο δίνει την περιφέρεια του γραναζιού. Με αυτά τα δεδομένα, μπορείτε να υπολογίσετε την ακτίνα του γραναζιού. Όπως μπορείτε να δείτε στην παραπάνω εικόνα, η διάμετρος του γραναζιού μου υπολογίστηκε να είναι περίπου 46 mm. Αλλά θυμηθείτε, αυτή δεν είναι η πραγματική διάμετρος του γραναζιού, επειδή δεν έχουμε λάβει υπόψη τη διάμετρο της χάντρας που είναι 4 mm. Έτσι, η πραγματική διάμετρος του γραναζιού θα είναι 42 mm, εκτύπωσα και δοκίμασα πολλούς τροχούς γραναζιού πριν βρω αυτόν που λειτουργεί καλύτερα. Αν δεν σας αρέσουν τα σχέδια,απλώς κατεβάστε και εκτυπώστε τα αρχεία STL από την επόμενη παράγραφο και συνεχίστε με το έργο σας.
3D Εκτύπωση της βάσης του κινητήρα και του τυφλού εργαλείου
Μαζί με το γρανάζι, θα χρειαστεί επίσης ένα μικρό περίβλημα που μπορεί να τρυπηθεί στον τοίχο και να κρατήσει τον κινητήρα στη θέση του, τόσο το περίβλημα όσο και το γρανάζι που χρησιμοποιούνται σε αυτό το έργο φαίνονται παρακάτω.
Μπορείτε να βρείτε πλήρη αρχεία σχεδίασης και αρχεία STL στη σελίδα Arduino Blind Control Thingiverse που δίνεται παρακάτω. Μπορείτε απλώς να κατεβάσετε και να εκτυπώσετε το τυφλό κιβώτιο ταχυτήτων και του κινητήρα σας.
Κατεβάστε αρχεία STL για τυφλό γρανάζι και θήκη κινητήρα
Διάγραμμα κυκλώματος για τον έλεγχο Arduino Blinds
Μόλις είστε έτοιμοι με το γρανάζι και το συγκρότημα, είναι εύκολο να προχωρήσετε με το τμήμα ηλεκτρονικών και λογισμικού. Το πλήρες διάγραμμα κυκλώματος για το έργο ελέγχου IoT Blind φαίνεται παρακάτω.
Χρησιμοποιήσαμε έναν προσαρμογέα 12V για να τροφοδοτήσουμε ολόκληρη τη ρύθμιση. ο ρυθμιστής LM1117-3.3V μετατρέπει τα 12V σε 3.3V τα οποία μπορούν να χρησιμοποιηθούν για την τροφοδοσία της πλακέτας NodeMCU. Η μονάδα οδηγού κινητήρα stepper τροφοδοτείται απευθείας από τον προσαρμογέα 12V. Προσπάθησα να τρέξω το stepper μοτέρ στα 5V, αλλά τότε δεν παρείχε αρκετή ροπή για να τραβήξω τα blinds, οπότε βεβαιωθείτε ότι χρησιμοποιείτε επίσης 12V
Εκτός από αυτό, το κύκλωμα είναι πολύ απλό, εάν είστε νέοι στους κινητήρες stepper, ρίξτε μια ματιά στα βασικά του άρθρου stepper motor για να καταλάβετε πώς λειτουργεί και πώς μπορεί να χρησιμοποιηθεί με έναν μικροελεγκτή.
Εφαρμογή Blynk για Arduino Blind Control
Πριν μπείτε στο πρόγραμμα Arduino για τον έλεγχο των τυφλών, ας ανοίξουμε την εφαρμογή blynk και να δημιουργήσουμε μερικά κουμπιά χρησιμοποιώντας τα οποία μπορούμε να ανοίξουμε ή να κλείσουμε τα blinds μας. Θα χρειαστεί επίσης αυτό αργότερα για έλεγχο από το σπίτι της Google.
Μόλις πρόσθεσα δύο κουμπιά για να ανοίξω και να κλείσω τα blinds και ένα χρονοδιακόπτη για να ανοίξω τα blinds στις 10:00 π.μ. κάθε μέρα. Μπορείτε να προσθέσετε πολλαπλούς χρονοδιακόπτες για να ανοίξετε ή να κλείσετε τις περσίδες σε διαφορετικά διαστήματα της ημέρας. Βασικά, όταν πρέπει να κλείσουμε τα blinds, πρέπει να ενεργοποιήσουμε τον εικονικό πείρο V1 και όταν πρέπει να ανοίξουμε τα blinds, πρέπει να ενεργοποιήσουμε τον εικονικό πείρο V2. Το πρόγραμμα ελέγχου του βηματικού κινητήρα με βάση το κουμπί που πατάται εδώ θα είναι γραμμένο στο Arduino IDE, το ίδιο συζητείται παρακάτω.
Προγραμματισμός NodeMCU για τον έλεγχο τυφλών χρησιμοποιώντας το Blynk
Ο πλήρης κωδικός ESP8266 για αυτό το Blind Control Project βρίσκεται στο κάτω μέρος αυτής της σελίδας. Το πρόγραμμά μας πρέπει να περιμένει μια εντολή από την εφαρμογή blynk και με βάση αυτήν την εντολή, πρέπει να περιστρέψουμε τον κινητήρα stepper είτε προς τα δεξιά είτε προς την αριστερόστροφη κατεύθυνση. Τα σημαντικά τμήματα του κώδικα συζητούνται παρακάτω.
Σύμφωνα με το διάγραμμα κυκλώματος, χρησιμοποιήσαμε ψηφιακές ακίδες 1, 2, 3 και 4 στο nodemcu για τον έλεγχο του κινητήρα μας. Επομένως, πρέπει να δημιουργήσουμε μια παρουσία που ονομάζεται stepper χρησιμοποιώντας αυτές τις καρφίτσες όπως φαίνεται παρακάτω. Παρατηρήστε ότι έχουμε ορίσει τις ακίδες στις παραγράφους 1, 3, 2 και 4. Έγινε σκόπιμα και δεν είναι λάθος. πρέπει να αλλάξουμε τους πείρους 2 και 3 για να λειτουργεί σωστά ο κινητήρας.
// δημιουργήστε μια παρουσία της κατηγορίας stepper χρησιμοποιώντας τα βήματα και τις καρφίτσες Stepper stepper (STEPS, D1, D3, D2, D4).
Στο επόμενο βήμα, πρέπει να μοιραστούμε το διακριτικό ελέγχου ταυτότητας της εφαρμογής blynk και τα διαπιστευτήρια Wi-Fi με τα οποία πρέπει να συνδεθεί ο ελεγκτής IoT Blind. Εάν δεν είστε σίγουροι πώς να αποκτήσετε αυτό το διακριτικό Blynk, ανατρέξτε στο έργο Έλεγχος LED Blynk για να κατανοήσετε τα βασικά στοιχεία της εφαρμογής blynk και πώς να το χρησιμοποιήσετε.
// Θα πρέπει να λάβετε το Auth Token στην εφαρμογή Blynk. // Μεταβείτε στις Ρυθμίσεις έργου (εικονίδιο παξιμαδιού). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Τα διαπιστευτήριά σας WiFi. // Ορίστε τον κωδικό πρόσβασης σε "" για ανοιχτά δίκτυα. char ssid = "CircuitDigest"; char pass = "dummy123";
Συνεχίζοντας με τον κωδικό μας, μετά τη λειτουργία εγκατάστασης, έχουμε ορίσει δύο μεθόδους για το blynk. Όπως αναφέρθηκε προηγουμένως, πρέπει να καθορίσουμε τι πρέπει να κάνουν οι εικονικές ακίδες V1 και V2. Ο κωδικός για το ίδιο δίνεται παρακάτω.
BLYNK_WRITE (V1) // ΚΛΕΙΣΤΕ ΤΑ ΣΥΛΛΟΓΗ {Serial.println ("Κλείσιμο περσίδων"); if (άνοιγμα == true) {για (int c_val = 0; c_val <= 130; c_val ++) // περιστρέψτε αριστερόστροφα για να κλείσετε το {stepper.step (c_val); απόδοση παραγωγής(); } κλειστό = true; άνοιγμα = false; disable_motor (); // πάντα επιθυμητοί βηματικοί κινητήρες μετά τη χρήση για μείωση της κατανάλωσης ενέργειας και της θέρμανσης}} BLYNK_WRITE (V2) // ΑΝΟΙΓΜΑ ΤΩΝ ΚΛΕΙΔΙΩΝ {Serial.println ("Opening Blinds"); if (κλειστό == true) {για (int cc_val = 0; cc_val> = -130; cc_val--) // περιστρέψτε προς τα δεξιά για να ανοίξετε το {stepper.step (cc_val); απόδοση παραγωγής(); } άνοιγμα = αλήθεια; κλειστό = false; } disable_motor (); // πάντα επιθυμητοί βηματικοί κινητήρες μετά τη χρήση για μείωση της κατανάλωσης ενέργειας και της θέρμανσης}
Όπως μπορείτε να δείτε το V1 χρησιμοποιείται για το κλείσιμο των περσίδων και το V2 χρησιμοποιείται για το άνοιγμα των περσίδων. Χρησιμοποιείται βρόχος για περιστροφή των κινητήρων δεξιόστροφα ή αριστερόστροφα για 130 βήματα. Πειραματίστηκα με τα blind μου για να βρω ότι με 130 βήματα, μπορώ να ανοίξω και να κλείσω πλήρως τα blinds. Ο αριθμός σας μπορεί να διαφέρει. Το βρόχο για περιστροφή του βηματικού κινητήρα προς τα δεξιά και αριστερόστροφα φαίνεται παρακάτω.
για (int c_val = 0; c_val <= 130; c_val ++) // περιστροφή στο αριστερόστροφα για κλείσιμο του {stepper.step (c_val); απόδοση παραγωγής(); } για (int cc_val = 0; cc_val> = -130; cc_val--) // περιστρέψτε προς τα δεξιά για να ανοίξετε το {stepper.step (cc_val); απόδοση παραγωγής(); }
Μπορείτε επίσης να παρατηρήσετε δύο μεταβλητές Boolean «ανοιχτές» και «κλειστές» στο πρόγραμμά μας. Αυτές οι δύο μεταβλητές χρησιμοποιούνται για να αποτρέψουν το μοτέρ από το άνοιγμα ή το κλείσιμο των περσίδων δύο φορές. Δηλαδή, οι περσίδες θα ανοίξουν μόνο όταν είναι προηγουμένως κλειστές και θα κλείσουν μόνο όταν ανοίγουν προηγουμένως
Πώς να αυξήσετε την ταχύτητα του κινητήρα Stepper 28BJY-48;
Ένα μειονέκτημα της χρήσης του κινητήρα stepper 28BJY-48 είναι ότι είναι πολύ αργό. Αυτοί οι κινητήρες κατασκευάστηκαν αρχικά για χρήση σε εφαρμογές χαμηλής ταχύτητας υψηλής ακρίβειας, οπότε μην περιμένετε να κινηθούν αυτοί οι κινητήρες σε υψηλή ταχύτητα. Εάν θέλετε να αυξήσετε την ταχύτητα του κινητήρα stepper χρησιμοποιώντας το Arduino, υπάρχουν δύο παράμετροι που μπορείτε να αλλάξετε. Το ένα είναι το #define STEPS 64, βρήκα ότι όταν τα βήματα ορίζονται ως 64, ο κινητήρας ήταν συγκριτικά πιο γρήγορος. Μια άλλη παράμετρος είναι ένα stepper.setSpeed (500); Και πάλι βρήκα το 500 να είναι η βέλτιστη τιμή, κάτι περισσότερο από αυτό που κάνει τον κινητήρα stepper πιο αργό.
Γνωρίζετε κάποιον άλλο τρόπο για να αυξήσετε την ταχύτητα αυτών των κινητήρων; Εάν ναι, αφήστε τα στην παρακάτω ενότητα σχολίων.
Πώς να αποτρέψετε την υπερθέρμανση του βηματικού κινητήρα;
Οι κινητήρες Stepper πρέπει πάντα να απενεργοποιούνται όταν δεν χρησιμοποιούνται για την αποφυγή υπερθέρμανσης. Η απενεργοποίηση ενός κινητήρα stepper είναι πολύ απλή. απλώς αλλάξτε την κατάσταση των ακίδων και των τεσσάρων ακίδων GPIO που ελέγχουν τον κινητήρα stepper σε χαμηλό. Αυτό είναι πολύ σημαντικό, αλλιώς ο κινητήρας σας μπορεί να ζεσταθεί πολύ στα + 12V και να υποστεί ζημιά μόνιμα. Το πρόγραμμα απενεργοποίησης του κινητήρα stepper δίνεται παρακάτω.
void disable_motor () // σβήστε τον κινητήρα όταν τελειώσετε για να αποφύγετε τη θέρμανση {digitalWrite (D1, LOW). digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Έλεγχος τυφλών παραθύρων χρησιμοποιώντας τον Βοηθό Google
Θα χρησιμοποιήσουμε το API blynk για τον έλεγχο των περσίδων μέσω του βοηθού Google, θα είναι παρόμοιο με το έργο αυτοματισμού οικιακής φωνής, οπότε ελέγξτε αν ενδιαφέρεστε. Βασικά, πρέπει να ενεργοποιήσουμε τον παρακάτω σύνδεσμο όταν λέμε μια προκαθορισμένη φράση στον Βοηθό Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Βεβαιωθείτε ότι έχετε αλλάξει το διακριτικό ελέγχου ταυτότητας σε αυτό που παρέχεται από την εφαρμογή blynk. Μπορείτε ακόμη και να δοκιμάσετε αυτόν τον σύνδεσμο στο πρόγραμμα περιήγησης chrome για να δείτε εάν λειτουργεί όπως αναμένεται. Τώρα που ο σύνδεσμος είναι έτοιμος, απλά πρέπει να φτάσουμε στο IFTTT και να δημιουργήσουμε δύο μικροεφαρμογές που μπορούν να ενεργοποιήσουν τον εικονικό πείρο V1 και V2 όταν ζητάμε να κλείσουμε και να ανοίξουμε τα blinds. Και πάλι, δεν μπαίνω στις λεπτομέρειες αυτού, επειδή το έχουμε κάνει πολλές φορές. Εάν χρειάζεστε περισσότερη βοήθεια, ανατρέξτε σε αυτό το ραδιοφωνικό πρόγραμμα FM που ελέγχεται με φωνή, απλώς αντικαταστήστε τις υπηρεσίες adafruit με webhooks Μοιράζομαι επίσης ένα στιγμιότυπο οθόνης του αποσπάσματος μου για αναφορά.
Αυτόματος έλεγχος τυφλών παραθύρων με βάση το Arduino - Επίδειξη
Αφού το κύκλωμα και τα τυπωμένα τρισδιάστατα περιβλήματα είναι έτοιμα, απλώς συναρμολογήστε τη συσκευή στον τοίχο ανοίγοντας δύο οπές στον τοίχο. Η εγκατάστασή μου φαίνεται στις παρακάτω εικόνες.
Μετά από αυτό, βεβαιωθείτε ότι τα blind σας είναι σε ανοιχτή κατάσταση και στη συνέχεια ενεργοποιήστε το κύκλωμα. Τώρα, μπορείτε να προσπαθήσετε να κλείσετε τα blinds από την εφαρμογή blynk ή μέσω του Βοηθού Google και θα πρέπει να λειτουργεί. Μπορείτε επίσης να ρυθμίσετε τα χρονόμετρα στην εφαρμογή blynk να ανοίγουν και να κλείνουν αυτόματα τα blind σε μια συγκεκριμένη ώρα της ημέρας.
Η πλήρης εργασία του έργου βρίσκεται στο παρακάτω βίντεο. Αν έχετε απορίες, μη διστάσετε να τις γράψετε στην παρακάτω ενότητα σχολίων. Επίσης, μπορείτε να χρησιμοποιήσετε τα φόρουμ μας για άλλες τεχνικές συζητήσεις.