Sunteți pe pagina 1din 22

Controlul accesului cu ajutorul unui sistem biometric

de citire a amprentei

Grupa 1241
08.01.2016
Cluj - Napoca

Savut Flavius
Tutuianu Radu
Rapolti Laszlo

Cuprins

1. Introducere
2. Descrierea componentelor folosite
a. Arduino generaliti
b. Arduino Due
c. Senzor de amprenta Adafruit
i. Modul de funcionare al unui sistem de identificare bazat pe
metode biometrice

ii. Precizia si performanta sistemelor biometrice


d. Modul cu doua relee
e. Tastatura numerica 4x4
3. Sistemul de securitate
4. Programul Sistemului de securitate
5. Bibliografie

1.Introducere
Scopul proiectului este de a crea un sistem de securitate de nivel ridicat pentru a permite
accesul personalului pe baza amprentei si a unei parole universale independent de utilizator.
La pornirea sistemului utilizatorului i se va cere amplasarea unui deget nregistrat in baza
de date pe senzorul de amprenta, in cazul in care amprenta a fost recunoscuta sistemul va cere
introducerea parolei.

In caz contrar se va atepta introducerea unei amprente nregistrate in baza de date. In


cazul in care se greete parola acesta va atepta pana la introducerea parolei corecte.

Dup introducerea codului ( care este setat in prealabil ) se apas butonul * pentru
confirmarea si verificarea ei. Codul si amprenta fiind introduse corect apare un meniu care
descrie funciile care sistemul le poate executa.

Acesta in cazul apsrii butoanelor A sau B de pe tastatura fiind acionarea a cate unui
releu de pe modulul de releu, in cazul apsrii butonului C acesta va decupla releele.

Apsarea butonului D duce la resetarea ntregului sistem.

Releele pot fi cuplate de exemplu la o yala electromagnetica care permite accesul


personalului, pornirea/decuplarea unor protocoale de urgenta, aprinderea iluminatului, pornirea
unui calculator, etc.

2. Descrierea componentelor folosite


a. Arduino
Arduino este o platforma de procesare open-source, bazata pe software si hardware
flexibil si simplu de folosit. Consta ntr-o platforma de mici dimensiuni (6.8 cm / 5.3 cm in cea
mai des ntlnita varianta) construita in jurul unui procesor de semnal si este capabila de a prelua
date din mediul nconjurtor printr-o serie de senzori si de a efectua aciuni asupra mediului prin
intermediul luminilor, motoarelor, servomotoare, si alte tipuri de dispozitive mecanice.
Procesorul este capabil sa ruleze cod scris intr-un limbaj de programare care este foarte similar
cu limbajul C++.
Cteva exemple de senzori disponibili pentru Arduino senzori de distanta (capabili sa
msoare de la civa centimetri pana la 7-9 metri), senzori de sunet, senzori de cmp
electromagnetic, senzori de fum, senzori de tip GPS, senzori de tip giroscopic, senzori de flux
lichid (ca cei folosii la pompele de benzina), senzori de temperatura, senzori de monoxid de
carbon, senzori de lumina, senzori capabili sa detecteze doar o anumita culoare, senzori de
prezenta, senzori de umiditate, senzori de nivel pentru lichid, senzori capabili sa msoare
concentraia de alcool in aerul expirat. Pentru a efectua ac iuni asupra mediului nconjurtor,
exista o larga varietate de motoare, servomotoare, motoare pas cu pas, led-uri, actuatoare. Ca si
conectivitate, exista disponibile componente capabile sa conecteze Arduino la reeaua Ethernet
(Ethernet Shield), componente pentru reea wireless, componente capabile sa realizeze
conectare pe reeaua de date GSM / 3G, sau componente de tip XBEE utile pentru a realiza
comunicaii de tip personalizat.
Platforma Arduino este disponibila ntr-o serie de variante, fiecare cu diferite capabilit i
si dimensiuni.

b. Arduino Due

Arduino Due este cea mai noua platforma de


procesare de la Arduino. Este prima placa Arduino
bazata pe procesor ARM.

Caracteristici:
Procesor: AT91SAM3X8E
Tensiune de lucru: 3.3 V

Tensiune de alimentare : 7-12 V


Pini IO digitali: 54 (12 PWM)
Pini de intrare analogici: 12
Pini de ieire analogici: 2 (digital to analog convertor)
Memorie: 512 KB disponibili
Vitez procesor: 84 MHz
.

c. Senzor de amprenta Adafruit


Acest senzor are rolul de a securiza accesul prin scanarea si memorarea amprentei . Se
conecteaz la microcontrolere sau diferite sisteme prin TTL (transistor-transistor logic) serial si
trimite pachete de date pentru a detecta amprenta si compararea cu alte amprente . Numrul
maxim de amprente care poate fi memorat de senzorul dat este de 162 .

Caracteristici :

Supply voltage: 3.6 - 6.0VDC

Operating current: 120mA max

Peak current: 150mA max

Fingerprint imaging time: <1.0 seconds

Window area: 14mm x 18mm

Signature file: 256 bytes

Template file: 512 bytes

Storage capacity: 162 templates

Safety ratings (1-5 low to high safety)

False Acceptance Rate: <0.001% (Security level 3)

False Reject Rate: <1.0% (Security level 3)

Interface: TTL Serial

Baud rate: 9600, 19200, 28800, 38400, 57600 (default is 57600)

Working temperature rating: -20C to +50C

Working humidity: 40%-85% RH

Full Dimensions: 56 x 20 x 21.5mm

Exposed Dimensions (when placed in box): 21mm x 21mm x 21mm triangular

Weight: 20 grams.

Autentificarea biometric se poate utiliza att n aplicaii de control al accesului fizic


n incinte sau camere cu destinaii speciale, ct i pentru securizarea accesului logic
la resurse informatice cum ar fi baze de date (figura 1).

i. Modul de funcionare al unui sistem de identificare bazat pe metode


biometrice:

Diagrama din figura 2 prezint schema-bloc simplificat (generic) a unui sistem biometric.
Principalele operaii pe care sistemul biometric le poate efectua sunt nregistrarea (nscrierea) i
testarea (compararea pentru identificare sau pentru verificare). n timpul fazei de nregistrare,
informaiile biometrice ale unui individ sunt stocate. n timpul fazei de testare, datele biometrice
sunt detectate i comparate cu informaiile stocate anterior. De notat c este crucial ca aciunile
de stocare i de regsire a informaiilor, n cadrul acestor sisteme, s fie securizate, pentru ca
sistemele biometrice s se dovedeasc robuste.

Primul bloc (senzorul) reprezint interfaa ntre lumea real i sistemul


biometric; el trebuie s asigure obinerea tuturor datelor necesare. n

majoritatea cazurilor, acest bloc este un sistem de achiziie de imagini, dar el


