Рубрики
Проекты на Raspberry Pi

Подключение датчика отпечатков пальцев к Raspberry Pi

Датчики отпечатков пальцев (Finger Print Sensor) в настоящее время находят все более широкое применение в жизнедеятельности современного общества. В данной статье мы рассмотрим подключение датчика отпечатка пальцев к плате Raspberry Pi. С помощью датчика отпечатков пальцев мы сможем регистрировать в нашей системе новые отпечатки пальцев и удалять уже существующие отпечатки пальцев. Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Ранее на нашем сайте мы уже рассматривали подключение датчика отпечатка пальцев к плате Arduino и к микроконтроллеру AVR.

Необходимые компоненты

  1. Плата Raspberry Pi (купить на AliExpress).
  2. ЖК дисплей 16×2 (купить на AliExpress).
  3. Конвертер USB в UART-порт (купить на AliExpress).
  4. Датчик отпечатков пальцев (купить на AliExpress).
  5. Кнопки.
  6. Потенциометр 10 кОм (купить на AliExpress).
  7. Макетная или печатная плата.
  8. Соединительные провода.
  9. Светодиод (опционально) (купить на AliExpress).
  10. Резистор 150 Ом — 1 кОм (опционально) (купить на AliExpress).

Схема проекта

В схеме нашего проекта мы будем использовать 4 кнопки:
— 1-я будет вносить в базу новый отпечаток пальца;
— 2-я будет удалять из базы существующий отпечаток пальца;
— 3-я и 4-я будут инкрементировать/декрементировать позицию среди существующих отпечатков пальцев (внесенных в систему).

Светодиод будет использоваться для индикации того, что датчик отпечатков пальцев готов считать новый отпечаток пальца. В нашем проекте мы будем использовать датчик отпечатков пальцев, который работает через UART (последовательный порт). Для того, чтобы подключить данный датчик к плате Raspberry Pi, мы будем использовать конвертер USB в последовательный порт. Внешний вид подобного конвертера представлен на следующем рисунке.

Схема подключения датчика отпечатка пальцев к плате Raspberry Pi представлена на следующем рисунке.

ЖК дисплей в схеме используется для отображения всех необходимых сообщений. Потенциометр 10 кОм используется для регулировки его контрастности. Контакты ЖК дисплея RS, EN, d4, d5, d6 и d7 подключены к контактам GPIO 18, 23, 24, 25, 8 и 7 платы Raspberry Pi соответственно. Четыре кнопки подключены к контактам GPIO 5, 6, 13 и 19 платы Raspberry Pi. Светодиод подключен к контакту 26 платы.

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Установка библиотеки для работы с датчиком отпечатков пальцев

После того, как все соединения в схеме сделаны, откройте окно терминала на Raspberry Pi. Для установки библиотеки, позволяющей работать с датчиком отпечатков пальцев, выполните следующую последовательность шагов.

Шаг 1. Для установки данной библиотеки особые привилегии (root privileges). Чтобы получить доступ к данным привилегиям (войти в «корень» системы) используйте следующую команду:

Шаг 2. Скачайте необходимые пакеты с помощью следующих команд.

Шаг 3. После этого необходимо скачать последние обновления для Raspberry Pi установить скачанную библиотеку для работы с датчиком отпечатков пальцев.

Шаг 4. После установки библиотеки необходимо проверить USB порт, к которому в нашем проекте подключен датчик отпечатков пальцев.

После этого вы должны изменить номер USB порта в программе (приведена ниже) на тот номер порта, который вы видите на экране в результате выполнения данной команды.

Принципы работы проекта

Запустите код программы для данного проекта на выполнение, после этого вы увидите на экране ЖК дисплея приветственное сообщение, после чего система попросит вас приложить палец к датчику отпечатков пальцев. Приложив палец к датчику, мы можем убедиться в том сохранен ли уже наш отпечаток пальца в системе или нет. Если наш отпечаток пальца уже сохранен в системе, то на экране ЖК дисплея высветится сообщение с позицией отпечатка в системе, например, ‘Fount at Pos:2’. Если же отпечаток пальца не найден в системе, то высветится сообщение ‘No Match Found’ (соответствия не найдено).

Чтобы внести отпечаток пальца в систему пользователю необходимо нажать кнопку enroll и следовать инструкциям, которые он увидит на ЖК дисплее.

Если пользователю необходимо удалить какой-нибудь отпечаток пальца из системы, он должен нажать кнопку delete. После этого на ЖК дисплее высветится сообщение с запросом позиции отпечатка пальцев, который необходимо удалить. Используя две остальные кнопки проекта, пользователь может выбрать позицию отпечатка пальцев, который необходимо удалить, после этого он должен нажать кнопку enroll (то есть в данном случае кнопка enroll работает как кнопка Ok). Более подробно работу проекта вы можете посмотреть на видео, представленном в конце статьи.

Структурная схема работы проекта показана на следующем рисунке.

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Если вы будете использовать готовые функции библиотеки, то работа с датчиком отпечатков пальцев станет достаточно простой. Но если вы будете подключать его в программе самостоятельно, то это может быть немного затруднительно в первый раз – вся информация, необходимая для этого, содержится в даташите на датчик отпечатков пальцев. Также вы можете использовать этот код с репозитория GitHub, чтобы протестировать работу вашей платы Raspberry Pi с датчиком отпечатков пальцев.

В программе нам первым делом необходимо подключить (импортировать) используемые библиотеки (fingerprint, GPIO и time) и объявить используемые контакты.

После этого необходимо задать направление работы для используемых контактов – на ввод или вывод данных.

Затем мы инициализируем датчик отпечатков пальцев.

Далее мы запрограммируем ряд функций для работы с ЖК дисплеем. Их коды приведены ниже, в полном тексте программы.

После этого мы запрограммируем функции для добавления нового отпечатка пальца, поиска отпечатка и удаления отпечатка:

  • def enrollFinger() – используется для добавления (сохранения) нового отпечатка пальца в систему;
  • def searchFinger() – используется для поиска сохраненных ранее отпечатков пальцев;
  • def deleteFinger() – используется для удаления выбранного отпечатка пальца.

Далее, в бесконечном цикле мы будем формировать запрос (приглашение) пользователю чтобы он приложил свой палец к датчику отпечатков пальцев. После этого мы будем проверять отпечаток пальца на корректность (то есть присутствует ли он уже в системе) и выводить на экран дисплея результат этой проверки.

Исходный код программы на Python

Видео, демонстрирующее работу проекта

2 ответа к “Подключение датчика отпечатков пальцев к Raspberry Pi”

Добрый день. А каким образом можно будет реализовать функцию отправки данных в базу данных? чтобы дальше использовать отпечаток.

Здравствуйте, ну здесь многое зависит от того какую базу данных вы хотите использовать. На основе mySQL или какой то специализированный интернет сервис для хранения данных?
К примеру, на нашем сайте есть статья про веб-сервер на Raspberry Pi с хостингом сайта на WordPress, в ней рассматривается установка сервера MySQL. Вам что то подобное нужно или нет?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *