- Необходими компоненти:
- Електрическа схема и обяснение:
- Инсталиране на библиотека за сензор за пръстов отпечатък:
- Работа на сензора за пръстови отпечатъци с Raspberry Pi:
- Програмиране на Python:
Сензорът за отпечатък на пръсти, който преди виждахме в научнофантастични филми преди няколко години, сега е много разпространен за проверка на самоличността на човек за различни цели. Понастоящем можем да видим системи, базирани на пръстови отпечатъци, навсякъде в нашето ежедневие, като например присъствие в офиси, проверка на служители в банки, теглене на пари или депозити в банкомати, проверка на самоличността в правителствени служби и т.н. Вече сме го свързвали с Arduino, днес ще свържем FingerPrint Sensor с Raspberry Pi. С помощта на тази Raspberry Pi FingerPrint система можем да регистрираме нови отпечатъци на пръсти в системата и да изтрием вече подадените отпечатъци на пръсти. Цялостната работа на системата е показана във видеото, дадено в края на статията.
Необходими компоненти:
- Raspberry Pi
- USB към сериен конвертор
- Модул за пръстови отпечатъци
- Бутони
- 16x2 LCD
- 10к пот
- Дъска за хляб или печатни платки (поръчани от JLCPCB)
- Джъмперни проводници
- LED (по избор)
- Резистор 150 ома -1 k ома (по избор)
Електрическа схема и обяснение:
В този проект за взаимодействие на датчик за пръстови отпечатъци на Raspberry Pi използвахме 4 бутона: един за записване на новия пръстови отпечатък, един за изтриване на вече подадените пръстови отпечатъци и два останали за увеличаване / намаляване на позицията на вече подадени пръстови отпечатъци. А LED се използва за индикация, че сензор за пръстови отпечатъци е готов да поеме пръст за съвпадение. Тук използвахме модул за пръстови отпечатъци, който работи на UART. И така, тук сме свързали този модул за пръстови отпечатъци с Raspberry Pi, използвайки USB към сериен конвертор.
И така, на първо място, трябва да осъществим цялата необходима връзка, както е показано в схемата по-долу. Връзките са лесни, току-що свързахме модула за пръстови отпечатъци към USB порта на Raspberry Pi с помощта на USB към сериен конвертор 16x2 LCD се използва за показване на всички съобщения. 10k пот също се използва с LCD за контрол на контраста на същия. 16x2 LCD щифта RS, EN, d4, d5, d6 и d7 са свързани съответно с GPIO Pin 18, 23, 24, 25, 8 и 7 на Raspberry Pi. Четири бутона са свързани към GPIO Pin 5, 6, 13 и 19 на Raspberry Pi. LED също е свързан на щифт 26 на RPI.
Инсталиране на библиотека за сензор за пръстов отпечатък:
След като направим всички връзки, трябва да включим Raspberry Pi и да го подготвим с отворен терминал. Сега трябва да инсталираме библиотека с пръстови отпечатъци за Raspberry Pi на език python, като следваме стъпките по-долу.
Стъпка 1: За да инсталирате тази библиотека, са необходими root права. Така че първо влизаме в root чрез дадена команда:
судо баш
Стъпка 2: След това изтеглете някои необходими пакети, като използвате зададени команди:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - apt-key add - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / и т.н. / apt / sources.list.d /
Стъпка 3: След това трябва да актуализираме Raspberry pi и да инсталираме изтеглената библиотека със сензор за пръстови отпечатъци:
sudo apt-get update sudo apt-get install python-fingerprint –да
Стъпка 4: След като инсталираме библиотека сега, трябва да проверим USB порта, към който е свързан сензорът за пръстови отпечатъци, като използваме дадената команда:
ls / dev / ttyUSB *
Сега заменете номера на USB порта, с USB порта, който сте прекарали на екрана, и го заменете в кода на python. Пълният код на Python е даден в края на този проект.
Работа на сензора за пръстови отпечатъци с Raspberry Pi:
Работата с този проект е проста, просто стартирайте кода на python и ще има някои интро съобщения над LCD и след това потребителят ще бъде помолен да постави пръст върху сензор за пръстов отпечатък. Сега, като поставим пръст върху модула за пръстови отпечатъци, можем да проверим дали отпечатъците ни вече са съхранени или не. Ако вашият пръстов отпечатък е съхранен, тогава LCD ще покаже съобщението с позицията за съхранение на пръстов отпечатък като „ Fount at Pos: 2“, в противен случай ще покаже „No Match Found“ .
Сега, за да регистрира пръстов отпечатък , потребителят трябва да натисне бутона за регистрация и да следва съобщенията с инструкции на LCD екрана.
Ако потребителят иска да изтрие някой от пръстовите отпечатъци, той трябва да натисне бутона за изтриване. След което LCD ще поиска позицията на пръстовия отпечатък, който трябва да бъде изтрит. Сега, използвайки още два бутона за увеличаване и намаляване, потребителят може да избере позицията на запазения пръстов отпечатък и да натисне бутона за регистрация (в този момент бутонът за регистрация се държи като бутон ОК), за да изтрие този пръстов отпечатък. За повече разбиране погледнете видеото, дадено в края на проекта.
Програмиране на Python:
Python за взаимодействие на сензора за пръстов отпечатък с RPi е лесен с използването на библиотечни функции за пръстови отпечатъци. Но ако потребителят иска да го свърже сам, тогава ще бъде малко трудно за първи път. В таблиците с данни на сензора за пръстов отпечатък е дадено всичко, което е необходимо за свързване на същия модул. Наличен е GitHub код за тестване на вашия Raspberry pi със сензор за пръстов отпечатък.
Тук използвахме библиотеката, така че просто трябва да извикаме функцията на библиотеката. В кода първо трябва да импортираме библиотеки като пръстови отпечатъци, GPIO и време, след това трябва да дефинираме щифтове за LCD, LED и бутони.
време за импортиране от pyfingerprint.pyfingerprint импортиране PyFingerprint импортиране RPi.GPIO като gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 записване = 5 delet = 6 inc = 13 dec = 19 led = 26 HIGH = 1 НИСКО = 0
След това трябва да инициализираме и да дадем посока на избраните щифтове
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 (записване, 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)
Сега имаме инициализиран сензор за пръстови отпечатъци
опитайте: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) ако (f.verifyPassword () == False): повишете ValueError ('Дадената парола за сензор за пръстови отпечатъци е грешна!') с изключение на e: print ('Съобщение за изключение:' + str (e)) exit (1)
Написахме някаква функция за инициализиране и задвижване на LCD, проверете пълния код по-долу в раздела за кодове:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
След като написахме всички функции на драйвера за LCD, сме поставили функции за записване, търсене и изтриване на пръстови отпечатъци.
def enroll Функцията Finger () се използва за записване или запазване на новите отпечатъци на пръсти.
Функцията def searchFinger () се използва за търсене на вече съхранените отпечатъци на пръсти
def deleteFinger () functinos се използва за деотиране на вече запазения отпечатък с натискане на съответния бутон
Кодът на всички по-горе функции е даден в кода на python, даден по-долу.
След това, накрая, трябва да инициализираме системата чрез in while 1 цикъл, като поискаме да поставим пръст върху сензора за пръстови отпечатъци и след това системата ще провери дали този пръст е валиден или не и съответно ще покаже резултатите.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Circuit Digest") lcdcmd (0xc0) lcdprint) time.sleep (3) флаг = 0 lcdclear (), докато 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("Place Finger") ако gpio.input (enroll) == 0: gpio.output led, LOW) enrollFinger () elif gpio.input (delet) == 0: gpio.output (led, LOW), докато gpio.input (delet) == 0: time.sleep (0.1) deleteFinger () else: searchFinger ()
Пълният код на Python и работещо видео е дадено по-долу.