Биометрическая система безопасности c использованием Arduino и датчика отпечатков пальцев

Безопасность является одной из основных проблем в современном обществе, и цифровые замки стали важной частью нынешних систем безопасности. Существует много типов систем безопасности, например, на основе датчиков движения, на основе радиочастотных меток, цифровых кодовых замков и т.д. В этом проекте мы рассмотрим подключение модуля датчика отпечатка пальцев к плате Arduino и создадим биометрическую систему безопасности c использованием Arduino и датчика отпечатков пальцев. Отпечаток пальца считается одним из самых безопасных способов для блокировки или разблокировки любой системы, поскольку он однозначно идентифицирует конкретного человека и его достаточно сложно скопировать.

Внешний вид биометрической системы безопасности c использованием Arduino

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

Плата Arduino Uno
ЖК дисплей 16х2
Модуль датчика отпечатков пальцев
Кнопка (4 шт.)
Светодиод (2 шт.)
Резистор 1 кОм (3 шт.)
Резистор 2,2 кОм
Источник питания
Соединительные провода
Картонная коробка
Серводвигатель (сервомотор)
Макетная плата

Модуль отпечатков пальцев и Arduino

Модуль отпечатков пальцев или сканер отпечатков пальцев — это модуль, который захватывает печатное изображение пальца, а затем преобразует его в эквивалентный шаблон и сохраняет их в своей памяти на выбранном идентификаторе (местоположении) с помощью Arduino. Весь процесс управляется платой Arduino: считывание изображения отпечатка пальца, конвертирование его в шаблоны, хранение местоположения и т.д.

Внешний вид модуля отпечатков пальцев

В этом проекте биометрической системы безопасности на основе платы Arduino мы использовали модуль датчика отпечатков пальцев для получения отпечатков пальцев (или отпечатка большого пальца) в качестве входных данных в системе. Мы будем использовать 4 кнопки: регистрация/назад, удаление/OK, вверх и вниз. Каждая кнопка имеет двойные функции. Кнопка для регистрации (enroll) используется для регистрации нового отпечатка пальца в системе и возвращения назад. Когда пользователь хочет зарегистрировать новый палец, то ему нужно нажать клавишу enroll, а затем ЖК-дисплей запросит идентификатор или местоположение, где пользователь хочет сохранить отпечаток пальца. Но если в это время пользователь не хочет продолжать дальше, то он/она может снова нажать клавишу enroll, чтобы вернуться назад (то есть клавиша (кнопка) enroll в этой ситуации выполняет роль клавиши возврата). То есть кнопка enroll имеет как функцию регистрации, так и функцию возврата. Клавиша DEL/OK также имеет двойную функцию: когда пользователь регистрирует новый палец, то ему/ей нужно выбрать идентификатор пальца или местоположение, используя еще две клавиши, а именно UP/MATCH и DOWN/MATCH (которые также имеют двойные функции), после чего пользователю нужно нажать клавишу DEL/OK (на этот раз эта клавиша ведет себя как OK), чтобы продолжить с выбранным идентификатором или местоположением. Клавиши UP/DOWN также поддерживают функцию сопоставления отпечатков пальцев. Немного трудновато написано, но все станет ясно если вы посмотрите видео, приведенное в конце статьи – там все эти процессы показаны более подробно.

В этом проекте мы используем картонную коробку и сервомотор, которые работают как ворота (безопасности) и открываются только тогда, когда система считывает правильный отпечаток пальца. Желтый светодиод показывает, что ворота закрыты, а зеленый светодиод — что ворота открыты.

Вид собранной конструкции сверху картонной коробки

Объяснение работы проекта

Работа рассматриваемого нами дверного замка на основе датчика отпечатка пальцев достаточно проста. В этом проекте мы использовали ворота, которые будут открыты, когда мы помещаем сохраненный палец в модуль отпечатков пальцев. Но перед этим пользователю необходимо зарегистрировать палец в системе. Для этого пользователю необходимо нажать клавишу ENROLL, а затем ЖК-дисплей запросит у него местоположение/ID (идентификатор), где будет храниться отпечаток пальца. После этого пользователю необходимо ввести идентификатор/ (местоположение) с помощью клавиш UP/DOWN. После выбора Location (местоположения)/ID пользователю необходимо нажать клавишу OK. Теперь ЖК-дисплей попросит разместить палец над модулем отпечатков пальцев. После этого пользователю нужно положить свой палец на модуль отпечатков пальцев. Затем ЖК-дисплей попросит удалить палец из модуля отпечатков пальцев и снова попросит разместить палец. Теперь пользователю нужно снова положить палец на модуль отпечатков пальцев. После этого модуль отпечатков пальцев захватывает изображение пальца, преобразует его в шаблоны и сохраняет его по выбранному идентификатору в памяти модуля отпечатков пальцев. Теперь пользователь может открыть ворота, поместив тот же палец, который он добавил (зарегистрировал в системе). После помещения пальца в датчик отпечатков пальцев необходимо нажать кнопку MATCH (UP/Down key). Аналогичным способом можно добавить и другие отпечатки пальцев в систему. Более подробно все эти процессы показаны в видео в конце статьи.

