- Обязательные компоненты:
- Принципиальная схема и пояснения:
- Установка библиотеки для датчика отпечатков пальцев:
- Работа датчика отпечатков пальцев с Raspberry Pi:
- Программирование на Python:
Датчик отпечатков пальцев, который мы видели в научно-фантастических фильмах несколько лет назад, теперь стал очень распространенным явлением для проверки личности человека в различных целях. В настоящее время мы можем видеть системы на основе отпечатков пальцев повсюду в нашей повседневной жизни, например, для посещения офисов, проверки сотрудников в банках, для снятия наличных или внесения депозитов в банкоматы, для проверки личности в государственных учреждениях и т. Д. Мы уже подключили его к Arduino, сегодня мы собираемся связать датчик отпечатков пальцев с Raspberry Pi. Используя эту систему FingerPrint Raspberry Pi, мы можем регистрировать новые отпечатки пальцев в системе и удалять уже загруженные отпечатки пальцев. Полноценная работа системы продемонстрирована на видео в конце статьи.
Обязательные компоненты:
- Raspberry Pi
- Конвертер USB в последовательный порт
- Модуль отпечатков пальцев
- Нажмите на кнопки
- ЖК-дисплей 16x2
- 10к банк
- Хлебная плата или печатная плата (заказываются в JLCPCB)
- Перемычки
- LED (опционально)
- Резистор 150 Ом -1 кОм (опционально)
Принципиальная схема и пояснения:
В этом проекте сопряжения датчика отпечатков пальцев Raspberry Pi мы использовали 4 кнопки: одну для регистрации нового отпечатка пальца, одну для удаления уже загруженных отпечатков пальцев и две остальные для увеличения / уменьшения положения уже загруженных отпечатков пальцев. Светодиод используется для указания, что датчик отпечатков пальцев готов принять палец для согласования. Здесь мы использовали модуль отпечатков пальцев, который работает на UART. Итак, мы подключили этот модуль отпечатков пальцев к Raspberry Pi с помощью преобразователя USB в последовательный порт.
Итак, прежде всего, нам нужно выполнить все необходимые подключения, как показано на принципиальной схеме ниже. Подключения просты, мы только что подключили модуль отпечатков пальцев к USB-порту Raspberry Pi с помощью преобразователя USB в последовательный. ЖК-дисплей 16x2 используется для отображения всех сообщений. Потолок 10k также используется с ЖК-дисплеем для управления контрастностью. Контакты LCD 16x2 RS, EN, d4, d5, d6 и d7 подключены к контактам GPIO 18, 23, 24, 25, 8 и 7 Raspberry Pi соответственно. Четыре кнопки подключены к контактам GPIO 5, 6, 13 и 19 Raspberry Pi. Светодиод также подключен к выводу 26 RPI.
Установка библиотеки для датчика отпечатков пальцев:
После выполнения всех подключений нам нужно включить Raspberry Pi и подготовить его с открытым терминалом. Теперь нам нужно установить библиотеку отпечатков пальцев для Raspberry Pi на языке Python, выполнив следующие шаги.
Шаг 1. Для установки этой библиотеки требуются права root. Итак, сначала мы входим в корень по заданной команде:
sudo bash
Шаг 2: Затем загрузите некоторые необходимые пакеты, используя указанные команды:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - добавление ключа apt - 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, и на ЖК-дисплее появятся вводные сообщения, а затем пользователя попросят приложить палец к датчику отпечатка пальца. Теперь, приложив палец к модулю отпечатков пальцев, мы можем проверить, сохранены ли уже наши отпечатки пальцев или нет. Если ваш отпечаток пальца сохранен, на ЖК-дисплее отобразится сообщение с положением сохранения отпечатка пальца, например « Fount at Pos: 2», в противном случае отобразится «Совпадение не найдено» .
Теперь, чтобы зарегистрировать отпечаток пальца , пользователю необходимо нажать кнопку регистрации и следовать инструкциям на ЖК-экране.
Если пользователь хочет удалить какой-либо из отпечатков пальцев, ему необходимо нажать кнопку удаления. После этого ЖК-дисплей запросит положение отпечатка пальца, который необходимо удалить. Теперь, используя еще две кнопки для увеличения и уменьшения, пользователь может выбрать положение сохраненного отпечатка пальца и нажать кнопку регистрации (в это время кнопка регистрации ведет себя как кнопка Ok), чтобы удалить этот отпечаток пальца. Для большего понимания посмотрите видео, предоставленное в конце проекта.
Программирование на Python:
Python для взаимодействия датчика отпечатков пальцев с RPi легко использовать с помощью функций библиотеки отпечатков пальцев. Но если пользователь захочет самостоятельно настроить интерфейс, то в первый раз это будет немного сложно. В технических описаниях датчиков отпечатков пальцев указано все, что требуется для взаимодействия с одним и тем же модулем. Доступен код GitHub для тестирования вашего Raspberry pi с датчиком отпечатков пальцев.
Здесь мы использовали библиотеку, поэтому нам просто нужно вызвать библиотечную функцию. В коде сначала нам нужно импортировать библиотеки, такие как отпечаток пальца, GPIO и время, затем нам нужно определить контакты для ЖК-дисплея, светодиода и кнопок.
время импорта из pyfingerprint.pyfingerprint import PyFingerprint import RPi.GPIO as 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 НИЗКИЙ = 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 (enroll, 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) if (f.verifyPassword () == False): поднять ValueError ('Указанный пароль датчика отпечатка пальца неверен!') кроме Exception as e: print ('Сообщение об исключении:' + str (e)) exit (1)
Мы написали некоторую функцию для инициализации и управления ЖК-дисплеем, проверьте полный код ниже в разделе кода:
def begin (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
После написания всех функций драйвера ЖК-дисплея мы разместили функции для регистрации, поиска и удаления отпечатков пальцев.
Функция def enrollFinger () используется для регистрации или сохранения новых отпечатков пальцев.
Функция def searchFinger () используется для поиска уже сохраненных отпечатков пальцев.
Функция def deleteFinger () используется для удаления уже сохраненного отпечатка пальца нажатием соответствующей кнопки.
Код всей вышеупомянутой функции представлен в коде Python, приведенном ниже.
После этого, в конце концов, мы должны инициализировать систему с помощью в то время как 1 цикл, попросив Place Палец на датчик отпечатков пальцев, а затем система проверит этот палец печатать его действительным или нет, и отображать результаты соответственно.
begin () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("Interfacing") time.sleep (3) lcdcmd (0x01) lcdprint ("Дайджест схемы") lcdcmd (0xc0) lcdprint ("Добро пожаловать!") time.sleep (3) flag = 0 lcdclear (), а 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint («Поместите палец»), если 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 и рабочее видео приведены ниже.