- Κατάλογος στοιχείων
- Διάγραμμα κυκλώματος για κλειδαριά πόρτας πληκτρολογίου Arduino
- Κωδικός Arduino για κλείδωμα πόρτας ψηφιακού πληκτρολογίου
- Arduino Keypad DoorLock Συναρμολόγηση και δοκιμές
Συχνά, χρειαζόμαστε να ασφαλίζουμε ένα δωμάτιο στο σπίτι ή στο γραφείο μας (ίσως ένα εργαστήριο μυστικού dexter), ώστε κανείς να μην μπορεί να έχει πρόσβαση στο δωμάτιο χωρίς την άδειά μας και να διασφαλίζει προστασία από κλοπή ή απώλεια σημαντικών αξεσουάρ και περιουσιακών στοιχείων μας. Υπάρχουν τόσα πολλά είδη συστημάτων ασφαλείας που υπάρχουν σήμερα, αλλά πίσω από τη σκηνή, για έλεγχο ταυτότητας όλα μεταδίδονται σε δακτυλικό αποτύπωμα, σαρωτή αμφιβληστροειδούς, σαρωτή ίριδας, αναγνωριστικό προσώπου, σαρωτή γλωσσών, αναγνώστη RFID, κωδικός πρόσβασης, καρφίτσα, μοτίβα κ.λπ. Από όλες τις λύσεις το χαμηλό κόστος είναι να χρησιμοποιήσετε έναν κωδικό πρόσβασης ή ένα σύστημα που βασίζεται σε pin. Έτσι, σε αυτό το έργο, έφτιαξα ένα Arduino Keypad Door Lock το οποίο μπορεί να τοποθετηθεί σε οποιαδήποτε από τις υπάρχουσες πόρτες σας για να τα ασφαλίσω με έναν ψηφιακό κωδικό πρόσβασης. Προηγουμένως, είχαμε κατασκευάσει και άλλες ενδιαφέρουσες κλειδαριές πορτών που αναφέρονται παρακάτω
- Κλειδαριά πόρτας Arduino RFID
- Κλειδαριά πόρτας σωληνοειδών Arduino
- Κλείδωμα ψηφιακού κώδικα Raspberry Pi
- 555 Ηλεκτρονικό κλείδωμα πόρτας
Πριν δημιουργήσουμε το έργο κλειδώματος πόρτας με κωδικό πρόσβασης, πρώτα, πρέπει να συλλέξουμε τα απαιτούμενα στοιχεία και στη συνέχεια να προχωρήσουμε και να ακολουθήσουμε τη διαδικασία κατασκευής βήμα προς βήμα
Κατάλογος στοιχείων
- Arduino Uno / Pro / Mini ή Custom board με χρήση μικροελεγκτή Atmega 328p
- LCD 16 x 2 (οθόνη υγρού κρυστάλλου)
- Πληκτρολόγιο 4 x 3 ή 4 x 4 για το Arduino
- Βοηθητικό μοτέρ
- 3D τυπωμένο ντουλάπι πόρτας / προσαρμοσμένο ντουλάπι πόρτας
- Πρόσθετα εξαρτήματα για τροφοδοσία κινητού φορτιστή 1 Amp 5 Volt
- 4 "/ 6" πλαστικά κουτιά, καλώδια βραχυκυκλώματος, μπουλόνια παξιμαδιών, πλαστικό περίβλημα κ.λπ.
Διάγραμμα κυκλώματος για κλειδαριά πόρτας πληκτρολογίου Arduino
Το διάγραμμα πλήρους κυκλώματος για το έργο Digital Keypad Door Lock με βάση το Arduino φαίνεται παρακάτω.
Πρώτα απ 'όλα, ξεκινάμε από τον εγκέφαλο αυτού του έργου που είναι το διοικητικό συμβούλιο του Arduino UNO. Η πλακέτα Arduino είναι συνδεδεμένη με LCD και σερβοκινητήρα. Ο σερβοκινητήρας χρησιμοποιείται για να ωθήσει (να κλειδώσει) ή να τραβήξει (ξεκλειδώσει) το μάνδαλο στην πόρτα. Απαιτείται οθόνη LCD 16 x 2 για την εμφάνιση του μηνύματος από το Arduino, το 16 x 2 σημαίνει ότι έχει 16 αριθμό στηλών και 2 αριθμό σειρών. Εάν είστε εντελώς νέος στους 16x2 LCD Display Modules, μπορείτε να ελέγξετε αυτό το Arduino LCD Interfacing tutorial για να μάθετε περισσότερα σχετικά με αυτό.
Εδώ, χρησιμοποιώ ένα σερβοκινητήρα Towerpro SG90 5v για την κατασκευή του προσαρμοσμένου θυρίδας μας. Είναι ένας σερβο κινητήρας βασικού επιπέδου και λειτουργεί καλά με το Arduino χωρίς κύκλωμα οδήγησης ή εξωτερική μονάδα. Επίσης, το κόστος αυτού του σερβοκινητήρα είναι πολύ μικρότερο, ώστε να μπορείτε εύκολα να το αγοράσετε. Μπορείτε επίσης να δείτε αυτό το σεμινάριο Arduino Servo Motor Control για να μάθετε περισσότερα σχετικά με τον σερβο κινητήρα και τον τρόπο λειτουργίας του. Συνδέστε τον σερβοκινητήρα με τον Arduino Digital pin D9 και με τροφοδοτικό 5volt. Αυτός ο σερβοκινητήρας έχει συνολικά 3 γραμμές εισόδου (GND, + 5V & SIGNAL LINE).
Σε αυτό το έργο, έχω χρησιμοποιήσει ένα πληκτρολόγιο 4 x 4 matrix (αλλά το τμήμα πληκτρολογίου 4 x 4 δεν είναι διαθέσιμο στο fritzing για να κάνω αυτήν τη γραφική αναπαράσταση), αλλά μην ανησυχείτε καθώς το πληκτρολόγιο 4 x 3 Matrix λειτουργεί επίσης καλά με την κωδικοποίησή μου. Χρειαζόμαστε ένα πληκτρολόγιο για την εισαγωγή κωδικού πρόσβασης και κλειδώνουμε χειροκίνητα το προσαρμοσμένο ντουλάπι μας. Αποτελείται από 16 πλήκτρα (διακόπτης) 4 πλήκτρα στις σειρές (R1, R2, R3, R4) και 4 πλήκτρα στις στήλες (C1, C2, C3, C4) όταν πατηθεί ένα πλήκτρο, δημιουργεί μια σύνδεση μεταξύ των αντίστοιχων σειρών και στήλες. Ο παρακάτω πίνακας δείχνει πώς να συνδέσετε το Arduino με το πληκτρολόγιο.
Πληκτρολόγιο | Arduino |
Καρφίτσα 1 (σειρά 1) | Ψηφιακό Pin1 |
Καρφίτσα 2 (σειρά 2) | Ψηφιακή καρφίτσα 2 |
Καρφίτσα 3 (σειρά 3) | Ψηφιακή καρφίτσα 3 |
Καρφίτσα 4 (σειρά 4) | Ψηφιακή καρφίτσα 4 |
Καρφίτσα 5 (στήλες 5) | Ψηφιακή καρφίτσα 5 |
Καρφίτσα 6 (στήλες 6) | Ψηφιακή καρφίτσα 6 |
Καρφίτσα 7 (στήλες 7) | Ψηφιακή καρφίτσα 7 |
Κωδικός Arduino για κλείδωμα πόρτας ψηφιακού πληκτρολογίου
Ο πλήρης κωδικός κλειδώματος πόρτας Arduino βρίσκεται στο κάτω μέρος αυτής της σελίδας. Μπορείτε να ανεβάσετε απευθείας τον κώδικα, αλλά συνιστάται να διαβάσετε τις παρακάτω παραγράφους για να κατανοήσετε πώς λειτουργεί ο κώδικας. Επίσης, είναι σημαντικό να βεβαιωθείτε ότι έχετε προσθέσει την ακόλουθη βιβλιοθήκη πληκτρολογίων στο Arduino IDE για να μεταγλωττίσετε τον κώδικα με επιτυχία. Για να το κάνετε αυτό, απλώς ανοίξτε τον παρακάτω σύνδεσμο και κατεβάστε το αρχείο ZIP. Στη συνέχεια, στο Arduino IDE μεταβείτε στο Σκίτσο -> Συμπερίληψη βιβλιοθήκης -> Add.ZIP Library και αναζητήστε το αρχείο που μόλις κατεβάσατε.
- Βιβλιοθήκη πληκτρολογίων Arduino
Αφού εισαγάγετε όλα τα αρχεία κεφαλίδας και βιβλιοθήκης, αντιστοιχίστε όλη την καρφίτσα για LCD και ορίστε το μήκος του κωδικού πρόσβασης και ορίστε την αρχική θέση του σερβο σε 0. Μετά από αυτό, πάρτε έναν τύπο δεδομένων "char" για να δηλώσετε τον αριθμό που μπορεί να το κρατήσει, συμπεριλαμβανομένου του μηδενικός χαρακτήρας.
//#περιλαμβάνω
Με αυτό το κομμάτι κώδικα (char Master = "123456";) - κάτω από το Char Master, δηλώνω τον κωδικό πρόσβασης της κλειδαριάς της πόρτας και έπειτα αντιστοιχίζω τον αριθμό σειρών και στηλών στο πληκτρολόγιο και επίσης δηλώνω keyaps στήλες. Κάτω από την κενή ρύθμιση, αρχικοποιήστε τον πινέλο σερβο σήματος D9, κλείστε την κατάσταση του σερβο και εκτυπώστε το όνομα του έργου / συσκευής / εταιρείας με καθυστέρηση 3 δευτερολέπτων στην ώρα LCD κατά την εκκίνηση της συσκευής.
άκυρη ρύθμιση () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Look project--"); καθυστέρηση (3000) lcd.clear (); }
Κάτω από τη λειτουργία βρόχου, υπάρχει η απλή συνθήκη if-else. Ανάλογα με την κατάσταση (είναι κλειδωμένο αυτόματα), εκτυπώστε "Η πόρτα είναι κοντά" με καθυστέρηση 3 δευτερολέπτων και σέρβο περιστροφή στη θέση κλεισίματος, ο αριθμός των θυρών ως 1 διαφορετικά το ντουλάπι πόρτας παραμένει ανοιχτό και ο αριθμός δεδομένων 0, ο σερβο ανοιχτός περιστρέφεται στη θέση 0 μοίρες έως 180 μοίρες και για να κλείσει πηγαίνει από 180 έως 0. Οι λειτουργίες ανοίγματος σερβο και κλείσιμο σερβο εμφανίζονται παρακάτω.
void ServoOpen () {για (pos = 180; pos> = 0; pos - = 5) {// πηγαίνει από 0 μοίρες σε 180 μοίρες // σε βήματα 1 βαθμού myservo.write (pos); // πείτε στο servo να μεταβεί στη θέση με μεταβλητή «pos» καθυστέρηση (15). // περιμένει 15ms για να φτάσει ο σερβο σε θέση}} άκυρο ServoClose () {για (pos = 0; pos <= 180; pos + = 5) {// πηγαίνει από 180 μοίρες σε 0 βαθμούς myservo.write (pos); // πείτε στο servo να μεταβεί στη θέση με μεταβλητή «pos» καθυστέρηση (15). // περιμένει 15ms για το σερβο να φτάσει στη θέση}}
Γράψτε τη θέση του σερβο με καθυστέρηση 15 δευτερολέπτων για να φτάσετε στη θέση σερβο. Κάτω από την κενή λειτουργία, εκτυπώστε στην οθόνη LCD «Enter Password» και στη συνέχεια η συνθήκη ορίζει ότι ο κωδικός πρόσβασης που έχετε εισαγάγει θα πρέπει να είναι ίδιος με το προσαρμοσμένο κλειδί, μέσα σε αυτό το σώμα σώζονται τα δεδομένα και αποθηκεύονται char στη συστοιχία δεδομένων, αυξάνεται και εισάγεται κωδικός πρόσβασης που εκτυπώνεται σε LCD εάν μήκος δεδομένων (αριθμός κλειδιού) και αντιστοίχιση κωδικού πρόσβασης εισόδου με το Data Master (όπου υπάρχουν τα προκαθορισμένα κλειδιά). Στη συνέχεια, ως οθόνη δράσης LCD, σερβο μονάδα δίσκου, εκτυπώστε στην οθόνη LCD «Η πόρτα είναι ανοιχτή» και ο μετρητής δεδομένων επαναφέρεται στο 0.
Εάν το κλειδί εισόδου δεν ταιριάζει με το Data Master, ως ενέργεια σε καθαρή εκτύπωση LCD στην οθόνη LCD "Λάθος κωδικός πρόσβασης" για ειδοποίηση με καθυστέρηση 1 δευτερολέπτου και παραμένει στη θέση κλειδώματος με σύνολα μετρητών δεδομένων στο 1 και συνεχίστε αυτήν τη διαδικασία σε βρόχο.
if (data_count == Password_Lenght - 1) // εάν το ευρετήριο του πίνακα είναι ίσο με τον αριθμό των αναμενόμενων χαρακτήρων, συγκρίνετε τα δεδομένα με το master {if (! strcmp (Data, Master)) // ίσο με (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Η πόρτα είναι ανοιχτή"); πόρτα = 0; } αλλιώς {lcd.clear (); lcd.print ("Λάθος κωδικός πρόσβασης"); καθυστέρηση (1000) πόρτα = 1; } καθαρισμός δεδομένων(); }
Arduino Keypad DoorLock Συναρμολόγηση και δοκιμές
Τώρα, τοποθετήστε τα πάντα σε πλαστικό κουτί 4 ιντσών / 6 ιντσών και τροφοδοτήστε το με κινητό φορτιστή, ευθυγραμμίστε τα πάντα όμορφα χρησιμοποιώντας περίβλημα. Στην ιδανική περίπτωση, θα μπορούσα να χρησιμοποιήσω εκτύπωση 3D για να συναρμολογήσω το κλείδωμα μου, αλλά μετά το σχεδιασμό των αρχείων μου, διαπίστωσα ότι η εκτύπωση 3D είναι πολύ δαπανηρή, οπότε μόλις διόρθωσα το servo πρώτα, στη συνέχεια συνέδεσα το κανονικό ντουλάπι με το σερβο μου χρησιμοποιώντας μεταλλική πλάκα και κάλυψα με υαλοβάμβακα, αν και λειτουργεί καλά, είναι λιγότερο ασφαλές.
Εάν θέλετε περισσότερη ασφάλεια, τότε πρέπει να εκτυπώσετε ένα μοντέλο κλειδώματος τρισδιάστατης πόρτας που λειτουργεί εσωτερικά με αυτό το σερβο. Μπορείτε να κατεβάσετε τα απαιτούμενα αρχεία STL από τον παρακάτω σύνδεσμο και να τα εκτυπώσετε 3D εάν έχετε πρόσβαση σε έναν εκτυπωτή 3D.
Κατεβάστε αρχεία STL για εκτύπωση 3D
Τα αρχεία σχεδίασης εμφανίζονται επίσης στην παρακάτω εικόνα.
Στην αρχή του έργου, τη στιγμή που το ενεργοποιούμε για πρώτη φορά, πρέπει να δώσουμε το όνομα του έργου (μπορείτε επίσης να εμφανίσετε το όνομα της εταιρείας) έτσι ώστε να φαίνεται έξυπνο και αποκλειστικό σαν μια εμπορική συσκευή (όπως μπορείτε να δείτε στο η παρακάτω εικόνα).
Με καθυστέρηση 3 δευτερολέπτων, κλειδώστε γρήγορα την πόρτα και ελέγξτε απευθείας την οθόνη για την κατάσταση του κλειδώματος της πόρτας, όπως φαίνεται στην παρακάτω εικόνα.
Όταν κλειδώνετε χειροκίνητα την πόρτα, πιέζοντας το πλήκτρο «#», το πρώτο δείχνει πόρτα είναι κλειστή για 1 δευτερόλεπτο και στη συνέχεια να εμφανίζει Συμπληρώστε τον κωδικό. Από την άλλη πλευρά, όταν η πόρτα ξεκλειδώνεται εισάγοντας τον σωστό κωδικό πρόσβασης, δείχνει ότι η πόρτα είναι ανοιχτή.
Εάν η πόρτα παραμένει σε κατάσταση ξεκλειδώματος, εμφανίζεται - Η πόρτα είναι ανοιχτή όσο κλειδώνετε χειροκίνητα την πόρτα σύμφωνα με την κωδικοποίηση. Έχω δώσει τον κωδικό και μπορείτε να προσαρμόσετε τις ρυθμίσεις αλλάζοντας την παράμετρο εμφάνισης κώδικα όπως απαιτείται. Μπορείτε επίσης να ελέγξετε την πλήρη εργασία με το βίντεο που είναι συνδεδεμένο στο κάτω μέρος αυτής της σελίδας.