poate varia de la caz la caz, n funcie de natura caracteristicilor dorite. Al
doilea bloc execut toate operaiile necesare de pre-procesare ; astfel, el
elimin elementele redundante din informaiile primare obinute de blocul
senzor, reducnd dimensiunea datelor folosite ulterior n procesul de
recunoatere. n cadrul celui de-al treilea bloc, caracteristicile necesare (i
relevante) sunt extrase. Extragerea detaliilor relevante se realizeaz prin
aplicarea algoritmilor de detecie a contururilor n imagini, precum i a
tehnicilor de segmentare folosite n prelucrarea imaginilor.
n cazul amprentelor, detaliile relevante constau n anuri, ridicturi i
terminaii sau bifurcaii. Un vector cu valori numerice sau o imagine cu
proprieti particulare se poate utiliza pentru a se crea un ablon. Un ablon
este o sintez a tuturor caracteristicilor extrase din informaiile surs, la o
dimensiune optim pentru a permite o identificare adecvat.
n cursul fazei de nregistrare, ablonul biometric este stocat pe un
suport care poate fi un smartcard sau o baz de date centralizat. n faza de
potrivire, ablonul obinut de la utilizatorul curent se transfer ctre blocul
funcional care execut comparaia cu abloane deja existente, estimnd
diferenele dintre ablonul biometric al persoanei care se autentific i unul
sau mai multe dintre abloanele prenregistrate, prin utilizarea unui algoritm
specific (de exemplu, prin calcularea distanei Hamman). Rezultatul acestei
comparaii se utilizeaz ca baz pentru decizia de acceptare sau de
respingere a accesului fizic sau logic; securizarea accesului fizic se refer la
permiterea sau respingerea accesului n incinte sau locaii fizice cu destinaii
speciale, n timp ce securizarea accesului logic vizeaz protecia resurselor
informatice i de date dintr-o reea sau chiar de la nivelul unui sistem de
calcul.
Un sistem biometric ndeplinete urmtoarele 2 funcii:
Verificare. Este procesul de autentificare a utilizatorilor legitimi,
proces efectuat n conjuncie cu un smartcard, username sau numr special
de identificare (ID number). ablonul biometric capturat este comparat cu cel
stocat anterior (fie pe un smartcard, fie ntr-o baz de date);
Identificare. Este procesul prin care se realizeaz autentificarea
utilizatorilor, dar fr s apeleze la forme de stocare pre-nregistrat a unor
date biometrice (smartcarduri, nume de utilizatori sau coduri numerice
personale). ablonul biometric curent este comparat cu toate nregistrrile
din baza de date, i este returnat scorul care indic cea mai strns potrivire.
Cea mai strns potrivire care satisface pragul minim de securitate
determin autentificarea i acceptarea utilizatorului n sistem.

ii.

Precizia i performanta sistemelor biometrice

Una dintre problemele care se pun n cazul sistemelor biometrice este aceea
a construirii i implementrii unui sistem care s asigure, teoretic, o potrivire 100%
la fiecare comparare ntre datele biometrice curente i informaiile de referin
stocate n baza de date. n realitate, un astfel de sistem ar fi lipsit de utilitate
practic, deoarece foarte putini utilizatori l-ar putea folosi (sau chiar nici unul).
Majoritatea utilizatorilor care ar solicita accesul la resursele protejate prin
autentificare biometric ar fi respini practic tot timpul, deoarece rezultatele
msurrilor parametrilor obinui din procesarea datelor biometrice nu ar fi
niciodat aceleai la fiecare proces de comparaie (variabilitate). n mod real, se
permite o variabilitate a datelor biometrice (o gam admis a acestei variabiliti
fiind de 0,1-1% ), pentru a nu fi respini foarte muli dintre utilizatorii legitimi.
Aceast variabilitate este totui limitat de nivelul de securitate dorit. Cu ct
variabilitatea permis este mai mare, cu att mai ridicat este i probabilitatea ca
un impostor cu date biometrice asemntoare datelor de referin s fie acceptat
n sistem, ca utilizator legitim (autorizat).
n mod uzual, aceast variabilitate permis pentru datele biometrice este
calificat drept prag sau nivel de securitate.
Cnd variabilitatea permis este mic, atunci pragul sau nivelul de securitate
este ridicat, iar dac se permite o variabilitate mai mare, atunci pragul sau nivelul
de securitate este sczut.
Cei 3 parametri de performanta sunt: rata falselor acceptri sau a potrivirilor
false (FAR false acceptance rate -sau FMR false match rate), rata falselor
respingeri sau a nepotrivirilor false (FRR false rejection rate sau FNMR false non
match rate), precum i rata erorilor la nregistrare (FTER - failure to enroll rate). O
potrivire fals apare atunci cnd sistemul potrivete o identitate n mod incorect, iar
FMR (sau FAR, rata falselor acceptri) reprezint probabilitatea ca indivizii s fie
acceptai n urma unei potriviri false.
n sistemele de verificare i de identificare pozitiv, persoane neautorizate
pot obine acces la faciliti sau resurse ca urmare a domeniului de toleran larg.
ntr-un sistem de identificare negativ, rezultatul unei false potriviri poate fi
respingerea fals a accesului unui utilizator legitim, dac domeniul de toleran este
foarte ngust. Rata falselor acceptri se definete prin probabilitatea ca sistemul s
declare o potrivire reuit ntre ablonul de intrare i un ablon din baza de date,
ablon care, n realitate, nu se potrivete cu cel curent prezentat sistemului
biometric.
Acest parametru exprim procentul potrivirilor nevalide. Astfel de sisteme
sunt critice, deoarece ele sunt utilizate, n mod comun, pentru a interzice anumite
aciuni pentru persoane neautorizate. O nepotrivire fals apare atunci cnd un
sistem respinge o identitate valid, iar FNMR (sau FRR, rata respingerilor false) este
probabilitatea ca un utilizator valid s nu fie potrivit, n mod eronat. n sistemele de

