- Nødvendige komponenter
- Prosjektbeskrivelse:
- FingerPrint-modul:
- Arbeid med fingeravtrykkbasert fremmøtesystem
- Kretsdiagram og beskrivelse for Fingerprint Attendance System Project
- Kode Forklaring:
Fremmøtesystemer er ofte brukte systemer for å markere tilstedeværelsen på kontorer og skoler. Fra manuell merking av oppmøte i fremmøteregister til bruk av høyteknologiske applikasjoner og biometriske systemer, har disse systemene blitt betydelig forbedret. I våre tidligere prosjekter har vi dekket få andre elektroniske oppmøtingssystemprosjekter ved hjelp av RFID og AVR-mikrokontroller, 8051 og bringebær Pi. I dette prosjektet brukte vi fingeravtrykksmodul og Arduino til å ta og oppbevare nærværsdata og poster. Ved å bruke fingeravtrykkssensor vil systemet bli sikrere for brukerne. Følgende seksjoner forklarer tekniske detaljer for å lage et fingeravtrykksbasert biometrisk oppmøtingssystem ved hjelp av Arduino.
Nødvendige komponenter
- Arduino -1
- Fingeravtrykk-modul -1
- Trykknapp - 4
- Lysdioder -1
- 1K Motstand -2
- 2,2K motstand -1
- Makt
- Koble ledninger
- Eske
- Summer -1
- 16x2 LCD -1
- Brødtavle -1
- RTC-modul -1
Prosjektbeskrivelse:
I denne systemkretsen for fingeravtrykk brukte vi Fingerprint Sensor-modulenå autentisere en ekte person eller ansatt ved å ta fingerinndataene i systemet. Her bruker vi fire trykknapper for å registrere, Slett, OPP / NED. ENROLL og DEL-tasten har trippel funksjoner. ENROLL-nøkkel brukes til å registrere en ny person i systemet. Så når brukeren vil registrere en ny finger, må han / hun trykke ENROLL-tasten, og deretter ber LCD om ID, hvor brukeren vil lagre fingeravtrykk. Hvis brukeren på dette tidspunktet ikke ønsker å gå videre, kan han / hun trykke ENROLL-tasten igjen for å gå tilbake. Denne gangen ENROLL-tasten oppfører seg som Back-tasten, dvs. at ENROLL-tasten har både påmelding og tilbakefunksjon. Foruten registreringsnøkkel brukes også til å laste ned oppmøtningsdata over seriell skjerm. På samme måte har DEL / OK-tasten også den samme doble funksjonen som når brukeren registrerer en ny finger,da må han / hun velge finger-ID ved å bruke en annen to-tast, nemlig OPP og NED. Nå må brukeren trykke DEL / OK-tasten (denne gangen oppfører denne tasten seg som OK) for å fortsette med valgt ID. Og Del-tasten brukes til å tilbakestille eller slette data fra EEPROM i Arduino.
FingerPrint-modul:
Fingeravtrykkssensormodul fanger fingeravtrykk og konverterer det til tilsvarende mal og lagrer dem i minnet i henhold til valgt ID av Arduino. Hele prosessen er kommandert av Arduino som å ta et bilde av fingeravtrykk, konvertere det til maler og lagre som ID osv. Du kan sjekke flere prosjekter ved hjelp av fingeravtrykkmodulen:
Fingeravtrykksbasert sikkerhetssystem
Fingeravtrykksbasert biometrisk stemmemaskin
Her har vi lagt til en gul LED som indikerer at fingeravtrykkmodulen er klar til å ta et bilde av fingeren. En summer brukes også til forskjellige indikasjoner. Arduino er hovedkomponenten i dette systemet, det er ansvarlig for kontroll av hele systemet.
Arbeid med fingeravtrykkbasert fremmøtesystem
Arbeidet med dette fingeravtrykk-systemprosjekteter ganske enkelt. Først og fremst må brukeren registrere fingeravtrykk fra brukeren ved hjelp av trykknapper. For å gjøre dette må brukeren trykke ENROLL-tasten og deretter ber LCD om å oppgi ID for fingeravtrykk for å lagre det i minnet etter ID-navn. Så nå må brukeren angi ID ved å bruke OPP / NED-tastene. Etter at du har valgt ID, må brukeren trykke OK-tasten (DEL-tasten). Nå vil LCD be om å plassere fingeren over fingeravtrykkmodulen. Nå må brukeren plassere fingeren over fingeravtrykkmodulen, og deretter tar modulen et fingerbilde. Nå vil LCD-skjermen si at du skal fjerne fingeren fra fingeravtrykkmodulen, og igjen be om å plassere fingeren igjen. Nå må brukeren sette fingeren igjen og modulen tar et bilde og konverterer det til maler og lagrer det etter valgt ID i fingeravtrykkmodulens minne.Nå blir brukeren registrert, og han / hun kan mate oppmøte ved å sette fingeren over fingeravtrykkmodulen. På samme måte blir alle brukerne registrert i systemet.
Nå hvis brukeren vil fjerne eller slette noe av den lagrede ID-en eller fingeravtrykket, må han / hun trykke DEL-tasten. Når du har trykket på slett-tasten, vil LCD be om å velge ID som må slettes. Nå må brukeren velge ID og trykke OK-tasten (samme DEL-tasten). Nå vil LCD gi deg beskjed om at fingeravtrykk er slettet.
Hvordan Fremmøte fungerer i dette Fingeravtrykk Fremmøte System-prosjektet:
Når brukeren plasserer fingeren over fingeravtrykkmodulen, tar fingeravtrykkmodulen et fingerbilde, og søk om ID er knyttet til dette fingeravtrykket i systemet. Hvis fingeravtrykks-ID blir oppdaget, vil LCD-skjermen vise registrert fremmøte, og samtidig vil en lyd pippe en gang, og LED vil slås av til systemet er klart til å ta input igjen.
Sammen med fingeravtrykkmodulen har vi også brukt en RTC-modul for tid og dato. Tid og dato kjører kontinuerlig i systemet. Så Arduino tar tid og dato når en ekte bruker plasserer fingeren over fingeravtrykk og lagrer dem i EEPROM på det tildelte minnesporet.
Her har vi opprettet 5 brukerplasser i dette systemet i 30 dager. Ved å trykke på RESET-knappen i Arduino og deretter umiddelbart registrere vil nøkkelen være ansvarlig for å laste ned oppmøtningsdata over seriell skjerm fra Arduino EEPROM Memory.
Minnehåndtering:
Vi har 1023 byte-minne i Arduino UNO, hvorav vi har 1018 byte til å lagre data, og vi har tatt 5 brukerdeltakelsesdata i 30 dager. Og hvert oppmøte vil registrere tid og dato, så dette blir 7 byte data.
Så det kreves totalt minne
5 * 30 * 7 = 1050 så her trenger vi flere 32 byte
Men hvis vi bruker 4 brukere, krevde vi
4 * 30 * 7 = 840
Her har vi gjort dette prosjektdemonstrasjonen ved å ta 5 brukere minne. Ved dette vil vi ikke kunne lagre 32 byte eller fem fremmøteopptegnelser for den femte brukeren.
Du kan prøve det av 4 brukere ved å endre noen linjer i kode. Jeg har laget kommentarene i koden der endringene er nødvendige.
Kretsdiagram og beskrivelse for Fingerprint Attendance System Project
Kretsen til dette fingeravtrykksbaserte oppmøtingssystemprosjektet, som vist i diagrammet ovenfor, er ganske enkelt. Den har Arduino for å kontrollere hele prosessen i prosjektet, trykknapp for innmelding, sletting, valg av ID og for oppmøte, en summer for varsling, lysdioder for indikasjon og LCD for å instruere brukeren og vise de resulterende meldingene.
Som vist i kretsskjemaet, er en trykknapp koblet direkte til pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) av Arduino i forhold til bakken og gul LED er koblet til Digital pin D7 av Arduino med hensyn til bakken gjennom en 1k motstand. Fingeravtrykkmodulens Rx og Tx direkte koblet til Serial pin D2 og D3 (Software Serial) av Arduino. 5v-forsyning brukes til å drive fingeravtrykkmodul hentet fra Arduino-kortet. En summer er også koblet til på pin A5. En 16x2 LCD er konfigurert i 4-biters modus og dens RS, EN, D4, D5, D6 og D7 er direkte koblet til Digital pin D13, D12, D11, D10, D9 og D8 av Arduino.
Kode Forklaring:
Den fingeravtrykk stede systemkode for arduino er gitt i de etterfølgende avsnitt. Selv om koden er forklart godt med kommentarer, diskuterer vi her noen viktige deler av koden. Vi brukte fingeravtrykksbibliotek for å grensesnitt fingeravtrykk modul med Arduino bord.
Først og fremst inkluderer vi toppteksten og definerer inngangs- og utgangspinnen og definerer makroen og deklarerte variabler. Etter dette, i oppsettfunksjonen, gir vi retning til definert pin og initierer LCD- og fingeravtrykkmodul
Etter det må vi skrive kode for nedlasting av oppmøtedata.
ugyldig oppsett () {forsinkelse (1000); lcd.begin (16,2); Serial.begin (9600); pinMode (registrer deg, INPUT_PULLUP); pinMode (opp, INPUT_PULLUP); pinMode (ned, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (samsvar, INPUT_PULLUP); pinMode (summer, UTGANG); pinMode (indFinger, OUTPUT); digitalWrite (summer, LAV); hvis (digitalRead (registrer) == 0) {digitalWrite (summer, HØY); forsinkelse (500); digitalWrite (summer, LAV); lcd.clear (); lcd.print ("Vennligst vent"); lcd.setCursor (0,1); lcd.print ("Downloding Data");
Etter det må vi skrive kode for å rydde oppmøtedata fra EEPROM.
hvis (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Vennligst vent"); lcd.setCursor (0,1); lcd.print ("Tilbakestiller….."); for (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); for (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("System Reset"); forsinkelse (1000); }
Etter det starter vi fingeravtrykkmodul, viser velkomstmelding over LCD og også initiert RTC-modul.
Etter det, i loop-funksjon, har vi lest RTC-tid og vist den på LCD
ugyldig sløyfe () {nå = rtc.now (); lcd.setCursor (0,0); lcd.print ("Time->"); lcd.print (now.hour (), DEC); lcd.print (':'); lcd.print (now.minute (), DEC); lcd.print (':'); lcd.print (now.second (), DEC); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Date->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (now.year (), DEC);
Etter det, venter på at fingeravtrykket tar input og sammenligner tatt bilde-ID med lagrede ID-er. Hvis det oppstår samsvar, fortsett med neste trinn. Og sjekke innmeldingsnøkler også
int resultat = getFingerprintIDez (); hvis (resultat> 0) {digitalWrite (indFinger, LOW); digitalWrite (summer, HØY); forsinkelse (100); digitalWrite (summer, LAV); lcd.clear (); lcd.print ("ID:"); lcd.print (resultat); lcd.setCursor (0,1); lcd.print ("Vennligst vent…."); forsinkelse (1000); oppmøte (resultat); lcd.clear (); lcd.print ("Oppmøte"); lcd.setCursor (0,1); lcd.print ("Registrert"); forsinkelse (1000); digitalWrite (indFinger, HIGH); komme tilbake; }
Gitt ugyldige checkKeys () -funksjonen brukes til å kontrollere Enroll eller DEL-tasten trykkes eller ikke, og hva du skal gjøre hvis du trykker på den. Hvis ENROLL-tasten ble trykket, kalles Enroll () -funksjonen og DEL-tastetrykk, og deretter slettes () -funksjonen.
void delet () -funksjonen brukes til å angi ID som skal slettes og ringe uint8_t deleteFingerprint (uint8_t id) -funksjon som vil slette finger fra poster.
Gitt funksjon brukes til å ta bilder med fingeravtrykk og konvertere dem til malen og lagre også av valgt ID i fingeravtrykkmodulminnet.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("finger ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Place Finger"); forsinkelse (2000); mens (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Denne funksjonen brukes til å lagre oppmøtetid og dato i det tildelte sporet til EEPROM
ugyldig oppmøte (int id) {int bruker = 0, eepLoc = 0; hvis (id == 1) {eepLoc = 0; bruker = bruker1 ++; } annet hvis (id == 2) {eepLoc = 210; bruker = bruker2 ++; } annet hvis (id == 3)………….
Denne funksjonen brukes til å hente data fra EEPROM og sende til seriell skjerm
ugyldig nedlasting (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); hvis (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++)); Serial.print (':'); hvis (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++));………….