- Χρησιμοποιούμενα συστατικά:
- Επεξήγηση εργασίας:
- Περιγραφή κυκλώματος:
- Εγκατάσταση wiringPi Library στο Raspberry Pi:
- Επεξήγηση προγραμματισμού:
Έχουμε χρησιμοποιήσει προηγουμένως RFID σε πολλά από τα έργα μας RFID και έχουμε ήδη δημιουργήσει ένα σύστημα παρακολούθησης με βάση το RFID χρησιμοποιώντας το 8051, εδώ πρόκειται να δημιουργήσουμε ένα σύστημα παρακολούθησης με βάση το RFID χρησιμοποιώντας το Raspberry Pi.
Σε αυτό το έργο που βασίζεται σε RFID System Attendance System, θα σας εξηγήσουμε ότι πώς μπορούμε να εγκρίνουμε και να μετράμε την παρακολούθηση αυτόματα χρησιμοποιώντας κάρτες RFID. Η τεχνολογία RFID (Αναγνώριση και Ανίχνευση Ραδιοσυχνοτήτων) χρησιμοποιείται συνήθως σε σχολεία, κολέγια, γραφεία και σταθμούς για διάφορους σκοπούς για την αυτόματη παρακολούθηση των ατόμων. Εδώ θα μετρήσουμε την παρουσία εξουσιοδοτημένου ατόμου χρησιμοποιώντας RFID.
Εάν δεν είστε εξοικειωμένοι με το Raspberry Pi, έχουμε δημιουργήσει μια σειρά μαθημάτων και έργων raspberry pi, με διασύνδεση με όλα τα βασικά στοιχεία και μερικά απλά έργα για να ξεκινήσετε, ελέγξτε.
Χρησιμοποιούμενα συστατικά:
- Raspberry Pi (με κάρτα SD με εκκίνηση)
- Πιέστε το κουμπί
- Βομβητής
- LCD 16x2
- 10k ποτ
- Αντίσταση 10K
- LED
- 1k Αντίσταση
- Πίνακας ψωμιού
- Αναγνώστης RFID
- Ισχύς 5 volt
- Ετικέτες RFID ή κάρτες
- Καλώδιο Ethernet
- Σύνδεση καλωδίων
Αναγνώστης RFID και ετικέτες:
Το RFID είναι μια ηλεκτρονική συσκευή που έχει δύο μέρη - ένα είναι RFID Reader και άλλο είναι RFID tag ή Card. Όταν τοποθετούμε την ετικέτα RFID κοντά στον αναγνώστη RFID, διαβάζει σειριακά δεδομένα ετικετών. Η ετικέτα RFID έχει 12ψήφιο κωδικό χαρακτήρα σε ένα πηνίο. Αυτό το RFID λειτουργεί με ρυθμό baud 9600 bps. Το RFID χρησιμοποιεί ηλεκτρομαγνήτη για τη μεταφορά δεδομένων από τον αναγνώστη στην ετικέτα ή την ετικέτα στον αναγνώστη.
Επεξήγηση εργασίας:
Εδώ το Raspberry Pi 3 ελέγχει ολόκληρη τη διαδικασία αυτού του έργου (Ο χρήστης μπορεί να χρησιμοποιήσει οποιοδήποτε Raspberry Pi Board). Ο αναγνώστης RFID διαβάζει το αναγνωριστικό κάρτας RFID, αυτά τα δεδομένα λαμβάνονται από το Raspberry Pi μέσω του UART και στη συνέχεια το RPi επικυρώνει την κάρτα και εμφανίζει τα αποτελέσματα στην οθόνη LCD.
Όταν ένα άτομο βάζει την ετικέτα RFID κοντά στον αναγνώστη RFID για σάρωση, το RFID διαβάζει τα δεδομένα της ετικέτας και το στέλνει στο Raspberry Pi. Στη συνέχεια, το Raspberry Pi διαβάζει τον μοναδικό αριθμό αναγνώρισης αυτής της ετικέτας RFID και στη συνέχεια συγκρίνει αυτά τα δεδομένα με προκαθορισμένα δεδομένα ή πληροφορίες. Εάν τα δεδομένα αντιστοιχίζονται με προκαθορισμένα δεδομένα, τότε το Raspberry Pi αυξάνει την παρουσία του ατόμου της ετικέτας κατά ένα και εάν δεν ταιριάζει, τότε ο μικροελεγκτής εμφανίζει το μήνυμα «Μη έγκυρη κάρτα» στην οθόνη LCD και ο βομβητής ακούγεται συνεχώς για έναν καιρό. Και εδώ προσθέσαμε επίσης ένα κουμπί για να δείτε το συνολικό αριθ. παρακολούθησης όλων των μαθητών. Εδώ έχουμε λάβει 4 ετικέτες RFID στις οποίες τρεις χρησιμοποιούνται για την καταγραφή της παρουσίας τριών μαθητών και μία χρησιμοποιείται ως μη έγκυρη κάρτα.
Περιγραφή κυκλώματος:
Το διάγραμμα κυκλώματος για αυτό το έργο Raspberry Pi Attendance System Project είναι πολύ απλό, το οποίο περιέχει Raspberry Pi 3, RFID Reader, RFID Tags, buzzer, LED και LCD. Εδώ το Raspberry Pi ελέγχει την πλήρη διαδικασία, όπως Ανάγνωση δεδομένων που προέρχονται από τον Αναγνώστη, σύγκριση δεδομένων με προκαθορισμένα δεδομένα, οδήγηση βομβητή, οδήγηση κατάστασης LED και κατάσταση αποστολής σε οθόνη LCD. Το RFID Reader χρησιμοποιείται για την ανάγνωση ετικετών RFID. Το Buzzer χρησιμοποιείται για ενδείξεις και καθοδηγείται από ενσωματωμένο τρανζίστορ NPN. Το LCD χρησιμοποιείται για την εμφάνιση της κατάστασης ή των μηνυμάτων σε αυτό.
Οι συνδέσεις είναι απλές. Η LCD συνδέεται με το Raspberry Pi σε λειτουργία 4-bit. Ο ακροδέκτης RS, RW και EN της LCD συνδέεται απευθείας στην καλωδίωσηPi GPIO 11, gnd και 10. Και ο ακροδέκτης δεδομένων συνδέεται στην καλωδίωσηPi GPIO 6, 5, 4 και 1. Χρησιμοποιείται ένα δοχείο 10K για τη ρύθμιση της αντίθεσης ή της φωτεινότητας της οθόνης LCD. Το Buzzer συνδέεται στην καλωδίωσηPi GPIO pin 7 σε σχέση με τη γείωση. Τρία LED είναι συνδεδεμένα για ένδειξη μαθητή με αντίστοιχη κάρτα RFID. Και ένα LED χρησιμοποιείται για να δείξει ότι το σύστημα είναι έτοιμο να σαρώσει την κάρτα RFID. Ένα μπουτόν συνδέεται επίσης στην καλωδίωσηPi GPIO ακροδέκτη 12 για να εμφανίσει τον αριθμό παρακολούθησης. Η συσκευή ανάγνωσης RFID είναι συνδεδεμένη στον ακροδέκτη UART (ακροδέκτης GPIO καλωδίωσης 16).
Εγκατάσταση wiringPi Library στο Raspberry Pi:
Όπως και στο Python εισάγουμε το αρχείο εισαγωγής RPi.GPIO ως αρχείο κεφαλίδας IO για να χρησιμοποιήσουμε τις καρφίτσες GPIO του Raspberry Pi, εδώ στη γλώσσα C πρέπει να χρησιμοποιήσουμε τη βιβλιοθήκη wiringPi για να χρησιμοποιήσουμε τις καρφίτσες GPIO στο πρόγραμμα C. Μπορούμε να την εγκαταστήσουμε χρησιμοποιώντας τις παρακάτω εντολές μία προς μία, μπορείτε να εκτελέσετε αυτήν την εντολή από το Terminal ή από κάποιο πρόγραμμα-πελάτη SSH όπως το Putty (εάν χρησιμοποιείτε Windows). Ανατρέξτε στον οδηγό Ξεκινώντας με το Raspberry Pi για να μάθετε περισσότερα σχετικά με τον χειρισμό του Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Δοκιμάστε την εγκατάσταση της βιβλιοθήκης wiringPi, χρησιμοποιήστε τις παρακάτω εντολές:
gpio -v gpio ανάγνωση
Επεξήγηση προγραμματισμού:
Τώρα πρώτα έχουμε συμπεριλάβει μερικές βιβλιοθήκες και καθορίζουμε καρφίτσες που πρέπει να χρησιμοποιήσουμε σε αυτόν τον κώδικα.
#περιλαμβάνω
Μετά από αυτό, ορίστε μερικές μεταβλητές και πίνακες για υπολογισμό και αποθηκεύστε τιμές & συμβολοσειρές.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; char θερμοκρασία;
Στη συνέχεια, οι λειτουργίες έχουν γραφτεί για την εκτέλεση ολόκληρης της διαδικασίας. Μερικά από αυτά δίνονται παρακάτω:
Λόγω του void lcdcmd, η λειτουργία χρησιμοποιείται για την αποστολή εντολών σε LCD
άκυρο lcdcmd (χωρίς υπογραφή int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, LOW); digitalWrite (EN, HIGH);……………..
Η λειτουργία δεδομένης κενού εγγραφής χρησιμοποιείται για την αποστολή δεδομένων σε LCD.
άκυρη εγγραφή (χωρίς υπογραφή int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, ΥΨΗΛΟΣ); digitalWrite (EN, HIGH);……………..
Με τη λειτουργία void clear () χρησιμοποιείται για την εκκαθάριση της οθόνης LCD, το void setCursor χρησιμοποιείται για τη ρύθμιση της θέσης του δρομέα και την άκυρη εκτύπωση για την αποστολή συμβολοσειράς στην οθόνη LCD.
άκυρο καθαρό () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; εάν (y == 0) σύνολο = 128 + x; εάν (y == 1) σύνολο = 192 + x; lcdcmd (σετ); } άκυρη εκτύπωση (char * str) {ενώ (* str) {write (* str); str ++; }}
Η λειτουργία void begin χρησιμοποιείται για την προετοιμασία της οθόνης LCD σε λειτουργία 4-bit.
άκυρο έναρξη (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Οι λειτουργίες void buzzer () και void waiting () χρησιμοποιούνται για να ηχήσουν το βομβητή και για να περιμένουν ξανά την κάρτα. Η λειτουργία void serialbegin χρησιμοποιείται για την αρχικοποίηση της σειριακής επικοινωνίας.
void buzzer () {digitalWrite (buzz, HIGH). καθυστέρηση (1000) digitalWrite (buzz, LOW); } άκυρη αναμονή () {digitalWrite (led5, LOW); καθυστέρηση (3000) } άκυρο serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {διαγραφή (); εκτύπωση ("Δεν είναι δυνατό το άνοιγμα"); setCursor (0,1); εκτύπωση ("σειριακή θύρα"); }}
Στη λειτουργία άκυρης ρύθμισης () ενεργοποιούμε όλα τα GPIO, LCD και σειριακά UART.
άκυρη ρύθμιση () {if (wiringPiSetup () == -1) {clear (); εκτύπωση ("Δεν είναι δυνατή η εκκίνηση"); setCursor (0,1); εκτύπωση ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Given void get_card () Η συνάρτηση χρησιμοποιείται για τη λήψη δεδομένων από τον αναγνώστη RFID.
Στην κενή λειτουργία () , παρουσιάσαμε ορισμένα μηνύματα στην οθόνη LCD και συγκρίναμε τα δεδομένα ετικέτας με προκαθορισμένα δεδομένα για να επικυρώσουμε την κάρτα με τον παρακάτω κωδικό.
……………… εάν (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; Σαφή(); εκτύπωση ("Attd. Registered"); setCursor (0,1); εκτύπωση ("Studnet 1"); digitalWrite (led1, HIGH); βομβητής(); digitalWrite (led1, LOW); Περίμενε(); } αλλιώς εάν (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; Σαφή(); εκτύπωση ("Attd. Registered"); setCursor (0,1);………………
Τέλος, χρησιμοποιείται η λειτουργία void check_button () για την εμφάνιση της συνολικής παρουσίας στο πάτημα του κουμπιού.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); Σαφή(); setCursor (0,0); εκτύπωση ("std1 std2 std3");……………..
Ελέγξτε τον Πλήρες Κωδικό για αυτό το Σύστημα Παρακολούθησης Raspberry Pi παρακάτω.