identificare pozitiv i n cele de verificare, utilizatorilor legitimi li se poate respinge


accesul la faciliti i resurse ca urmare a eecului sistemului n a realiza o potrivire
corect. n sistemele de identificare negativ, rezultatul unei nepotriviri greite
(false) poate fi acela c o persoan ar obine acces la resurse pentru care, de fapt,
nu este autorizat, i deci pentru care ar fi trebuit s i se resping accesul.

Rata falselor respingeri se definete prin probabilitatea ca sistemul s


declare, n mod incorect, eecul unei potriviri ntre ablonul biometric de
intrare i ablonul pre-nregistrat n baza de date.
Acest parametru red procentajul intrrilor valide care sunt rejectate
n mod eronat. Potrivirile false (greite), i, n consecin, acceptrile false,
apar din cauz c exist un grad ridicat de similaritate ntre caracteristicile a
2 indivizi. Nepotrivirile false (i, deci, i respingerile false) apar atunci cnd
nu exist similariti suficient de mari ntre datele de referin nregistrate
ale utilizatorilor i abloanele provenite din datele biometrice prezentate n
mod curent la solicitarea accesului la resursele securizate; acest lucru se
poate datora unor diverse condiii, obiective i subiective. De exemplu,
caracteristicile biometrice ale unui individ se pot modifica ca rezultat al
vrstei sau al unor condiii fiziologice sau patologice particulare. Dac
sistemul biometric ar fi perfect, ambele rate de eroare ar trebui s fie nule.
Totui, deoarece sistemele biometrice nu pot identifica indivizii cu o
acuratee de 100%, trebuie luat n considerare un compromis ntre cele 2
rate de eroare. Ratele de potrivire fals i, respectiv, de nepotrivire fals sunt
invers corelate; prin urmare, ele trebuie evaluate n tandem, i nivele
acceptabile de risc trebuie puse n balan cu dezavantajele inconvenienei.
De exemplu, pentru o aplicaie de control al accesului, un nivel perfect de
securitate ar necesita respingerea accesului pentru oricine. Invers, acordarea
accesului pentru oricine ar nsemna c nu se respinge nimnui accesul. n
mod evident, nici una dintre cele 2 situaii extreme nu este rezonabil, iar
sistemele biometrice trebuie s opereze, de fapt, ntre cele 2 limite.
Productorii de dispozitive biometrice specific i un alt parametru, rata
erorilor egale (EER equal error rate).
Aceasta reprezint un parametru suplimentar derivat din FMR i FNMR,
care se utilizeaz pentru a descrie precizia sistemelor biometrice. EER se
refer la punctul n care rata potrivirilor false egaleaz rata nepotrivirilor
false. Rata erorilor egale reprezint acel procentaj de eroare la care ambele
tipuri de rate de eroare, de fals acceptare, respectiv fals respingere, sunt
egale. Atunci cnd este necesar compararea rapid a performanelor a
dou sisteme, se utilizeaz EER. Cu ct rata erorilor egale EER este mai
sczut, cu att sistemul este considerat mai precis. Setarea pragului de
securitate al sistemului la nivelul specificat de EER va nsemna c

probabilitatea ca o persoan s fie potrivit n mod fals egaleaz


