- Potrebne komponente
- Opis projekta:
- FingerPrint modul:
- Rad sustava za praćenje zasnovan na otiscima prstiju
- Kružni dijagram i opis za projekt Sustava praćenja otiska prsta
- Objašnjenje koda:
Sustavi pohađanja često se koriste za obilježavanje prisutnosti u uredima i školama. Od ručnog obilježavanja prisutnosti u registrima prisutnosti do korištenja visokotehnoloških aplikacija i biometrijskih sustava, ti su se sustavi znatno poboljšali. U našim prethodnim projektima pokrili smo nekoliko drugih projekata elektroničkog pohađanja koristeći RFID i AVR mikrokontroler, 8051 i Raspberry Pi. U ovom smo projektu koristili Modul otiska prsta i Arduino za uzimanje i čuvanje podataka i evidencije o prisutnosti. Korištenjem senzora otiska prsta sustav će postati sigurniji za korisnike. Sljedeći odjeljci objašnjavaju tehničke detalje o izradi biometrijskog sustava praćenja na temelju otiska prsta pomoću Arduina.
Potrebne komponente
- Arduino -1
- Modul otiska prsta -1
- Gumb - 4
- LED diode -1
- 1K otpornik -2
- Otpor 2.2K -1
- Vlast
- Spajanje žica
- Kutija
- Zujalica -1
- LCD 16x2 -1
- Daska za kruh -1
- RTC modul -1
Opis projekta:
U ovom krugu sustava praćenja otiska prsta koristili smo modul Senzor otiska prstaza autentifikaciju istinske osobe ili zaposlenika unosom prsta u sustav. Ovdje koristimo 4 tipke za upis, Delete, UP / Down. Tipka ENROLL i DEL ima tri značajke. Tipka ENROLL koristi se za upis nove osobe u sustav. Dakle, kada korisnik želi upisati novi prst, on / ona mora pritisnuti tipku ENROLL i tada LCD traži ID, gdje korisnik želi pohraniti sliku otiska prsta. Sada, ako u ovom trenutku korisnik ne želi nastaviti dalje, može ponovno pritisnuti tipku ENROLL za povratak. Ovaj put tipka ENROLL ponaša se kao tipka Natrag, tj. Tipka ENROLL ima i funkciju upisa i povratak. Uz to se tipka za registraciju koristi i za preuzimanje podataka o prisutnosti preko serijskog monitora. Slično tome, tipka DEL / OK također ima istu dvostruku funkciju kao kad korisnik upiše novi prst,tada treba odabrati ID prsta pomoću još dvije tipke, naime GORE i DOLJE. Sada korisnik treba pritisnuti tipku DEL / OK (ovaj put se ova tipka ponaša kao OK) da bi nastavio s odabranim ID-om. A tipka Del služi za resetiranje ili brisanje podataka s EEPROM-a Arduino.

FingerPrint modul:

Modul senzora otiska prsta snima sliku otiska prsta, a zatim je pretvara u ekvivalentni predložak i sprema u svoju memoriju prema odabranom ID-u Arduino. Cijelim postupkom zapovijeda Arduino poput snimanja otiska prsta, pretvaranja u predloške i pohranjivanja kao ID itd. Možete provjeriti još neke projekte pomoću modula otiska prsta:
Sigurnosni sustav zasnovan na otiscima prstiju
Biometrijski uređaj za glasanje na osnovi otiska prsta
Ovdje smo dodali žutu LED diodu koja pokazuje da je modul otiska prsta spreman za snimanje slike prsta. Zujalica se također koristi za razne indikacije. Arduino je glavna komponenta ovog sustava odgovorna je za kontrolu cijelog sustava.
Rad sustava za praćenje zasnovan na otiscima prstiju
Rad ovog projekta sustava praćenja otisaka prstijuje prilično jednostavan. Prije svega, korisnik mora upisati njegove otiske pomoću gumba. Da biste to učinili, korisnik treba pritisnuti tipku ENROLL i tada LCD traži unos ID-a za otisak prsta kako bi ga spremio u memoriju po imenu ID-a. Dakle, sada korisnik treba unijeti ID pomoću tipki GORE / DOLJE. Nakon odabira ID-a, korisnik treba pritisnuti tipku OK (tipka DEL). Sada će LCD tražiti da stavi prst preko modula otiska prsta. Sada korisnik treba staviti prst preko modula za ispis prsta, a zatim modul snima prst. Sada će LCD reći da uklonite prst s modula za otiske prstiju i ponovo zatražiti da ponovo stavite prst. Sada korisnik treba ponovo staviti prst i modul snima sliku i pretvara je u predloške te je pohranjuje po odabranom ID-u u memoriju modula za ispis prsta.Sada će korisnik biti registriran i on / ona može hraniti prisutnost stavljanjem prsta preko modula za otiske prstiju. Istom metodom svi će korisnici biti registrirani u sustav.
Sada ako korisnik želi ukloniti ili izbrisati bilo koji pohranjeni ID ili otisak prsta, tada mora pritisnuti tipku DEL. Jednom kada se pritisne tipka za brisanje, LCD će zatražiti odabir ID-a koji treba izbrisati. Sada korisnik mora odabrati ID i pritisnuti tipku OK (ista tipka DEL). Sada će vas LCD obavijestiti da je otisak prsta uspješno izbrisan.

