- Componente necesare:
- Schema și explicația circuitului:
- Instalarea bibliotecii pentru senzorul de amprentă digitală:
- Funcționarea senzorului de amprentă digitală cu Raspberry Pi:
- Programare Python:
Senzorul de amprentă digitală, pe care îl vedeam în moives Sci-Fi cu câțiva ani în urmă, a devenit acum foarte obișnuit pentru a verifica identitatea unei persoane în diferite scopuri. În prezent, putem vedea sisteme bazate pe amprente peste tot în viața noastră de zi cu zi, cum ar fi prezența la birouri, verificarea angajaților în bănci, retragerea numerarului sau depozitele în bancomate, verificarea identității în birourile guvernamentale etc. Am interfațat deja cu Arduino, astăzi vom interfața FingerPrint Sensor cu Raspberry Pi. Folosind acest sistem Raspberry Pi FingerPrint, putem înregistra noi amprente digitale în sistem și putem șterge amprentele deja alimentate. Funcționarea completă a sistemului a fost prezentată în videoclipul prezentat la sfârșitul articolului.
Componente necesare:
- Raspberry Pi
- Convertor USB în serie
- Modul de amprentă digitală
- Apasa butoanele
- 16x2 LCD
- Oala de 10k
- Panou sau PCB (comandat de la JLCPCB)
- Sârme de jumper
- LED (opțional)
- Rezistor 150 ohm -1 k ohm (opțional)
Schema și explicația circuitului:
În acest proiect de interfață a senzorului de imprimare digitală Raspberry Pi, am folosit un 4 butoane: unul pentru înscrierea noului pring deget, unul pentru ștergerea amprentelor deja alimentate și odihniți două pentru creșterea / diminuarea poziției amprentelor digitale deja alimentate. Un LED este utilizat pentru a indica faptul că senzorul de amprentă este gata să ia degetul pentru potrivire. Aici am folosit un modul de amprentă care funcționează pe UART. Așadar, aici am interfațat acest modul de amprentă digitală cu Raspberry Pi utilizând un convertor USB în serie.
Deci, în primul rând, trebuie să realizăm toate conexiunile necesare așa cum se arată în schema de circuite de mai jos. Conexiunile sunt simple, tocmai am conectat modulul de amprentă digitală la portul USB Raspberry Pi utilizând convertorul USB-Serial. Un ecran LCD de 16x2 este utilizat pentru afișarea tuturor mesajelor. Un vas de 10k este, de asemenea, utilizat cu LCD pentru a controla contrastul acestuia. Pinii LCD 16x2 RS, EN, d4, d5, d6 și d7 sunt conectați la pinul GPIO 18, 23, 24, 25, 8 și respectiv 7 al Raspberry Pi. Patru butoane sunt conectate la pinul GPIO 5, 6, 13 și 19 al Raspberry Pi. LED-ul este, de asemenea, conectat la pinul 26 al RPI.
Instalarea bibliotecii pentru senzorul de amprentă digitală:
După ce am făcut toate conexiunile, trebuie să pornim Raspberry Pi și să-l pregătim cu terminalul deschis. Acum trebuie să instalăm biblioteca de amprente pentru Raspberry Pi în limbă python urmând pașii de mai jos.
Pasul 1: Pentru a instala această bibliotecă, sunt necesare privilegii de root. Deci, mai întâi intrăm în rădăcină prin comanda dată:
sudo bash
Pasul 2: Apoi descărcați câteva pachete necesare utilizând comenzile date:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - apt-key add - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / etc / apt / sources.list.d /
Pasul 3: După aceasta, trebuie să actualizăm Raspberry pi și să instalăm biblioteca de senzori de amprentă descărcată:
sudo apt-get update sudo apt-get install python-fingerprint –da
Pasul 4: După instalarea bibliotecii acum, trebuie să verificăm portul USB la care este conectat senzorul de amprentă, utilizând comanda dată:
ls / dev / ttyUSB *
Acum înlocuiți portul USB nr., Cu portul USB pe care l-ați primit peste ecran și înlocuiți-l în codul python. Codul complet Python este dat la sfârșitul acestui proiect.
Funcționarea senzorului de amprentă digitală cu Raspberry Pi:
Funcționarea acestui proiect este simplă, pur și simplu rulați codul python și vor apărea câteva mesaje introductive pe ecranul LCD și apoi utilizatorul va fi rugat să plaseze degetul pe senzorul de imprimare digitală. Acum, punând un deget peste modulul de amprentă, putem verifica dacă amprentele noastre sunt deja stocate sau nu. Dacă amprenta dvs. este stocată, atunci LCD va afișa mesajul cu poziția de stocare a amprentei, cum ar fi „ Fount at Pos: 2”, altfel va afișa „No Match Found” .
Acum, pentru a înregistra o amprentă digitală , utilizatorul trebuie să apese butonul de înregistrare și să urmeze mesajele de instrucțiuni de pe ecranul LCD.
Dacă utilizatorul dorește să șteargă oricare dintre amprentele digitale, atunci utilizatorul trebuie să apese butonul de ștergere. După care, LCD va solicita poziția amprentei care urmează să fie ștearsă. Acum, utilizând încă un buton cu două apăsări pentru creșterea și descreșterea, utilizatorul poate selecta poziția amprentei salvate și poate apăsa butonul de înregistrare (în acest moment butonul de înregistrare se comportă ca butonul Ok) pentru a șterge acea amprentă. Pentru mai multă înțelegere, aruncați o privire asupra videoclipului prezentat la sfârșitul proiectului.
Programare Python:
Python pentru interfața senzorului de amprentă digitală cu RPi este ușor prin utilizarea funcțiilor de bibliotecă de amprente. Dar dacă utilizatorul dorește să-l interface singur, atunci va fi puțin dificil pentru prima dată. În fișele tehnice ale senzorului de amprentă digitală, este dat tot ce este necesar pentru interfațarea aceluiași modul. Un cod GitHub este disponibil pentru a testa Raspberry pi cu senzor de imprimare digitală.
Aici am folosit biblioteca așa că trebuie doar să apelăm funcția de bibliotecă. În cod, mai întâi trebuie să importăm biblioteci cum ar fi amprenta digitală, GPIO și timp, apoi trebuie să definim pinii pentru LCD, LED și butoane.
timp de import din pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO ca gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 inscriere = 5 ștergere = 6 inc = 13 dec = 19 led = 26 HIGH = 1 LOW = 0
După aceasta, trebuie să inițializăm și să dăm direcția pinilor selectați
gpio.setwarnings (Fals) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (inscriere, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (ștergere, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (inc, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (dec, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (led, gpio.OUT)
Acum am inițializat senzorul de amprentă digitală
încercați: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) dacă (f.verifyPassword () == False): ridicați ValueError ('Parola dată a senzorului de amprentă este greșită!'), cu excepția excepției ca e: print ('Mesaj de excepție:' + str (e)) exit (1)
Am scris câteva funcții pentru a inițializa și conduce LCD-ul, verificați codul complet de mai jos în secțiunea cod:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
După ce am scris toate funcțiile driverului LCD, am plasat funcții pentru înregistrarea, căutarea și ștergerea amprentelor digitale.
Funcția def enrollFinger () este utilizată pentru înregistrarea sau salvarea noilor amprente.
Funcția def searchFinger () este utilizată pentru a căuta amprentele digitale deja stocate
def deleteFinger () funcția este utilizată pentru a deota amprenta deja salvată apăsând butonul corespunzător.
Codului funcției de mai sus i se dă codul în python dat mai jos.
După aceasta, în cele din urmă, trebuie să inițializăm sistemul până la buclă în timp ce 1 , cerând să plasăm degetul pe senzorul de amprentă și apoi sistemul va verifica dacă această amprentă este validă sau nu și va afișa rezultatele în consecință.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint ("Te întâmpină")) time.sleep (3) flag = 0 lcdclear () while 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("Place Finger") if gpio.input (enroll) == 0: gpio.output (led, LOW) enrollFinger () elif gpio.input (delet) == 0: gpio.output (led, LOW) în timp ce gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Codul Python complet și un videoclip de lucru sunt prezentate mai jos.