probabilitatea ca persoana s fie nepotrivit n mod eronat.
Totui, aceast abordare statistic tinde s supra simplifice echilibrul
dintre FMR i FNMR, deoarece n aplicaiile practice (reale) n care se
folosete biometria, se urmrete asigurarea unui nivel de securitate care s
corespund cerinelor specifice aplicaiilor, precum i convenienei
utilizatorilor finali.

d. Modul cu doua relee

Un releu este definit ca un comutator acionat electric utilizarea lui principala fiind
controlul circuitelor ce au un semnal de putere mic sau cnd mai multe circuite trebuie s fie
controlate de un semnal.
Primul releu a fost utilizat n circuitele telegrafice pe distane lungi ca si amplificatoare,
practic au repetat semnalul primit de la un circuit, i l-au transmis ntr-un altul, acestea au fost,
de asemenea, utilizate la primele calculatoare pentru a efectua operaii logice.
Modulul releu Arduino este proiectat pentru o gam larg de microcontrolere, cum ar fi
placa de Arduino, AVR, PIC, ARM, cu ieiri digitale. Acest modul include 2 relee.
Sistemul releu este format din urmtoarele componente:

Intrare: Vcc, conectat la alimentarea de 5V a plcii Arduino, GND, conectat la mas i 2


intrri digitale. (In1 & IN2);

Ieire: Modulul releu de 2 canale ar putea fi considerat ca o serie de ntreruptoare: 2


normal deschise (NO), 2 normal nchise (NC) i 2 pini comuni (COM).

* NC-normal nchis, caz n care este conectat la NC COM cnd INT1 este setat sczut si deconectat,
atunci cnd INT 1 este mare.
* NO normal deschis, caz n care NO este deconectat cu COM cnd INT1 este setat sczut i conectat
atunci cnd INT 1 este mare.

Prin software-ul Arduino, putem programa cu uurin atunci cnd releul primete putere,
funcionnd astfel la fel ca un LED:
Releu - Utilizare simpla:
digitalWrite (Relay, HIGH); // Relay receives power for 1s
delay (1000);
digitalWrite (Relay, LOW); // Relay doesnt receive power for 1s
delay (1000);

Aa cum am menionat mai devreme, releul este format dintr-o serie de switch-uri, atunci
cnd este alimentat, comutatorul NC se deschide i CN-ul se nchide. Prin ataarea a dou LEDuri la fiecare comutator, vom putea vedea o reprezentare vizual a ceea ce se ntmpl.
Modulul releu 2-canale include urmtoarele caracteristici:

Numrul de relee

Semnal de comand

TTL Level

Sarcin nominal

7A / 240VAC 10A / 125VAC 10A / 28VDC

Timp de acionare

10ms / 5ms

Interfaa plcii

5V 2-canale Releu de bord interfa, i fiecare


are nevoie 15-20mA curent Driver.

Echipament

Echipat cu releu de mare intensitate,


AC250V 10A; DC30V 10A
LED indicator pentru statutul de ieire
releu.

Microcontrolere acceptate

Schema de conexiune:

Interfa standard care pot fi controlata direct


de ctre microcontroler (Arduino, 8051, AVR,
PIC, DSP, ARM, ARM, MSP430, logica
TTL)

e. Tastatura numerica 4x4

Tastatura fiind conectata in matrice apsarea unui


buton provoac scurtcircuitarea unei coloane si a unei
rnd astfel putem afla exact numrul apsat.

3. Sistemul de securitate

Schema bloc:

4. Programul Sistemului de securitate


#include "Adafruit_Fingerprint_Due.h"
#include <Keypad.h>
#define Relay1 2
#define Relay2 3
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {13,12,11,10}; //Rows 0 to 3
byte colPins[numCols]= {9,8,7,6}; //Columns 0 to 3
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
int getFingerprintIDez();
boolean MATCH = false;
boolean acc_granted = false;
boolean Codeaccess = true;
boolean D = false;
boolean reset = false;
char keypressed = myKeypad.getKey();
int code=0;
int pass=1234;
Adafruit_Fingerprint_Due finger = Adafruit_Fingerprint_Due();
void setup()
{
Serial.begin(9600);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
Serial.println("Welcome to SecureBox");
Serial.println();
finger.begin(57600);
if (finger.verifyPassword())
{ Serial.println("Found fingerprint sensor!");}
else { Serial.println("Did not find fingerprint sensor :(");
while (1); }
Serial.println("Waiting for valid finger...");
}

