- Χρησιμοποιούμενα συστατικά:
- Σύνδεση πληκτρολογίου 4x4 με Raspberry Pi με χρήση πολυπλεξίας:
- Περιγραφή κυκλώματος:
- Επεξήγηση εργασίας:
- Επεξήγηση προγραμματισμού:
Η ασφάλεια αποτελεί μείζον μέλημα στην καθημερινή μας ζωή και οι ψηφιακές κλειδαριές έχουν καταστεί σημαντικό μέρος αυτών των συστημάτων ασφαλείας. Υπάρχουν πολλοί τύποι τεχνολογιών διαθέσιμων για τη διασφάλιση του χώρου μας, όπως συστήματα ασφαλείας με βάση PIR, σύστημα ασφαλείας με βάση RFID, συναγερμοί ασφαλείας λέιζερ, συστήματα βιο-μήτρας κ.λπ.
Έχουμε δημιουργήσει προηγουμένως το Digital Lock με κωδικό πρόσβασης χρησιμοποιώντας το Arduino και χρησιμοποιώντας το 8051, εδώ πρόκειται να δημιουργήσουμε αυτό το ψηφιακό κλείδωμα χρησιμοποιώντας το Raspberry Pi με κωδικό πρόσβασης που καθορίζεται από το χρήστη. Μόλις οριστεί ο κωδικός πρόσβασης, ο χρήστης μπορεί να έχει πρόσβαση στην πόρτα μόνο με τον σωστό κωδικό πρόσβασης.
Εάν δεν είστε εξοικειωμένοι με το Raspberry Pi, έχουμε δημιουργήσει μια σειρά μαθημάτων για να μάθουμε το Raspberry Pi, με διασύνδεση με όλα τα βασικά στοιχεία και μερικά απλά έργα για να ξεκινήσετε, ελέγξτε.
Χρησιμοποιούμενα συστατικά:
- Raspberry Pi (με κάρτα SD με εκκίνηση)
- Ενότητα πληκτρολογίου
- Βομβητής
- LCD 16x2
- 10k ποτ
- Πακέτο αντιστάσεων 10k (Pull-up)
- LED
- 1k Αντίσταση
- Πίνακας ψωμιού
- Τρόλεϊ CD / DVD ως Πύλη
- Ισχύς 5 volt
- Οδηγός κινητήρα L293D
- Μπαταρία 12 Volt
- Σύνδεση καλωδίων
Σύνδεση πληκτρολογίου 4x4 με Raspberry Pi με χρήση πολυπλεξίας:
Σε αυτό το κύκλωμα, χρησιμοποιήσαμε την Πολλαπλή Τεχνική για τη διασύνδεση του πληκτρολογίου για την εισαγωγή του κωδικού πρόσβασης στο σύστημα. Εδώ χρησιμοποιούμε το πολυπλεξ 4x4 πληκτρολόγιο με 16 πλήκτρα. Κανονικά εάν θέλουμε να χρησιμοποιήσουμε 16 πλήκτρα τότε χρειαζόμαστε 16 ακίδες για σύνδεση με το Arduino, αλλά στην τεχνική πολυπλεξίας χρειαζόμαστε μόνο 8 ακίδες για διασύνδεση 16 κλειδιών. Για να είναι ένας έξυπνος τρόπος διασύνδεσης μιας μονάδας πληκτρολογίου. Μάθετε περισσότερα για την τεχνική πολυπλεξίας και τη λειτουργία της σε αυτό το ψηφιακό κλείδωμα χρησιμοποιώντας το 8051.
Η τεχνική πολυπλεξίας είναι ένας πολύ αποτελεσματικός τρόπος για τη μείωση του αριθμού των ακίδων που χρησιμοποιούνται με τον μικροελεγκτή για την παροχή εισόδου ή κωδικού πρόσβασης ή αριθμών. Βασικά αυτή η τεχνική χρησιμοποιείται με δύο τρόπους - ο ένας είναι η σάρωση σειράς και ο άλλος είναι η σάρωση στήλης. Εάν χρησιμοποιούμε βιβλιοθήκη πληκτρολογίων (#include
Αλλά εδώ σε αυτό το έργο, έχουμε εφαρμόσει έναν σύντομο τρόπο κωδικοποίησης για το ίδιο πληκτρολόγιο, χωρίς τη χρήση της βιβλιοθήκης πληκτρολογίων. Δείτε το στην ενότητα προγραμματισμού παρακάτω.
Περιγραφή κυκλώματος:
Το κύκλωμα αυτού του Raspberry Pi Digital Door Lock είναι πολύ απλό και περιέχει Raspberry Pi 3, μονάδα πληκτρολογίου, βομβητή, DVD / CD τρόλεϊ ως πύλη και LCD. Εδώ το Raspberry Pi ελέγχει την πλήρη διαδικασία, όπως τη λήψη της μονάδας πληκτρολογίου από τον κωδικό πρόσβασης, τη σύγκριση κωδικών πρόσβασης, τον βομβητή οδήγησης, το άνοιγμα / κλείσιμο της πύλης και την αποστολή κατάστασης στην οθόνη LCD. Το πληκτρολόγιο χρησιμοποιείται για την εισαγωγή κωδικού πρόσβασης. Το Buzzer χρησιμοποιείται για ενδείξεις και καθοδηγείται από ενσωματωμένο τρανζίστορ NPN. Το LCD χρησιμοποιείται για την εμφάνιση της κατάστασης ή των μηνυμάτων σε αυτό.
Οι ακίδες στήλης της μονάδας πληκτρολογίου συνδέονται απευθείας με τους ακροδέκτες GPIO 22, 23, 24, 25 και οι ακίδες Row συνδέονται με 21, 14, 13, 12 των ακίδων WringPi του Raspberry Pi. Μια οθόνη LCD 16x2 συνδέεται με βατόμουρο Pi σε λειτουργία 4-bit. Ο ακροδέκτης ελέγχου LCD, RS, RW και En συνδέεται απευθείας με τους ακροδέκτες GPIO 11, GND και 10. Οι καρφίτσες δεδομένων D4-D7 συνδέονται με τους ακροδέκτες GPIO 6, 15, 4 και 1. Ένας βομβητής συνδέεται στον ακροδέκτη GPIO 8. Και οδηγός κινητήρα Το L293D συνδέεται στο GPIO pin 28 και 29 του Raspberry Pi. Μια μπαταρία 12 volt συνδέεται στον ακροδέκτη 8 του L293D σε σχέση με τη γείωση.
Επεξήγηση εργασίας:
Η εργασία αυτού του έργου είναι απλή. Όταν ο χρήστης εκτελεί τον κωδικό στο Raspberry Pi, η οθόνη LCD εμφανίζει κάποιο μήνυμα καλωσορίσματος και αφού εμφανιστεί το "A- Εισαγωγή κωδικού πρόσβασης" και στη δεύτερη γραμμή Β - Αλλαγή κωδικού πρόσβασης ". Τώρα ο χρήστης μπορεί να επιλέξει την επιλογή του πατώντας A και B στο πληκτρολόγιο.
Τώρα, εάν ο χρήστης θέλει να ανοίξει την πύλη, τότε πρέπει να πατήσει 'A' στο πληκτρολόγιο και τότε το σύστημα θα ζητήσει τον κωδικό πρόσβασης. Ο προεπιλεγμένος κωδικός πρόσβασης είναι "1234". Τώρα ο χρήστης πρέπει να εισαγάγει τον κωδικό πρόσβασης και μετά από αυτό το σύστημα θα ελέγξει τον κωδικό πρόσβασης, είτε είναι έγκυρος είτε όχι:
1. Εάν ο χρήστης εισαγάγει τον σωστό κωδικό πρόσβασης, τότε το σύστημα θα ανοίξει την πύλη.
2. Εάν ο χρήστης εισάγει λανθασμένο κωδικό πρόσβασης, το σύστημα θα στείλει εντολή στο βομβητή για ηχητικό σήμα και εμφανίζει την ένδειξη "Δεν επιτρέπεται η πρόσβαση" στην οθόνη LCD.
Τώρα ας υποθέσουμε ότι ο χρήστης θέλει να αλλάξει τον κωδικό πρόσβασης και στη συνέχεια πρέπει να πατήσει 'B' στο πληκτρολόγιο και στη συνέχεια θα ζητηθεί από τον χρήστη «Τρέχων κωδικός πρόσβασης» ή «Τρέχων κωδικός πρόσβασης» Τώρα ο χρήστης πρέπει να εισαγάγει τον τρέχοντα κωδικό πρόσβασης και, στη συνέχεια, το σύστημα να ελέγξει την ορθότητά του και να εκτελέσει μία από τις συγκεκριμένες εργασίες.
1. Εάν ο χρήστης εισαγάγει τον σωστό κωδικό πρόσβασης, τότε το σύστημα θα ζητήσει "Νέο κωδικό πρόσβασης" και τώρα ο χρήστης μπορεί να αλλάξει τον κωδικό πρόσβασης εισάγοντας νέο κωδικό πρόσβασης.
2. Και αν ο χρήστης εισαγάγει λάθος κωδικό πρόσβασης, τότε το σύστημα θα οδηγήσει τον βομβητή και θα εμφανίσει το μήνυμα "Λάθος κωδικός πρόσβασης: στην οθόνη LCD.
Τώρα ο χρήστης πρέπει να επαναλάβει ολόκληρη τη διαδικασία ξανά για να αλλάξει τον κωδικό πρόσβασης.
Βασικά, το άνοιγμα και το κλείσιμο της Πύλης δεν είναι τίποτα άλλο από την περιστροφή ενός ρολογιού κινητήρα και αριστερόστροφα για άνοιγμα και κλείσιμο της πόρτας. Για ένα μικρό έργο μπορείτε απλά να προσθέσετε έναν κινητήρα DC για να ανοίξετε και να κλείσετε την πόρτα. Μπορούμε επίσης να χρησιμοποιήσουμε Servo ή stepper motor, αλλά πρέπει να αλλάξουμε τον Κώδικα ανάλογα.
Επιπλέον, μπορείτε να χρησιμοποιήσετε ένα κατάλληλο Ηλεκτρονικό Κλείδωμα Πόρτας (εύκολα διαθέσιμο στο διαδίκτυο) στη θέση του CD Trolley. Διαθέτει ηλεκτρομαγνήτη που κρατά την πόρτα κλειδωμένη όταν δεν υπάρχει ρεύμα που περνάει από την κλειδαριά (ανοιχτό κύκλωμα) και όταν κάποιο ρεύμα περνά μέσα από αυτό, η κλειδαριά ξεκλειδώνεται και η πόρτα μπορεί να ανοίξει. Ο κωδικός θα αλλάξει αναλόγως, ελέγξτε επίσης αυτήν την κοινή αξιολόγηση έργου: Arduino RFID Door Lock
Επεξήγηση προγραμματισμού:
Ο προγραμματισμός μοιάζει πολύ με το Arduino. Η συνάρτηση Arduino χρησιμοποιεί τάξεις, αλλά εδώ έχουμε κάνει αυτόν τον κώδικα, χρησιμοποιώντας προγραμματισμό c, χωρίς μαθήματα. Έχουμε επίσης εγκαταστήσει μια βιβλιοθήκη wiringPi για GPIO.
Πρώτα απ 'όλα πρέπει να συμπεριλάβουμε τις απαιτούμενες βιβλιοθήκες και στη συνέχεια να ορίσουμε καρφίτσες για LCD, buzzer, LED και Motor.
#περιλαμβάνω
Αφού ορίσει καρφίτσες για τη σειρά και τις στήλες του πληκτρολογίου και ορίστε πίνακα για αποθήκευση κωδικών πρόσβασης και αριθμών πληκτρολογίου
κάρρος; char pass1 = {'1', '2', '3', '4'}; int n = 0; char σειρά = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{"1", "2", "3", "A"}, {"4", "5", "6", "B"}, {"7", "8", " 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Μετά από αυτό έχουμε γράψει μερικές λειτουργίες για την οδήγηση της οθόνης LCD:
Η λειτουργία void lcdcmd χρησιμοποιείται για την αποστολή εντολών σε LCD και η λειτουργία void εγγραφής χρησιμοποιείται για την αποστολή δεδομένων σε LCD.
Η λειτουργία άκυρης εκτύπωσης χρησιμοποιείται για την αποστολή συμβολοσειράς σε LCD.
άκυρη εκτύπωση (char * str) {ενώ (* str) {write (* str); str ++; }}
Η λειτουργία void setCursor χρησιμοποιείται για τον καθορισμό της θέσης του δρομέα στην οθόνη LCD.
void setCursor (int x, int y) {int set = 0; εάν (y == 0) σύνολο = 128 + x; εάν (y == 1) σύνολο = 192 + x; lcdcmd (σετ); }
Λειτουργία void clear () χρησιμοποιείται για την εκκαθάριση της οθόνης LCD και void buzzer () χρησιμοποιείται για την ηχητική σήμανση.
Οι λειτουργίες void gate_open (), void gate_stop () και void gate_close () χρησιμοποιούνται για την οδήγηση της πύλης (CD Trolley)
void gate_open () {digitalWrite (m1, LOW). digitalWrite (m2, HIGH); καθυστέρηση (2000); } άκυρο gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); καθυστέρηση (2000); } άκυρο gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); καθυστέρηση (2000); }
Το δεδομένο Function χρησιμοποιείται για την αρχικοποίηση της LCD σε λειτουργία 4-bit.
άκυρο έναρξη (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Δεδομένου κενού πληκτρολογίου () η λειτουργία χρησιμοποιείται για τη διασύνδεση της μονάδας πληκτρολογίου με το Raspberry Pi με μια «σύντομη μέθοδο».
άκυρο πληκτρολόγιο () {int i, j; int x = 0, k = 0; καθυστέρηση (2000); ενώ (k <4) {για (i = 0; i <4; i ++) {digitalWrite (col, LOW); για (j = 0; j <4; j ++) {if (digitalRead (σειρά) == 0) {setCursor (x, 1);…………………
Ελέγξτε όλες τις λειτουργίες στον Πλήρες κώδικα παρακάτω, ο κώδικας είναι εύκολος και αυτονόητος.