- Požadované komponenty:
- Schéma zapojenia a vysvetlenie:
- Inštalácia knižnice pre snímač odtlačkov prstov:
- Fungovanie snímača odtlačkov prstov s Raspberry Pi:
- Programovanie v Pythone:
Snímač odtlačkov prstov, ktorý sme pred pár rokmi videli v sci-fi skupinách, je dnes veľmi bežným prostriedkom na overenie totožnosti osoby na rôzne účely. V súčasnosti vidíme systémy založené na odtlačkoch prstov všade v našom každodennom živote, ako napríklad dochádzka do kancelárií, overovanie zamestnancov v bankách, výber hotovosti alebo vklady v bankomatoch, overovanie totožnosti vo vládnych úradoch atď. Už sme ich prepojili s Arduinom, dnes sa chystáme prepojiť snímač FingerPrint s Raspberry Pi. Pomocou tohto systému Raspberry Pi FingerPrint môžeme zaregistrovať nové odtlačky prstov do systému a odstrániť už vložené odtlačky prstov. Kompletné fungovanie systému je uvedené vo videu na konci článku.
Požadované komponenty:
- Malinový koláč
- Prevodník USB na sériový port
- Modul odtlačkov prstov
- Tlačidlá
- 16x2 LCD
- 10k hrniec
- Chlebová doska alebo doska s plošnými spojmi (objednané u JLCPCB)
- Prepojovacie vodiče
- LED (voliteľné)
- Rezistor 150 ohm -1 k ohm (voliteľný)
Schéma zapojenia a vysvetlenie:
V tomto projekte prepojenia snímača odtlačkov prstov Raspberry Pi sme použili 4 tlačidlá: jedno na registráciu nového pringu prstom, jedno na odstránenie už privádzaných odtlačkov prstov a druhé na zvýšenie / zníženie polohy už privádzaných odtlačkov prstov. LED sa používa na indikáciu, že snímač odtlačkov prstov je pripravený prijať prst pre párovanie. Tu sme použili modul odtlačkov prstov, ktorý funguje na UART. Takže sme tu prepojili tento modul odtlačkov prstov s Raspberry Pi pomocou prevodníka USB na sériový port.
Najskôr teda musíme urobiť všetko potrebné pripojenie, ako je to znázornené v schéme nižšie. Pripojenia sú jednoduché, práve sme pripojili modul odtlačkov prstov k USB portu Raspberry Pi pomocou prevodníka USB na sériový port. Na zobrazenie všetkých správ sa používa 16x2 LCD. 10k hrniec sa používa aj s LCD na riadenie jeho kontrastu. 16x2 LCD piny RS, EN, d4, d5, d6 a d7 sú spojené s GPIO Pin 18, 23, 24, 25, 8 a 7 Raspberry Pi. K GPIO Pin 5, 6, 13 a 19 na Raspberry Pi sú pripojené štyri tlačidlá. LED je tiež pripojená na pin 26 RPI.
Inštalácia knižnice pre snímač odtlačkov prstov:
Po vykonaní všetkých pripojení potrebujeme zapnúť Raspberry Pi a pripraviť ho s otvoreným terminálom. Teraz musíme nainštalovať knižnicu odtlačkov prstov pre Raspberry Pi v jazyku python podľa nasledujúcich krokov.
Krok 1: Na inštaláciu tejto knižnice sú potrebné oprávnenia root. Najprv teda zadáme root pomocou daného príkazu:
sudo bash
Krok 2: Potom pomocou zadaných príkazov stiahnite niektoré požadované balíčky:
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 /
Krok 3: Potom musíme aktualizovať Raspberry pi a nainštalovať stiahnutú knižnicu snímačov odtlačkov prstov:
sudo apt-get aktualizácia sudo apt-get nainštalovať python-fingerprint –áno
Krok 4: Po nainštalovaní knižnice teraz musíme skontrolovať daný USB port, ku ktorému je pripojený snímač odtlačkov prstov, pomocou zadaného príkazu:
ls / dev / ttyUSB *
Teraz vymeňte port USB č. Za port USB, ktorý ste dostali cez obrazovku, a nahraďte ho v kóde python. Kompletný kód Pythonu je uvedený na konci tohto projektu.
Fungovanie snímača odtlačkov prstov s Raspberry Pi:
Prevádzka tohto projektu je jednoduchá, stačí spustiť kód pythonu a na LCD displeji sa zobrazí niekoľko úvodných správ a potom bude používateľ vyzvaný, aby umiestnil prst na snímač odtlačkov prstov. Teraz vložením modulu odtlačkov prstov môžeme skontrolovať, či sú naše odtlačky prstov už uložené alebo nie. Ak je váš odtlačok prsta uložený, na LCD displeji sa zobrazí správa s pozíciou ukladania odtlačkov prstov ako „ Fount at Pos: 2“, inak sa zobrazí „No Match Found“ .
Ak chcete zaregistrovať odtlačok prsta , musíte teraz stlačiť tlačidlo registrácie a postupovať podľa pokynov na obrazovke LCD.
Ak chce užívateľ vymazať ktorýkoľvek z odtlačkov prstov, musí stlačiť tlačidlo mazania. Potom sa na displeji LCD zobrazí výzva na zadanie polohy odtlačku prsta, ktorý sa má vymazať. Teraz pomocou ďalších dvoch tlačidiel na prírastok a úbytok môže používateľ zvoliť pozíciu uloženého odtlačku prsta a stlačiť tlačidlo registrácie (v tomto okamihu sa tlačidlo registrácie chová ako tlačidlo Ok), aby tento odtlačok prsta vymazal. Pre viac porozumenia si pozrite video uvedené na konci projektu.
Programovanie v Pythone:
Python na prepojenie snímača odtlačkov prstov s RPi je jednoduchý pomocou funkcií knižnice odtlačkov prstov. Ale ak to chce užívateľ prepojiť sám, bude to po prvýkrát trochu náročné. V údajových listoch snímačov odtlačkov prstov je uvedené všetko, čo je potrebné na prepojenie toho istého modulu. K dispozícii je kód GitHub na testovanie vašej Raspberry pi so snímačom odtlačkov prstov.
Tu sme použili knižnicu, takže stačí zavolať funkciu knižnice. V kóde najskôr musíme importovať knižnice ako odtlačok prsta, GPIO a čas, potom musíme definovať piny pre LCD, LED a tlačidlá.
čas importu z pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO ako gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 zápis = 5 vymazanie = 6 prírastkov = 13 dec = 19 led = 26 VYSOKÁ = 1 NÍZKA = 0
Potom musíme inicializovať a dať smer vybraným pinom
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 (zaregistrovať sa, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (vymazať, 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)
Teraz sme inicializovali snímač odtlačkov prstov
skúste: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): raise ValueError ('Dané heslo snímača odtlačkov prstov je nesprávne!') okrem výnimky ako e: print ('Správa o výnimke:' + str (e)) exit (1)
Napísali sme nejakú funkciu na inicializáciu a pohon LCD, skontrolujte kompletný kód nižšie v sekcii kódu:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Po napísaní všetkých funkcií ovládača LCD sme umiestnili funkcie na registráciu, vyhľadávanie a mazanie odtlačkov prstov.
funkcia def enrollFinger () slúži na registráciu alebo uloženie nových odtlačkov prstov.
def searchFinger () funkcia sa používa na vyhľadanie už uložených odtlačkov prstov
def deleteFinger () functinos sa používa na deotáciu už uloženého odtlačku prsta stlačením zodpovedajúceho tlačidla.
Všetky vyššie uvedené kódy funkcie sú uvedené v pythonovom kóde uvedenom nižšie.
Po tomto, nakoniec, musíme inicializovať systém v priebehu 1 slučky požiadaním o vloženie prsta na snímač odtlačkov prstov a potom systém skontroluje, či tento odtlačok prsta platí alebo nie, a podľa toho zobrazí výsledky.
start () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint ("víta vás") 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) zatiaľ čo gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Kompletný kód Pythonu a pracovné video sú uvedené nižšie.