- Zahtevane komponente:
- Shema vezja in razlaga:
- Namestitev knjižnice za senzor za prstni odtis:
- Delovanje senzorja za prstne odtise z Raspberry Pi:
- Programiranje na Python:
Senzor za prstni odtis , ki smo ga prej videli v znanstvenofantastičnih filmih, je zdaj zelo pogost za preverjanje identitete osebe za različne namene. V današnjem času lahko sisteme, ki temeljijo na prstnih odtisih, vidimo povsod v vsakdanjem življenju, na primer za obiskovanje pisarn, preverjanje zaposlenih v bankah, dvig gotovine ali polog na bankomatih, preverjanje identitete v državnih uradih itd. Z Arduinom smo ga že povezali, danes bomo FingerPrint senzor povezali z Raspberry Pi. S tem sistemom Raspberry Pi FingerPrint lahko v sistem vpišemo nove prstne odtise in izbrišemo že podane prstne odtise. Popolno delovanje sistema je prikazano v videoposnetku na koncu članka.
Zahtevane komponente:
- Raspberry Pi
- Pretvornik USB v serijski
- Modul prstnih odtisov
- Tipke
- 16x2 LCD
- 10k lonec
- Krušna plošča ali PCB (naročeno pri JLCPCB)
- Jumper žice
- LED (neobvezno)
- Upor 150 ohm -1 k ohm (neobvezno)
Shema vezja in razlaga:
V tem projektu povezovanja senzorjev prstnih odtisov Raspberry Pi smo uporabili 4 tipke: eno za vpis novega pringa, drugo za brisanje že podanih prstnih odtisov in dve za povečanje / zmanjšanje položaja že podanih prstnih odtisov. LED se uporablja za indikacijo, da je senzor prstnih odtisov pripravljena prevzeti prst za ujemanje. Tu smo uporabili modul za prstne odtise, ki deluje na UART. Tu smo torej povezali ta modul prstnih odtisov z Raspberry Pi z uporabo pretvornika USB v serijski.
Najprej moramo najprej vzpostaviti vse zahtevane povezave, kot je prikazano na spodnjem vezju. Povezave so preproste, pravkar smo povezali modul prstnih odtisov z vrati USB Raspberry Pi z uporabo pretvornika USB v serijski. Za prikaz vseh sporočil se uporablja LCD 16x2. 10k lonec se uporablja tudi z LCD-jem za nadzor kontrasta istega. 16-palčni zatiči LCD RS, EN, d4, d5, d6 in d7 so povezani z GPIO Pin 18, 23, 24, 25, 8 in 7 Raspberry Pi. Na GPIO Pin 5, 6, 13 in 19 Raspberry Pi so priključeni štirje gumbi. LED je priključen tudi na pin 26 RPI.
Namestitev knjižnice za senzor za prstni odtis:
Po vzpostavitvi vseh povezav moramo napajati Raspberry Pi in ga pripraviti z odprtim terminalom. Zdaj moramo namestiti knjižnico prstnih odtisov za Raspberry Pi v jeziku python, tako da sledimo spodnjim korakom.
1. korak: Za namestitev te knjižnice so potrebni korenski privilegiji. Torej najprej vnesemo v root z danim ukazom:
sudo bash
2. korak: Nato s pomočjo ukazov prenesite nekaj zahtevanih paketov:
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 /
3. korak: Po tem moramo posodobiti Raspberry pi in namestiti preneseno knjižnico senzorjev za prstne odtise:
sudo apt-get update sudo apt-get install python-fingerprint –da
4. korak: Po namestitvi knjižnice moramo z uporabo ukaza preveriti vrata USB, na katera je priključen senzor za prstni odtis:
ls / dev / ttyUSB *
Zdaj zamenjajte vrata USB št. Z vrati USB, ki ste jih dobili čez zaslon, in jih nadomestite s kodo python. Popolna koda Pythona je podana na koncu tega projekta.
Delovanje senzorja za prstne odtise z Raspberry Pi:
Delovanje tega projekta je preprosto, zaženite kodo python in na LCD-ju bo nekaj uvodnih sporočil, nato pa bo uporabnik pozvan, da položi prst na senzor za prstni odtis. Zdaj, ko položimo prst na modul prstnih odtisov, lahko preverimo, ali so naši prstni odtisi že shranjeni ali ne. Če je vaš prstni odtis shranjen, bo na LCD-prikazovalniku prikazano sporočilo s položajem shranjevanja prstnega odtisa, kot je ' Fount at Pos: 2', sicer bo prikazano 'No Match Found' .
Zdaj, da vpiše prstni tisk, mora uporabnik pritisniti gumb za vpis in slediti navodilom na LCD zaslonu.
Če želi uporabnik izbrisati katerega koli prstnega odtisa, mora pritisniti gumb za brisanje. Nato bo LCD zahteval položaj prstnega odtisa, ki ga je treba izbrisati. Zdaj lahko z uporabo dodatnega gumba za povečanje in zmanjšanje uporabnik izbere položaj shranjenega prstnega tiska in pritisne gumb za vpis (trenutno se gumb za vpis obnaša kot gumb V redu), da izbriše ta prstni odtis. Za boljše razumevanje si oglejte videoposnetek na koncu projekta.
Programiranje na Python:
Python za povezovanje senzorja za prstni odtis z RPi je enostaven z uporabo funkcij knjižnice prstnih odtisov. Če pa želi uporabnik vmesnik sam, bo to prvič nekoliko težko. V obrazcih senzorjev za prstne odtise je podano vse, kar je potrebno za povezovanje istega modula. Koda GitHub je na voljo za preizkus vašega Raspberry pi s senzorjem za prstni odtis.
Tu smo uporabili knjižnico, zato moramo le poklicati funkcijo knjižnice. V kodo moramo najprej uvoziti knjižnice, kot so prstni odtis, GPIO in čas, nato moramo določiti nožice za LCD, LED in gumbe.
čas uvoza iz pyfingerprint.pyfingerprint uvoz PyFingerprint uvoz RPi.GPIO kot gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 vpis = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1 LOW = 0
Po tem moramo inicializirati in usmeriti izbrane nožice
gpio.setwarnings (False) 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 (enroll, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (delet, 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)
Zdaj smo inicializirali Senzor prstnih odtisov
poskusite: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000), če (f.verifyPassword () == False): dvignite ValueError ('Dano geslo senzorja za prstne odtise je napačno!'), razen izjem kot e: print ('Sporočilo o izjemi:' + str (e)) exit (1)
Napisali smo nekaj funkcij za inicializacijo in pogon LCD-ja, preverite celotno kodo spodaj v odseku kode:
def start (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Po zapisu vseh funkcij gonilnika LCD smo postavili funkcije za vpisovanje, iskanje in brisanje prstnih odtisov.
def enroll Funkcija Finger () se uporablja za vpis ali shranjevanje novih prstnih odtisov.
def searchFinger () funkcija se uporablja za iskanje po že shranjenih prstnih odtisih
def deleteFinger () functinos se uporablja za odstranjevanje že shranjenih prstnih odtisov s pritiskom na ustrezni gumb.
Koda vseh zgornjih funkcij ima spodaj navedeno kodo python.
Po tem, na koncu, moramo inicializirati sistema, ki jih v , medtem ko 1 zanke, ki ga prosi, da Place prst na senzor prstnih odtisov in nato sistem bo preveril, ali je ta prst natisnete to velja ali ne, in temu ustrezno prikazati rezultate.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint) time.sleep (3) zastavica = 0 lcdclear (), medtem ko je 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("Place Finger"), če gpio.input (enroll) == 0: gpio.output led, LOW) enrollFinger () elif gpio.input (delet) == 0: gpio.output (led, LOW) medtem ko gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Popolna koda Python in delujoči video je podan spodaj.