Kako posjećenost funkcionira u ovom projektu sustava posjećivanja otiska prsta:
Kad god korisnik stavi prst preko modula otiska prsta, tada modul otiska prsta snima sliku prsta i pretražuje je li neki ID povezan s tim otiskom u sustavu. Ako se otkrije ID otiska prsta, tada će se na LCD-u prikazati evidentirano prisustvo, a istovremeno će se oglasiti zvučni signal, a LED će se isključiti dok sustav ne bude spreman za ponovno unos.
Uz modul otiska prsta, koristili smo i RTC modul za vrijeme i datum. Vrijeme i datum neprekidno se pokreću u sustavu. Dakle, Arduino uzima vrijeme i datum kad god pravi korisnik stavi prst preko otiska prsta i spremi ih u EEPROM na dodijeljeni prostor memorije.
Ovdje smo stvorili 5 korisničkih prostora u ovom sustavu tijekom 30 dana. Pritiskom na tipku RESET u Arduinu, a zatim tipkom za odmah registraciju, bit će odgovoran za preuzimanje podataka o prisutnosti preko serijskog monitora iz Arduino EEPROM memorije.
Upravljanje memorijom:
U Arduino UNO imamo 1023 bajta memorije, od čega imamo 1018 bajta za pohranu podataka, a uzeli smo 5 podataka o prisutnosti korisnika tijekom 30 dana. A svaka će prisutnost bilježiti vrijeme i datum, tako da ovo postaje 7-bajtni podatak.
Dakle, ukupna potrebna memorija je
5 * 30 * 7 = 1050, tako da ovdje trebamo više 32 bajta
Ali ako ćemo koristiti 4 korisnika, tada smo to trebali
4 * 30 * 7 = 840
Ovdje smo izveli demonstraciju ovog projekta uzimajući 5 korisnika memorije. Pri tome, nećemo moći pohraniti 32 bajta ili 5 pohađanje evidencije o 5 -og korisnika.
Možete ga isprobati 4 korisnika promjenom nekih redaka u kodu. Dao sam komentare u kodu tamo gdje su potrebne promjene.
Kružni dijagram i opis za projekt Sustava praćenja otiska prsta
Sklop ovog projekta sustava pohađanja zasnovan na otiscima prstiju, kako je prikazano na gornjem dijagramu, prilično je jednostavan. Sadrži Arduino za kontrolu cjelokupnog procesa projekta, tipku za upis, brisanje, odabir ID-ova i za prisustvo, zujalicu za upozorenje, LED diode za indikaciju i LCD za upućivanje korisnika i prikazivanje rezultirajućih poruka.