void loop()
{
if (MATCH == false)
{

getFingerprintIDez();
}
if (Codeaccess == true && acc_granted == false)
{
codevalidation();
}
if (acc_granted == true)
{
Meniu();
}
if ( reset == true )
{
Serial.println("Sistem Rebooted");
Serial.println("Waiting for valid fingerprint...");
MATCH = false;
Codeaccess = true;
acc_granted = false;
reset = false;
code = 0;
}
delay(50);
}
int Meniu() {
char keypressed = myKeypad.getKey();
switch (keypressed)
{
case 'A':
Serial.println();
Serial.print("Relay 1 ACTIVE!");
digitalWrite(Relay1,0);
break;
case 'B':
Serial.println();
Serial.print("Relay 2 ACTIVE!");
digitalWrite(Relay2,0);
break;
case 'C':
Serial.println();
Serial.print("Relays DEACTIVATED!");
digitalWrite(Relay1,1);
digitalWrite(Relay2,1);
break;
case 'D':
Serial.println();
Serial.println();
Reset();
Break;}}
//changing the passcode
int Reset() {
char keypressed = myKeypad.getKey();
Serial.print("Rebooting Sistem! Please Wait");
delay(400);

Serial.print(".");
delay(400);
Serial.print(".");
delay(400);
Serial.println(".");
reset = true;
}
//code validation
int codevalidation() {
char keypressed = myKeypad.getKey();
if ((MATCH == true) && (keypressed != NO_KEY))
{
Serial.print(keypressed);
if (keypressed != '*')
{
int conv_numb = keypressed - '0';
code = code * 10 + conv_numb;
}
if (keypressed == '*')
{
if (code == pass)
{
Serial.println();
Serial.print("Entered Password is:");Serial.print(code);
Serial.println();
Serial.print("Access Granted! Welcome
user:");Serial.print(finger.fingerID);Serial.println();
//access granted
acc_granted = true;
Codeaccess = false;
//Menu form
Serial.println();
Serial.println("Welcome User");
Serial.println();
Serial.println("Please choose an option from the following Menu");
Serial.println();
Serial.println("Press 'A' for the activation of Relay 1");
Serial.println("Press 'B' for the activacion of Relay 2");
Serial.println("Press 'C' for the Deactivation of both Relays");
Serial.println("Press 'D' to change the passcode");
}
else
{
Serial.println();
Serial.print("Entered Password is:");Serial.print(code);
Serial.println();
Serial.println("Code ERROR");
code = 0;
acc_granted = false;
}}}
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();

switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK success!
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Did not find a match");
return p;
} else {
Serial.println("Unknown error");
return p;

}
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
}
// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
MATCH = true;
Serial.println("Enter Password:");
return finger.fingerID;
}

5. Bibliografie
https://learn.adafruit.com/adafruit-optical-fingerprint-sensor/wiring-for-usewith-arduino
http://www.instructables.com/id/Arduino-Fingerprint-Lock/
https://www.adafruit.com/products/751

http://www.instructables.com/id/Arduino-2-Channel-Relay/
https://www.google.ro/search?
q=2+relay+module+arduino&espv=2&biw=1920&bih=979&tbm=isch&tbo
=u&source=univ&sa=X&ved=0ahUKEwjitJC1tZjKAhVECCwKHYYwBfoQsAQIH
A
http://playground.arduino.cc/Main/KeypadTutorial
https://www.google.ro/search?
q=4x4+keypad+arduino&espv=2&biw=1920&bih=979&tbm=isch&tbo=u&s
ource=univ&sa=X&ved=0ahUKEwjGqqTFtZjKAhVBGiwKHWCAAFkQsAQILw
https://www.arduino.cc/en/Reference/HomePage