Структурная схема работы проекта

Если пользователь хочет удалить любой из сохраненных идентификаторов, то ему нужно нажать клавишу DEL — после нажатия клавиши DEL ЖК-дисплей попросит выбрать местоположение/идентификатор, который необходимо удалить. После этого пользователю необходимо выбрать ID (идентификатор) и нажать клавишу OK (та же клавиша DEL). После завершения этого шага на ЖК дисплее высветится надпись о том, что палец (с выбранным идентификатором) был успешно из системы. После этого пользователь может проверить, был ли он (его палец) удален или нет, поместив тот же палец на модуль отпечатков пальцев и нажав клавишу MATCH (UP/Down key).

Когда помещенный палец будет действителен (зарегистрирован в системе), зеленый светодиод будет светиться в течение пяти секунд и ворота откроются на это же время. Через 5 секунд ворота закроются автоматически. Эти параметры (интервалы открытия и закрытия ворот) вы легко можете изменить в программе по своему желанию. Серводвигатель отвечает за открытие и закрытие ворот.

Работа схемы

Схема нашей биометрической системы безопасности на основе платы Arduino представлена на следующем рисунке. Плата Arduino управляет всеми процессами в схеме: считывает нажатия кнопок, отображает информацию на ЖК дисплее, принимает информацию от датчика отпечатков пальцев, дает команды сервомотору.

Схема биометрической системы безопасности c использованием Arduino и датчика отпечатков пальцевКнопки непосредственно подсоединены к контактам D14(ENROL),D15(DEL), D16(UP) и D17(DOWN) платы Arduino. Вторые контакты кнопок замкнуты на землю. Желтый светодиод подключен к контакту D7 платы Arduino, а зеленый светодиод – к контакту D6 платы Arduino. Контакты Rx и Tx модуля датчика отпечатков пальцев непосредственно подключены к контактам D2 и D3 платы Arduino, на которых с помощью библиотеки последовательной связи (Software Serial Library) организуется порт последовательной связи.

Примечание: здесь D14, D15, D16, D17 являются контактами A0, A1, A2, A3 соответственно.

Питание 5 В используется для питания модуля датчика отпечатков пальцев и оно берется с платы Arduino. Сервомотор подключен к цифровому контакту D5 платы Arduino, на котором можно задействовать широтно-импульсную модуляцию, с помощью которой и управляется сервомотор. ЖК дисплей подключен к плате Arduino в 4-битном режиме и его контакты RS, EN, D4, D5, D6 и D7 непосредственно соединены с цифровыми контактами D13, D12, D11, D10, D9 и D8 платы Arduino.

Полный вид конструкции нашего проекта

Объяснение работы программы

В программе мы использовали Adafruit Fingerprint Sensor Library для подключения модуля датчика отпечатков пальцев к плате Arduino. Полный код программы приведен в конце статьи, здесь же объяснены его наиболее важные части.

Следующий фрагмент кода используется для считывания отпечатка пальца и выполнение определенных действий в зависимости от результата проверки отпечатка пальца (есть ли он в системе или нет). Если отпечаток пальца корректен, то ворота открываются, иначе ничего не происходит.

Функция void checkKeys() используется для проверки того, нажата ли кнопка Enroll или DEL. Если нажата кнопка ENROL (регистрация), то вызывается функция Enroll(), а если нажата кнопка DEL – то вызывается функция delet().

Функция delet() служит для ввода идентификатора (ID) пальца, который нужно удалить из системы, и для вызова функции uint8_t deleteFingerprint(uint8_t id), которая удаляет запись с выбранным идентификатором из системы.

Функция uint8_t deleteFingerprint(uint8_t id) удаляет запись с выбранным идентификатором из системы.

Функция uint8_t getFingerprintEnroll() используется для считывания отпечатка пальца, конвертирования его в шаблон и сохранения его с выбранным идентификатором (ID) в память модуля датчика отпечатков пальцев.

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

В этом разделе представлен полный код программы для рассмотренной нами биометрической системы безопасности на основе платы Arduino.

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

(Проголосуй первым!)
Загрузка...
13 просмотров

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

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