Kao što je prikazano na shemi spojeva, tipka je izravno spojena na pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOLJE) Arduina u odnosu na tlo. Žuta LED dioda spojena je na digitalni pin D7 Arduina s obzirom na masu kroz 1k otpornik. Rx i Tx modula otiska prsta izravno su povezani na serijski pin D2 i D3 (softverski serijski) Arduina. Opskrba od 5 v koristi se za napajanje modula za ispis prsta preuzetog s ploče Arduino. Zujalica je također spojena na pin A5. LCD 16x2 konfiguriran je u 4-bitnom načinu rada, a njegovi RS, EN, D4, D5, D6 i D7 izravno su povezani na digitalni pin D13, D12, D11, D10, D9 i D8 Arduina.
Objašnjenje koda:
Kôd sustava prisustva otiska prsta za arduino dan je u sljedećim odjeljcima. Iako je kod dobro objašnjen komentarima, ovdje raspravljamo o nekoliko važnih dijelova koda. Za povezivanje modula za ispis prsta s Arduino pločom koristili smo biblioteku otisaka prstiju.
Prije svega, uključujemo datoteku zaglavlja i definiramo ulazni i izlazni pin i definiramo makronaredbu i deklarirane varijable. Nakon toga, u funkciji postavljanja, dajemo smjer definiranom pin-u i pokrećemo LCD i modul za ispis prsta
Nakon njega moramo napisati kod za preuzimanje podataka o prisutnosti.
void setup () {kašnjenje (1000); lcd.početak (16,2); Serial.begin (9600); pinMode (upis, INPUT_PULLUP); pinMode (gore, INPUT_PULLUP); pinMode (dolje, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (podudaranje, INPUT_PULLUP); pinMode (zujalica, IZLAZ); pinMode (indFinger, OUTPUT); digitalWrite (zujalica, LOW); if (digitalRead (enroll) == 0) {digitalWrite (zujalica, VISOKO); kašnjenje (500); digitalWrite (zujalica, LOW); lcd.clear (); lcd.print ("Molimo pričekajte"); lcd.setCursor (0,1); lcd.print ("Preuzimanje podataka");
Nakon toga moramo napisati kod za brisanje podataka o prisutnosti s EEPROM-a.
if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Molimo pričekajte"); lcd.setCursor (0,1); lcd.print ("Resetiranje….."); za (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); za (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("Poništavanje sustava"); kašnjenje (1000); }
Nakon njega pokrećemo modul za ispis prsta, prikazuje poruku dobrodošlice preko LCD-a i također inicirani RTC modul.
Nakon nje, u funkciji petlje, očitali smo RTC vrijeme i prikazali ga na LCD-u
petlja void () {sada = rtc.now (); lcd.setCursor (0,0); lcd.print ("Vrijeme->"); 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 ("Datum->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (now.year (), DEC);
Nakon toga, čeka se da otisak prsta unese i usporedi ID snimljene slike sa spremljenim ID-ima. Ako se dogodi amatch, prijeđite na sljedeći korak. I provjera upisa del tipki
int rezultat = getFingerprintIDez (); if (rezultat> 0) {digitalWrite (indFinger, LOW); digitalWrite (zujalica, VISOKO); kašnjenje (100); digitalWrite (zujalica, LOW); lcd.clear (); lcd.print ("ID:"); lcd.print (rezultat); lcd.setCursor (0,1); lcd.print ("Molimo pričekajte…."); kašnjenje (1000); prisustvo (rezultat); lcd.clear (); lcd.print ("Prisustvo"); lcd.setCursor (0,1); lcd.print ("Registriran"); kašnjenje (1000); digitalWrite (indFinger, HIGH); povratak; }
S obzirom na funkciju void checkKeys () koristi se za provjeru je li tipka Enroll ili pritisnuta ili ne i što učiniti ako se pritisne. Ako je tipka ENROLL pritisnuta, poziva se funkcija Enroll () i pritisne se tipka DEL, a zatim se poziva funkcija delete () .
funkcija void delet () koristi se za unos ID-a koji se briše i pozivanje funkcije uint8_t deleteFingerprint (uint8_t id) koja će izbrisati prst iz zapisa.
Dana funkcija koristi se za snimanje slika s otiskom prsta i njihovo pretvaranje u predložak te spremanje odabranog ID-a u memoriju modula za ispis prsta.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID prsta:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Place Finger"); kašnjenje (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Zadana funkcija koristi se za pohranu vremena i datuma prisutnosti u dodijeljeni prostor EEPROM-a
poništeno prisustvo (int id) {int user = 0, eepLoc = 0; if (id == 1) {eepLoc = 0; korisnik = korisnik1 ++; } inače if (id == 2) {eepLoc = 210; korisnik = korisnik2 ++; } inače ako (id == 3)………….
Dana funkcija koristi se za dohvaćanje podataka s EEPROM-a i slanje na serijski monitor
preuzimanje void (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); ako (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++)); Serial.print (':'); ako (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++));………….
