- Vereiste componenten:
- Schakelschema en uitleg:
- Bibliotheek voor vingerafdruksensor installeren:
- Werking van vingerafdruksensor met Raspberry Pi:
- Python-programmering:
Vingerafdruksensor, die we een paar jaar geleden in Sci-Fi-films zagen, is nu heel gebruikelijk geworden om de identiteit van een persoon voor verschillende doeleinden te verifiëren. Tegenwoordig kunnen we overal in ons dagelijks leven op vingerafdrukken gebaseerde systemen zien, zoals voor aanwezigheid op kantoren, verificatie van werknemers bij banken, voor het opnemen van contant geld of stortingen in geldautomaten, voor identiteitsverificatie in overheidskantoren, enz. We hebben het al gekoppeld aan Arduino, vandaag gaan we FingerPrint Sensor koppelen aan Raspberry Pi. Met behulp van dit Raspberry Pi FingerPrint-systeem kunnen we nieuwe vingerafdrukken in het systeem registreren en de reeds ingevoerde vingerafdrukken verwijderen. De volledige werking van het systeem is te zien in de video aan het einde van het artikel.
Vereiste componenten:
- Raspberry Pi
- USB naar serieel converter
- Vingerafdrukmodule
- Drukknoppen
- 16x2 LCD
- 10k pot
- Broodplank of printplaat (besteld bij JLCPCB)
- Doorverbindingsdraden
- LED (optioneel)
- Weerstand 150 ohm -1 k ohm (optioneel)
Schakelschema en uitleg:
In dit Raspberry Pi vingerafdruksensor- interfaceproject hebben we 4 drukknoppen gebruikt: één voor het registreren van de nieuwe vingerafdruk, één voor het verwijderen van de reeds ingevoerde vingerafdrukken en rust twee voor het verhogen / verlagen van de positie van reeds ingevoerde vingerafdrukken. Een LED wordt gebruikt om aan te geven dat de vingerafdruksensor klaar is om de vinger te pakken om te matchen. Hier hebben we een vingerafdrukmodule gebruikt die werkt op UART. Dus hier hebben we deze vingerafdrukmodule gekoppeld aan Raspberry Pi met behulp van een USB naar serieel converter.
Dus allereerst moeten we alle vereiste verbindingen maken zoals weergegeven in het onderstaande schakelschema. Verbindingen zijn eenvoudig, we hebben zojuist de vingerafdrukmodule op de Raspberry Pi USB-poort aangesloten met behulp van een USB-naar-seriële converter. Een 16x2 LCD wordt gebruikt voor het weergeven van alle berichten. Een 10k-pot wordt ook gebruikt met LCD om het contrast ervan te regelen. 16x2 LCD-pinnen RS, EN, d4, d5, d6 en d7 zijn verbonden met respectievelijk GPIO-pen 18, 23, 24, 25, 8 en 7 van Raspberry Pi. Vier drukknoppen zijn verbonden met GPIO Pin 5, 6, 13 en 19 van Raspberry Pi. LED is ook aangesloten op pin 26 van RPI.
Bibliotheek voor vingerafdruksensor installeren:
Nadat we alle verbindingen hebben gemaakt, moeten we de Raspberry Pi opstarten en klaar maken met de terminal open. Nu moeten we de vingerafdrukbibliotheek voor Raspberry Pi in python-taal installeren door de onderstaande stappen te volgen.
Stap 1: Om deze bibliotheek te installeren, zijn root-rechten vereist. Dus eerst voeren we root in met het gegeven commando:
sudo bash
Stap 2: Vervolgens downloaden sommige benodigde pakketten door via de commando's:
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 /
Stap 3: Hierna moeten we de Raspberry pi bijwerken en de gedownloade bibliotheek met vingerafdruksensor installeren:
sudo apt-get update sudo apt-get install python-fingerprint –ja
Stap 4: Na het installeren van de bibliotheek moeten we de USB-poort controleren waarop uw vingerafdruksensor is aangesloten, met behulp van de opdracht:
ls / dev / ttyUSB *
Vervang nu de USB-poort nr., Door de USB-poort die je over het scherm hebt gekregen en vervang deze in de python-code. De volledige Python-code wordt aan het einde van dit project gegeven.
Werking van vingerafdruksensor met Raspberry Pi:
De bediening van dit project is eenvoudig, voer gewoon de python-code uit en er zullen enkele introberichten op het LCD-scherm verschijnen en vervolgens wordt de gebruiker gevraagd om een vinger op de vingerafdruksensor te plaatsen. Door nu een vinger over de vingerafdrukmodule te plaatsen, kunnen we controleren of onze vingerafdrukken al zijn opgeslagen of niet. Als uw vingerafdruk is opgeslagen, toont het LCD-scherm het bericht met de opslagpositie van de vingerafdruk zoals ' Fount at Pos: 2', anders wordt 'No Match Found' weergegeven .
Nu in te schrijven een vinger afdrukken, behoeften van de gebruiker te drukken inschrijven knop en volg de instructies berichten op het LCD-scherm.
Als de gebruiker vingerafdrukken wil verwijderen, moet de gebruiker op de verwijderknop drukken. Daarna vraagt het LCD naar de positie van de vingerafdruk die moet worden verwijderd. Door nu nog twee drukknoppen te gebruiken voor verhogen en verlagen, kan de gebruiker de positie van de opgeslagen vingerafdruk selecteren en op de registratieknop drukken (op dit moment gedraagt de registratieknop zich als de OK-knop) om die vingerafdruk te verwijderen. Bekijk voor meer begrip de video die aan het einde van het project wordt gegeven.
Python-programmering:
Python voor het koppelen van vingerafdruksensor met RPi is eenvoudig met het gebruik van vingerafdrukbibliotheekfuncties. Maar als de gebruiker het zelf wil gebruiken, zal het voor de eerste keer een beetje moeilijk zijn. In de datasheets van vingerafdruksensoren wordt alles gegeven wat nodig is om dezelfde module te koppelen. Er is een GitHub-code beschikbaar om uw Raspberry pi met vingerafdruksensor te testen.
Hier hebben we de bibliotheek gebruikt, dus we hoeven alleen de bibliotheekfunctie aan te roepen. In code moeten we eerst bibliotheken importeren, zoals vingerafdruk, GPIO en tijd, en vervolgens moeten we pinnen definiëren voor LCD, LED en drukknoppen.
importeer tijd van pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO als gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 enroll = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1 LAAG = 0
Hierna moeten we initialiseren en richting geven aan de geselecteerde pinnen
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 (verwijderen, 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)
Nu hebben we de vingerafdruksensor geïnitialiseerd
probeer: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): raise ValueError ('Het opgegeven wachtwoord van de vingerafdruksensor is verkeerd!') behalve uitzondering als e: print ('Uitzonderingsbericht:' + str (e)) exit (1)
We hebben een functie geschreven om het LCD-scherm te initialiseren en aan te sturen, controleer de volledige code hieronder in het codegedeelte:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
Nadat we alle LCD-stuurprogrammafuncties hebben geschreven, hebben we functies geplaatst voor het registreren, zoeken en verwijderen van vingerafdrukken.
def enrollFinger () functie wordt gebruikt voor het registreren of opslaan van de nieuwe vingerafdrukken.
def searchFinger () functie wordt gebruikt om de reeds opgeslagen vingerafdrukken te zoeken.
def deleteFinger () functies worden gebruikt om de reeds opgeslagen vingerafdruk te verwijderen door op de corresponderende drukknop te drukken.
Alle bovenstaande functiecode wordt gegeven in de onderstaande python-code.
Hierna moeten we ten slotte het systeem initialiseren door in while 1- lus te vragen om Vinger op vingerafdruksensor te plaatsen en vervolgens zal het systeem controleren of deze vingerafdruk geldig is of niet en de resultaten dienovereenkomstig weergeven.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint ("Welkom") 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) terwijl gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Volledige Python-code en een werkvideo worden hieronder gegeven.