- Nødvendige komponenter
- Projekt Beskrivelse:
- FingerPrint-modul:
- Arbejde med fingeraftryksbaseret tilstedeværelsessystem
- Kredsløbsdiagram og beskrivelse af Fingerprint Attendance System Project
- Kode Forklaring:
Tilstedeværelsessystemer er almindeligt anvendte systemer til at markere tilstedeværelsen på kontorer og skoler. Fra manuel markering af tilstedeværelsen i tilstedeværelsesregistre til brug af højteknologiske applikationer og biometriske systemer er disse systemer forbedret betydeligt. I vores tidligere projekter har vi dækket få andre elektroniske tilstedeværelsessystemprojekter ved hjælp af RFID og AVR-mikrocontroller, 8051 og raspberry Pi. I dette projekt brugte vi fingeraftryksmodul og Arduino til at tage og opbevare tilstedeværelsesdata og optegnelser. Ved at bruge fingeraftrykssensor bliver systemet mere sikkert for brugerne. I de følgende afsnit forklares tekniske detaljer i at fremstille et fingeraftryksbaseret biometrisk tilstedeværelsessystem ved hjælp af Arduino.
Nødvendige komponenter
- Arduino -1
- Fingerprint-modul -1
- Trykknap - 4
- Lysdioder -1
- 1K modstand -2
- 2,2K modstand -1
- Strøm
- Tilslutning af ledninger
- Boks
- Summer -1
- 16x2 LCD -1
- Brødbræt -1
- RTC-modul -1
Projekt Beskrivelse:
I dette systemkredsløb med fingeraftryk, brugte vi Fingerprint Sensor-moduletat godkende en ægte person eller medarbejder ved at tage deres fingerinput i systemet. Her bruger vi 4 trykknapper til at tilmelde dig, Slet, OP / NED. ENROLL og DEL-tasten har tredobbelte funktioner. ENROLL-nøglen bruges til tilmelding af en ny person til systemet. Så når brugeren ønsker at tilmelde en ny finger, skal han / hun trykke på ENROLL-tasten, hvorefter LCD beder om ID'et, hvor brugeren vil gemme fingeraftryksbilledet. Hvis brugeren på dette tidspunkt ikke ønsker at gå videre, kan han / hun trykke på ENROLL-tasten igen for at gå tilbage. Denne gang opfører ENROLL-nøgle sig som Back-tast, dvs. ENROLL-nøgle har både tilmeldings- og rygfunktion. Udover tilmeldingsnøglen bruges også til at downloade tilstedeværelsesdata via seriel skærm. Tilsvarende har DEL / OK-tasten også den samme dobbelte funktion som når brugeren tilmelder ny finger,så er han / hun nødt til at vælge finger-ID ved hjælp af en anden to-tast, nemlig OP og NED. Nu skal brugeren trykke på DEL / OK-tasten (denne gang opfører denne tast sig som OK) for at fortsætte med det valgte ID. Og Del-nøglen bruges til at nulstille eller slette data fra EEPROM fra Arduino.
FingerPrint-modul:
Fingeraftrykssensormodul indfanger fingeraftryksbillede og konverterer det derefter til den tilsvarende skabelon og gemmer dem i hukommelsen ifølge det valgte ID af Arduino. Hele processen er befalet af Arduino som at tage et billede af fingeraftryk, konvertere det til skabeloner og gemme som ID osv. Du kan kontrollere nogle flere projekter ved hjælp af fingeraftryksmodul:
Fingeraftryksbaseret sikkerhedssystem
Fingeraftryksbaseret biometrisk stemmemaskine
Her har vi tilføjet en gul LED, der indikerer, at fingeraftryksmodulet er klar til at tage et billede af fingeren. En summer bruges også til forskellige indikationer. Arduino er hovedkomponenten i dette system, det er ansvarlig for kontrol af hele systemet.
Arbejde med fingeraftryksbaseret tilstedeværelsessystem
Arbejde med dette fingeraftryksdeltagelsessystemprojekter ret simpelt. Først og fremmest skal brugeren registrere brugerens fingeraftryk ved hjælp af trykknapper. For at gøre dette skal brugeren trykke på ENROLL-tasten og derefter beder LCD om at indtaste ID for fingeraftryk for at gemme det i hukommelsen efter ID-navn. Så nu skal brugeren indtaste ID ved hjælp af OP / NED-tasterne. Efter valg af ID skal brugeren trykke på OK-tasten (DEL-tasten). Nu vil LCD bede om at placere fingeren over fingeraftryksmodulet. Nu skal brugeren placere sin finger over fingeraftryksmodulet, og derefter tager modulet et fingerbillede. Nu vil LCD'et sige at fjerne fingeren fra fingeraftryksmodulet og igen bede om at placere fingeren igen. Nu skal brugeren sætte sin finger igen, og modulet tager et billede og konverterer det til skabeloner og gemmer det ved valgt ID i fingerprintmodulets hukommelse.Nu bliver brugeren registreret, og han / hun kan føde fremmøde ved at lægge fingeren over fingeraftryksmodulet. På samme måde vil alle brugerne blive registreret i systemet.
Hvis brugeren nu vil fjerne eller slette noget af det gemte ID eller fingeraftryk, skal han / hun trykke på DEL-tasten. Når der er trykket på slet-tasten, vil LCD bede om at vælge ID, der skal slettes. Nu skal brugeren vælge ID og trykke på OK-tasten (samme DEL-tast). Nu vil LCD fortælle dig, at fingeraftryk er slettet med succes.
Hvordan Fremmøde fungerer i dette Fingeraftryksdeltagelsessystemprojekt:
Hver gang brugeren placerer sin finger over fingeraftryksmodulet, fanger fingeraftryksmodulet fingeraftrykket og søger efter, om der er noget ID forbundet med dette fingeraftryk i systemet. Hvis der registreres fingeraftryks-ID, vil LCD vise Tilstedeværelsesregistreret, og samtidig bipper en summer, og LED slukker, indtil systemet er klar til at tage input igen.
Sammen med fingeraftryksmodulet har vi også brugt et RTC-modul til tid og dato. Tid og dato kører kontinuerligt i systemet. Så Arduino tager tid og dato, når en ægte bruger lægger fingeren over fingeraftrykket og gemmer dem i EEPROM i den tildelte plads i hukommelsen.
Her har vi oprettet 5 brugerplads i dette system i 30 dage. Ved at trykke på RESET-knappen i Arduino og derefter straks tilmeldingstasten er ansvarlig for at downloade tilstedeværelsesdata over seriel skærm fra Arduino EEPROM-hukommelsen.
Hukommelsesstyring:
Vi har 1023 bytehukommelse i Arduino UNO, hvoraf vi har 1018 byte til at gemme data, og vi har taget 5 brugerdeltagelsesdata i 30 dage. Og hvert fremmøde registrerer tid og dato, så dette bliver 7 byte data.
Så krævet total hukommelse er
5 * 30 * 7 = 1050, så her har vi brug for flere 32 byte
Men hvis vi bruger 4 brugere, krævede vi
4 * 30 * 7 = 840
Her har vi udført dette projektdemonstration ved at tage 5 brugeres hukommelse. Med dette, vil vi ikke i stand til at gemme 32 byte eller 5 fremmøde optegnelser af 5 th brugeren.
Du kan prøve det af 4 brugere ved at ændre nogle linjer i kode. Jeg har fremsat kommentarerne i koden, hvor ændringerne er nødvendige.
Kredsløbsdiagram og beskrivelse af Fingerprint Attendance System Project
Kredsløbet for dette fingeraftryksbaserede tilstedeværelsessystemprojekt, som vist i ovenstående diagram, er ret simpelt. Det har Arduino til styring af hele processen i projektet, trykknap til tilmelding, sletning, valg af id'er og til fremmøde, en summer til alarmering, lysdioder til indikation og LCD til at instruere brugeren og vise de resulterende meddelelser.
Som vist i kredsløbsdiagrammet er en trykknap tilsluttet direkte til pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) i Arduino i forhold til jorden og gul LED er tilsluttet ved Digital pin D7 af Arduino med hensyn til jord gennem en 1k modstand. Fingeraftryksmodulets Rx og Tx er direkte forbundet med Serial pin D2 og D3 (Software Serial) i Arduino. 5v-forsyning bruges til at drive fingeraftryksmodul taget fra Arduino-kortet. En summer er også forbundet ved pin A5. En 16x2 LCD er konfigureret i 4-bit tilstand, og dens RS, EN, D4, D5, D6 og D7 er direkte forbundet med Digital pin D13, D12, D11, D10, D9 og D8 i Arduino.
Kode Forklaring:
Det fingeraftryk deltagelse system kode for Arduino er givet i de efterfølgende afsnit. Selvom koden forklares godt med kommentarer, diskuterer vi her nogle vigtige dele af koden. Vi brugte fingeraftryksbibliotek til at interfacere fingerprint-modul med Arduino-kort.
Først og fremmest inkluderer vi headerfilen og definerer input og output pin og definerer makroen og deklarerede variabler. Efter dette, i installationsfunktionen, giver vi retning til defineret pin og initierer LCD- og fingerprintmodul
Efter det er vi nødt til at skrive kode til download af tilstedeværelsesdata.
ugyldig opsætning () {forsinkelse (1000); lcd.begin (16,2); Serial.begin (9600); pinMode (tilmeld, INPUT_PULLUP); pinMode (op, INPUT_PULLUP); pinMode (ned, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (match, INPUT_PULLUP); pinMode (summer, OUTPUT); pinMode (indFinger, OUTPUT); digitalWrite (summer, LAV); hvis (digitalRead (tilmeld) == 0) {digitalWrite (summer, HIGH); forsinkelse (500); digitalWrite (summer, LAV); lcd.clear (); lcd.print ("Vent venligst"); lcd.setCursor (0,1); lcd.print ("Downloding Data");
Efter det skal vi skrive kode til at rydde fremmødedata fra EEPROM.
hvis (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Vent venligst"); lcd.setCursor (0,1); lcd.print ("Nulstiller….."); 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); }
Efter det starter vi fingeraftryksmodul, der viser velkomstmeddelelse over LCD og også initeret RTC-modul.
Efter det, i loop-funktion, har vi læst RTC-tid og vist den på LCD
ugyldig sløjfe () {nu = 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 (nu. år (), DEC);
Efter det venter på, at fingeraftrykket modtager input og sammenligner optaget billed-ID med gemte ID'er. Hvis der opstår amatch, skal du fortsætte med næste trin. Og også kontrollere tilmeld del nøgler
int resultat = getFingerprintIDez (); hvis (resultat> 0) {digitalWrite (indFinger, LOW); digitalWrite (summer, HIGH); forsinkelse (100); digitalWrite (summer, LAV); lcd.clear (); lcd.print ("ID:"); lcd.print (resultat); lcd.setCursor (0,1); lcd.print ("Vent venligst…."); forsinkelse (1000); fremmøde (resultat) lcd.clear (); lcd.print ("Fremmøde"); lcd.setCursor (0,1); lcd.print ("Registreret"); forsinkelse (1000); digitalWrite (indFinger, HIGH); Vend tilbage; }
Givet ugyldig checkKeys () -funktion bruges til at kontrollere Tilmeld eller DEL-tasten trykkes eller ej, og hvad der skal gøres, hvis der trykkes på den. Hvis ENROLL-tasten trykkes, kaldes Tilmeld () -funktionen, og DEL-tasten trykkes, slettes () -funktionen kaldes.
void delet () -funktion bruges til at indtaste ID, der skal slettes, og kalde uint8_t deleteFingerprint (uint8_t id) -funktion, der sletter en finger fra poster.
Denne funktion bruges til at tage et fingeraftryksbillede og konvertere dem til skabelonen og også gemme det valgte ID i fingerprintmodulets hukommelse.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("finger ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Placer finger"); forsinkelse (2000); mens (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Den givne funktion bruges til at gemme fremmøde tid og dato i den tildelte plads i EEPROM
ugyldigt fremmøde (int id) {int bruger = 0, eepLoc = 0; hvis (id == 1) {eepLoc = 0; bruger = bruger1 ++; } ellers hvis (id == 2) {eepLoc = 210; bruger = bruger2 ++; } ellers hvis (id == 3)………….
Denne funktion bruges til at hente data fra EEPROM og sende til seriel skærm
ugyldig download (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 ++));………….