- Componenti richiesti:
- Schema del circuito e spiegazione:
- Installazione della libreria per il sensore di impronte digitali:
- Funzionamento del sensore di impronte digitali con Raspberry Pi:
- Programmazione Python:
Il sensore di impronte digitali , che abbiamo usato per vedere nei film Sci-Fi alcuni anni fa, è diventato molto comune per verificare l'identità di una persona per vari scopi. Al giorno d'oggi possiamo vedere sistemi basati sulle impronte digitali ovunque nella nostra vita quotidiana come per la presenza negli uffici, la verifica dei dipendenti nelle banche, per il prelievo di contanti o depositi negli sportelli automatici, per la verifica dell'identità negli uffici governativi ecc. Lo abbiamo già interfacciato con Arduino, oggi interfacciamo FingerPrint Sensor con Raspberry Pi. Utilizzando questo sistema di impronte digitali Raspberry Pi, possiamo registrare nuove impronte digitali nel sistema e possiamo eliminare le impronte digitali già alimentate. Il funzionamento completo del sistema è stato mostrato nel video riportato a fine articolo.
Componenti richiesti:
- Raspberry Pi
- Convertitore da USB a seriale
- Modulo impronte digitali
- Premi i pulsanti
- LCD 16x2
- Pentola da 10k
- Bread Board o PCB (ordinato da JLCPCB)
- Cavi jumper
- LED (opzionale)
- Resistenza 150 ohm -1 k ohm (opzionale)
Schema del circuito e spiegazione:
In questo progetto di interfacciamento del sensore di impronte digitali Raspberry Pi, abbiamo utilizzato 4 pulsanti: uno per registrare il nuovo finger pring, uno per eliminare le impronte già alimentate e due per incrementare / decrementare la posizione delle impronte già alimentate. Un LED viene utilizzato per indicare che il sensore di impronte digitali è pronto a prendere il dito per la corrispondenza. Qui abbiamo utilizzato un modulo di impronte digitali che funziona su UART. Quindi qui abbiamo interfacciato questo modulo di impronte digitali con Raspberry Pi utilizzando un convertitore da USB a seriale.
Quindi, prima di tutto, dobbiamo effettuare tutte le connessioni richieste come mostrato nello schema del circuito di seguito. Le connessioni sono semplici, abbiamo appena collegato il modulo di impronte digitali alla porta USB Raspberry Pi utilizzando il convertitore da USB a seriale. Un LCD 16x2 viene utilizzato per visualizzare tutti i messaggi. Un potenziometro da 10k viene utilizzato anche con LCD per controllare il contrasto dello stesso. I pin LCD 16x2 RS, EN, d4, d5, d6 e d7 sono collegati rispettivamente con GPIO Pin 18, 23, 24, 25, 8 e 7 di Raspberry Pi. Quattro pulsanti sono collegati a GPIO Pin 5, 6, 13 e 19 di Raspberry Pi. Il LED è anche collegato al pin 26 di RPI.
Installazione della libreria per il sensore di impronte digitali:
Dopo aver effettuato tutte le connessioni, dobbiamo accendere Raspberry Pi e prepararlo con il terminale aperto. Ora dobbiamo installare la libreria di impronte digitali per Raspberry Pi in linguaggio Python seguendo i passaggi seguenti.
Passaggio 1: per installare questa libreria, sono necessari i privilegi di root. Quindi prima entriamo in root con il comando dato:
sudo bash
Passaggio 2: quindi scaricare alcuni pacchetti richiesti utilizzando i comandi forniti:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - aggiunta chiave apt - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / etc / apt / sources.list.d /
Passaggio 3: Successivamente, è necessario aggiornare il Raspberry pi e installare la libreria del sensore di impronte digitali scaricata:
sudo apt-get update sudo apt-get install python-fingerprint –yes
Passaggio 4: Dopo aver installato la libreria ora dobbiamo controllare la porta USB su cui è collegato il sensore di impronte digitali, utilizzando il comando dato:
ls / dev / ttyUSB *
Ora sostituisci la porta USB n., Con la porta USB che hai sopra lo schermo e sostituiscila nel codice Python. Alla fine di questo progetto viene fornito il codice Python completo.
Funzionamento del sensore di impronte digitali con Raspberry Pi:
Il funzionamento di questo progetto è semplice, basta eseguire il codice Python e ci saranno alcuni messaggi introduttivi sul display LCD e quindi all'utente verrà chiesto di posizionare il dito sul sensore di impronte digitali. Ora mettendo un dito sul modulo dell'impronta digitale, possiamo verificare se le nostre impronte digitali sono già memorizzate o meno. Se la tua impronta digitale è memorizzata, il display LCD mostrerà il messaggio con la posizione di memorizzazione dell'impronta digitale come " Fount at Pos: 2" altrimenti mostrerà "No Match Found" .
Ora per registrare un'impronta digitale, l' utente deve premere il pulsante di registrazione e seguire i messaggi di istruzioni sullo schermo LCD.
Se l'utente desidera eliminare una qualsiasi delle impronte digitali, deve premere il pulsante Elimina. Dopodiché, LCD chiederà la posizione dell'impronta digitale che deve essere cancellata. Ora, utilizzando altri due pulsanti per l'incremento e il decremento, l'utente può selezionare la posizione dell'impronta digitale salvata e premere il pulsante di registrazione (in questo momento il pulsante di registrazione si comporta come il pulsante Ok) per eliminare l'impronta digitale. Per una maggiore comprensione, guarda il video fornito alla fine del progetto.
Programmazione Python:
Python per l' interfacciamento del sensore di impronte digitali con RPi è facile con l'utilizzo delle funzioni della libreria di impronte digitali. Ma se l'utente desidera interfacciarlo da solo, sarà un po 'difficile per la prima volta. Nelle schede tecniche del sensore di impronte digitali viene fornito tutto ciò che è necessario per interfacciare lo stesso modulo. È disponibile un codice GitHub per testare il tuo Raspberry pi con il sensore di impronte digitali.
Qui abbiamo usato la libreria, quindi dobbiamo solo chiamare la funzione di libreria. Nel codice, prima dobbiamo importare librerie come impronte digitali, GPIO e ora, quindi dobbiamo definire i pin per LCD, LED e pulsanti.
import time from pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO as gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 register = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1 BASSO = 0
Dopodiché, dobbiamo inizializzare e dare la direzione ai pin selezionati
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 (iscriviti, 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)
Ora abbiamo inizializzato il sensore di impronte digitali
try: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): raise ValueError ('La password del sensore di impronte digitali fornita è sbagliata!') tranne Eccezione come e: print ('Messaggio di eccezione:' + str (e)) exit (1)
Abbiamo scritto alcune funzioni per inizializzare e guidare l'LCD, controlla il codice completo di seguito nella sezione codice:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Dopo aver scritto tutte le funzioni del driver LCD, abbiamo inserito le funzioni per la registrazione, la ricerca e l'eliminazione delle impronte digitali.
La funzione def registerFinger () viene utilizzata per registrare o salvare le nuove impronte digitali.
La funzione def searchFinger () è usata per ricercare le impronte digitali già memorizzate
def La funzione deleteFinger () è usata per deoting l'impronta digitale già salvata premendo il pulsante corrispondente.
Tutto il codice della funzione sopra viene fornito con il codice in Python fornito di seguito.
Dopodiché, finalmente, dobbiamo inizializzare il sistema entro il ciclo while 1 chiedendo di Posizionare il dito sul sensore di impronte digitali e quindi il sistema controllerà se questa impronta digitale è valida o meno e visualizzerà i risultati di conseguenza.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint ("Ti dà il benvenuto") time.sleep (3) flag = 0 lcdclear () mentre 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("Place Finger") if gpio.input (iscriviti) == 0: gpio.output (led, LOW) registerFinger () elif gpio.input (delet) == 0: gpio.output (led, LOW) while gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Di seguito sono riportati il codice Python completo e un video funzionante.