- Požadované komponenty:
- Schéma zapojení a vysvětlení:
- Instalace knihovny pro snímač otisků prstů:
- Provoz snímače otisků prstů s Raspberry Pi:
- Programování v Pythonu:
Snímač otisků prstů, který jsme před několika lety viděli ve sci-fi hrách, je nyní velmi běžný pro ověřování totožnosti osoby pro různé účely. V současné době vidíme systémy založené na otiscích prstů všude v našem každodenním životě, jako je docházka v kancelářích, ověřování zaměstnanců v bankách, výběr hotovosti nebo vklady v bankomatech, ověřování identity ve vládních úřadech atd. Již jsme jej propojili s Arduino, dnes budeme propojovat FingerPrint Sensor s Raspberry Pi. Pomocí tohoto systému Raspberry Pi FingerPrint můžeme zaregistrovat nové otisky prstů do systému a odstranit již zavedené otisky prstů. Kompletní fungování systému bylo ukázáno ve videu na konci článku.
Požadované komponenty:
- Raspberry Pi
- Převodník USB na sériový port
- Modul otisků prstů
- Tlačítka
- 16x2 LCD
- 10k hrnec
- Bread Board nebo PCB (objednáno u JLCPCB)
- Propojovací vodiče
- LED (volitelně)
- Rezistor 150 ohm -1 k ohm (volitelně)
Schéma zapojení a vysvětlení:
V tomto projektu propojení snímačů otisků prstů Raspberry Pi jsme použili 4 tlačítka: jedno pro registraci nového prstování, jedno pro mazání již přiváděných otisků prstů a druhé pro zvýšení / snížení polohy již přiváděných otisků prstů. LED se používá k indikaci, že snímač otisku prstu je připraven přijmout prst pro párování. Zde jsme použili modul otisků prstů, který funguje na UART. Zde jsme tedy propojili tento modul otisků prstů s Raspberry Pi pomocí převaděče USB na sériový port.
Nejprve tedy musíme provést všechna požadovaná připojení, jak je znázorněno na schématu níže. Připojení je jednoduché, právě jsme připojili modul otisků prstů k USB portu Raspberry Pi pomocí převaděče USB na sériový port. K zobrazení všech zpráv se používá 16x2 LCD. 10k hrnec se také používá s LCD pro ovládání jeho kontrastu. 16x2 LCD piny RS, EN, d4, d5, d6 a d7 jsou spojeny s GPIO Pin 18, 23, 24, 25, 8 a 7 Raspberry Pi. K GPIO Pin 5, 6, 13 a 19 Raspberry Pi jsou připojena čtyři tlačítka. LED je také připojena na pin 26 RPI.
Instalace knihovny pro snímač otisků prstů:
Po provedení všech připojení potřebujeme zapnout Raspberry Pi a připravit ho s otevřeným terminálem. Nyní musíme nainstalovat knihovnu otisků prstů pro Raspberry Pi v jazyce python podle následujících kroků.
Krok 1: K instalaci této knihovny jsou vyžadována oprávnění uživatele root. Nejprve tedy zadáme root pomocí daného příkazu:
sudo bash
Krok 2: Poté pomocí zadaných příkazů stáhněte některé požadované balíčky:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - přidání apt-key - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / etc / apt / sources.list.d /
Krok 3: Poté musíme aktualizovat Raspberry pi a nainstalovat staženou knihovnu snímačů otisků prstů:
sudo apt-get update sudo apt-get nainstalovat python-fingerprint – ano
Krok 4: Po instalaci knihovny nyní musíme pomocí daného příkazu zkontrolovat port USB, ke kterému je připojen snímač otisků prstů:
ls / dev / ttyUSB *
Nyní nahraďte port USB č. Portem USB, který jste dostali přes obrazovku, a nahraďte jej v kódu pythonu. Kompletní kód Pythonu je uveden na konci tohoto projektu.
Provoz snímače otisků prstů s Raspberry Pi:
Provoz tohoto projektu je jednoduchý, stačí spustit kód pythonu a na LCD budou nějaké úvodní zprávy a poté bude uživatel vyzván k vložení prstu na snímač otisku prstu. Nyní vložením modulu otisků prstů můžeme zkontrolovat, zda jsou naše otisky prstů již uloženy nebo ne. Pokud je váš otisk prstu uložen, LCD zobrazí zprávu s pozicí otisku prstu jako „ Fount at Pos: 2“, jinak se zobrazí „No Match Found“ .
Nyní se zapsat prst tisk, uživatelské potřeby stiskněte tlačítko zápisu do seznamu a postupujte podle pokynů zpráv na LCD displeji.
Pokud chce uživatel odstranit některý z otisků prstů, musí stisknout tlačítko mazání. Poté se LCD zeptá na polohu otisku prstu, který má být vymazán. Nyní pomocí dalšího dvou tlačítek pro přírůstek a úbytek může uživatel vybrat pozici uloženého otisku prstu a stisknutím tlačítka pro registraci (v tomto okamžiku se tlačítko pro registraci chová jako tlačítko Ok) odstraní tento otisk prstu. Pro více pochopení se podívejte na video uvedené na konci projektu.
Programování v Pythonu:
Python pro propojení snímače otisků prstů s RPi je snadné pomocí funkcí knihovny otisků prstů. Pokud jej však chce uživatel propojit sám, bude to poprvé trochu obtížné. V datových listech snímače otisků prstů je uvedeno vše, co je nutné pro propojení stejného modulu. K otestování Raspberry pi se snímačem otisku prstu je k dispozici kód GitHub.
Zde jsme použili knihovnu, takže stačí zavolat funkci knihovny. V kódu nejprve musíme importovat knihovny, jako je otisk prstu, GPIO a čas, pak musíme definovat piny pro LCD, LED a tlačítka.
čas importu z pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO jako gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 registrace = 5 vymazání = 6 přírůstků = 13 prosince = 19 LED = 26 VYSOKÁ = 1 LOW = 0
Poté musíme inicializovat a dát směr vybraným pinům
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 (registrace, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (vymazat, 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)
Nyní jsme inicializovali snímač otisků prstů
try: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): raise ValueError ('The given fingerprint sensor password is wrong!') except Exception as e: print ('Zpráva o výjimce:' + str (e)) exit (1)
Napsali jsme nějakou funkci pro inicializaci a ovládání LCD, zkontrolujte kompletní kód níže v sekci kódu:
def start (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Po napsání všech funkcí ovladače LCD jsme umístili funkce pro registraci, vyhledávání a mazání otisků prstů.
def enrollFinger () funkce se používá pro registraci nebo uložení nových otisků prstů.
def searchFinger () funkce se používá k vyhledání již uložených otisků prstů
def deleteFinger () functinos se používá k odstranění již uloženého otisku prstu stisknutím příslušného tlačítka.
Všechny výše uvedené funkce jsou uvedeny v kódu pythonu uvedeném níže.
Poté konečně musíme inicializovat systém pomocí in while 1 smyčky s požadavkem Umístit prst na snímač otisku prstu a poté systém zkontroluje, zda tento prst vytiskne, zda je platný nebo ne, a podle 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ítá 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) zatímco gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Níže je uveden kompletní kód Pythonu a pracovní video.