- Komponenter som brukes:
- Arbeidsforklaring:
- Kretsbeskrivelse:
- Installere wiringPi Library i Raspberry Pi:
- Programmeringsforklaring:
Vi har tidligere brukt RFID i mange av våre RFID-prosjekter og allerede bygget et RFID-basert Attendance System ved hjelp av 8051, her skal vi bygge RFID Based Attendance System ved hjelp av Raspberry Pi.
I dette RFID-baserte Attendance System-prosjektet vil vi forklare deg at hvordan kan vi autorisere og telle oppmøte automatisk ved hjelp av RFID-kort. RFID-teknologi (Radio Frequency Identification and Detection) brukes ofte i skoler, høyskoler, kontorer og stasjoner for forskjellige formål for automatisk å holde oversikt over mennesker. Her vil vi telle oppmøtet til en autorisert person ved å bruke RFID.
Hvis du ikke er kjent med Raspberry Pi, har vi laget en serie opplæringsprogrammer og bringebær-pi-prosjekter, med grensesnitt mot alle grunnleggende komponenter og noen enkle prosjekter til å begynne med, sjekk.
Komponenter som brukes:
- Raspberry Pi (med oppstartet SD-kort)
- Trykknapp
- Summer
- 16x2 LCD
- 10k pott
- 10K motstand
- LED
- 1k motstand
- Brettbrett
- RFID-leser
- Effekt 5 volt
- RFID-koder eller kort
- Ethernet-kabel
- Koble ledninger
RFID-leser og merkelapper:
RFID er en elektronikkinnretning som har to deler - den ene er RFID-leser og den andre er RFID-tag eller kort. Når vi setter RFID-koden nær RFID-leseren, leser den taggdata serielt. RFID-koden har 12-sifret tegnkode i en spole. Denne RFID fungerer med overføringshastighet på 9600 bps. RFID bruker elektromagnet til å overføre data fra Reader til Tag eller Tag to Reader.
Arbeidsforklaring:
Her styrer Raspberry Pi 3 hele prosessen med dette prosjektet (bruker kan bruke hvilket som helst Raspberry Pi Board). RFID Reader leser RFID-kort-ID, disse dataene mottas av Raspberry Pi gjennom UART, deretter validerer RPi kortet og viser resultatene på LCD-skjermen.
Når en person setter RFID-koden sin nær RFID-leseren for å skanne, leser RFID kodenes data og sender den til Raspberry Pi. Deretter leser Raspberry Pi det unike identifikasjonsnummeret til den RFID-koden, og sammenligner deretter disse dataene med forhåndsdefinerte data eller informasjon. Hvis data samsvares med forhåndsdefinerte data, øker Raspberry Pi oppmøtet til taggens person en, og hvis matchet ikke samsvarer, viser mikrokontrolleren 'Ugyldig kort'-melding på LCD-skjermen, og summeren piper kontinuerlig i noen tid. Og her la vi også til en trykknapp for å se totalnr. av oppmøte for alle studentene. Her har vi tatt fire RFID-koder der tre brukes til å registrere oppmøtet til tre studenter og en brukes som ugyldig kort.
Kretsbeskrivelse:
Kretsskjema for dette Raspberry Pi Attendance System Project er veldig enkelt, som inneholder Raspberry Pi 3, RFID Reader, RFID Tags, summer, LED og LCD. Her kontrollerer Raspberry Pi hele prosessen som å lese data som kommer fra leseren, og sammenligne data med forhåndsdefinerte data, kjøre summer, kjøre status-LED og sende status til LCD-skjerm. RFID Reader brukes til å lese RFID-koder. Buzzer brukes til indikasjoner og drives av innebygd NPN-transistor. LCD brukes til å vise status eller meldinger på den.
Tilkoblinger er enkle. LCD er koblet til Raspberry Pi i 4-bits modus. LCDs RS, RW og EN-pin er direkte koblet til ledningPi GPIO 11, GND og 10. Og datapinnen er koblet til ledningerPi GPIO 6, 5, 4 og 1. En 10K-pott brukes til å stille kontrast eller lysstyrke på LCD-skjermen. Summer er koblet til ledningen Pi GPIO pin 7 med hensyn til bakken. Tre lysdioder er koblet til for studentindikasjon med respektive RFID-kort. Og en LED brukes til å vise at systemet er klart til å skanne RFID-kortet. En trykknapp er også koblet til ledningen Pi GPIO pin 12 for å vise antall fremmøter. RFID-leser er koblet til UART-pin (ledning GPIO pin 16).
Installere wiringPi Library i Raspberry Pi:
Som i Python importerer vi import RPi.GPIO som IO- headerfil for å bruke GPIO Pins av Raspberry Pi, her på C-språk trenger vi å bruke wiringPi Library for å bruke GPIO Pins i C-programmet vårt. Vi kan installere den ved å bruke kommandoer nedenfor en etter en, du kan kjøre denne kommandoen fra Terminal eller fra noen SSH-klienter som Putty (hvis du bruker Windows). Gå gjennom veiledningen Komme i gang med Raspberry Pi for å lære mer om håndtering av 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
Test installasjonen av wiringPi-biblioteket, bruk kommandoene nedenfor:
gpio -v gpio readall
Programmeringsforklaring:
Nå først har vi tatt med noen biblioteker og definerer pins som vi trenger å bruke i denne koden.
#inkludere
Etter det, definer noen variabler og matrise for beregning og lagre verdier og strenger.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; røye rfid; int i = 0; røye temp;
Da er det skrevet funksjoner for å utføre hele prosessen. Noen av dem er gitt nedenfor:
Gitt ugyldig lcdcmd- funksjon brukes til å sende kommando til LCD
ugyldig lcdcmd (usignert 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);……………..
Gitt ugyldig skrivefunksjon brukes til å sende data til LCD.
ugyldig skriving (usignert 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, HIGH); digitalWrite (EN, HIGH);……………..
Gitt void clear () -funksjonen brukes til å tømme LCD-skjermen, void setCursor brukes til å angi markørposisjon og ugyldig utskrift for å sende streng til LCD.
ugyldig klar () {lcdcmd (0x01); } ugyldig setCursor (int x, int y) {int set = 0; hvis (y == 0) er satt = 128 + x; hvis (y == 1) sett = 192 + x; lcdcmd (sett); } ugyldig utskrift (char * str) {mens (* str) {skriv (* str); str ++; }}
void start- funksjonen brukes til å initialisere LCD i 4-biters modus.
tomrom begynner (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
void buzzer () og void wait () -funksjonene brukes til å pipetone og for å vente på å plassere kortet igjen. Funksjon void serialbegin brukes til å initialisere seriell kommunikasjon.
void buzzer () {digitalWrite (buzz, HIGH); forsinkelse (1000); digitalWrite (buzz, LOW); } ugyldig vent () {digitalWrite (led5, LOW); forsinkelse (3000); } ugyldig serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); utskrift ("Kan ikke åpne"); setCursor (0,1); utskrift ("seriell port"); }}
I ugyldig oppsett () -funksjon initierer vi alle GPIO-ene, LCD og seriell UART.
ugyldig oppsett () {if (wiringPiSetup () == -1) {clear (); utskrift ("Kan ikke starte"); setCursor (0,1); utskrift ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Gitt void get_card () Funksjonen brukes til å hente data fra RFID-leseren.
I ugyldig hoved () -funksjon har vi vist noen meldinger på LCD og sammenlignet tagdataene med forhåndsdefinerte data for å validere kortet med koden nedenfor.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; klar(); utskrift ("Attd. Registered"); setCursor (0,1); trykk ("Studnet 1"); digitalWrite (led1, HIGH); summer (); digitalWrite (led1, LOW); vente(); } annet hvis (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; klar(); utskrift ("Attd. Registered"); setCursor (0,1);………………
Til slutt brukes void check_button () -funksjonen for å vise total oppmøte ved trykk på knappen.
ugyldig sjekk-knapp () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); klar(); setCursor (0,0); utskrift ("std1 std2 std3");……………..
Sjekk den fullstendige koden for dette Raspberry Pi-fremmøtesystemet nedenfor.