Сканер отпечатков пальцев своими руками

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

Схема сканера отпечатков

Стоимость таких модулей составляет около 1000 рублей (может и дешевле найдете).

Чтобы обучить считыватель отпечатков пальцев, прежде всего запишите их в память. Для этой цели можно использовать специальное программное обеспечение под названием SFGDemo.

Второе решение, более простое и не требующее установки дополнительного программного обеспечения, – это использование только IDE Arduino. Для этого загрузите и установите библиотеку датчика отпечатков пальцев Adafruit по ссылке в конце статьи. Затем из примеров программ выберите enroll.ino и загрузите его в Arduino. Общение с пользователем происходит через терминал. После того, как сохранили изображения отпечатков пальцев, вы можете загрузить эскиз fingerprint_door_lock.ino в Arduino pro mini через USB-адаптер. Следующим шагом является сборка платы, пайка нескольких элементов и подключение ридера к разъему CON2.

Сканер отпечатков пальцев питается от напряжения 12 В из-за желания запитать от стандартной 12 В гелевой свинцовой батареи (на случай сбоя сети). Стабилизатор снижает напряжение до 5 В – этого требуют Arduino и реле. Считыватель FPM10A может питаться напряжением от 3,6 до 6 В. Работа устройства заключается в приближении ранее зарегистрированного отпечатка пальца к считывателю, после чего контакты реле будут переключать защелку, электрозамок и так далее. Будут эти исполнительные устройства открываться на заданное время – в приведенной модели 5 секунд.

Процент ложных отказов очень низок. Примерно 1%, то есть один раз на каждые 100 попыток датчик не распознает палец должным образом. Скачать архив можно тут.

Содержание статьи

Типы сканеров отпечатка пальца

Существует несколько разных способов получить изображение отпечатка пальца. Давай разберем их по порядку.

Оптический сканер

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

Читайте также:  Почистить dns кэш через командную строку

Свет отражается от папиллярного узора, и в зависимости от того, попал луч света на гребень или на впадину, интенсивность его варьируется.

Внешнее стекло такого сканера тонкое, чтобы вызвать эффект полного нарушенного внутреннего отражения. Из-за этого эффекта свет в местах контакта кожи со стеклом — на гребнях — полностью отражается в фотосенсор.

Схема работы оптического сканера

Ты можешь наблюдать этот феномен с помощью стакана с водой: приложи палец с одной стороны стекла и посмотри с другой — ты четко увидишь свой отпечаток.

Вот и весь феномен

Датчики такого типа весьма громоздкие: нужна большая камера и маленький излучатель света, — а поэтому они почти не применяются. Есть и другая проблема: свет может одинаково отражаться от кожи и другого материала, а потому подделать отпечаток пальца становится слишком легко.

Полупроводниковые сканеры

В таких сканерах используются полупроводники, которые меняют свои свойства при касании. Они реагируют на различные параметры: тепло, проводимость, давление.

Термические сенсоры реагируют на изменение проводимости полупроводника в зависимости от температуры. Воздух и кожа с разной скоростью передают тепло, датчики фиксируют это, и мы получаем изображение отпечатка.

Сенсоры давления реагируют на давление каждого маленького участка кожи на поверхность проводника, регистрируют разницу в давлении впадин и гребней. Но такие сканеры очень хрупкие и поэтому практически бесполезны: любое излишнее давление на поверхность способно полностью вывести из строя часть сенсоров, делая весь сканер неработоспособным.

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

Последний метод — самый универсальный: такой сенсор компактен и вмещает в себя до сорока тысяч датчиков на квадратный сантиметр. Именно этот тип сенсоров установлен в большинстве устройств Apple, Xiaomi, Samsung и других лидеров мобильного рынка.

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

Читайте также:  Самый надежный способ хранения пароля от аккаунта

Ультразвуковой сканер

Ультразвуковые сенсоры используют точные часы и схожий с эхолотом принцип: излучатель испускает высокочастотный импульс, который отражается от поверхности пальца и регистрируется датчиком. Сигнал, который попал в область впадины, проходит больший путь, и, соответственно, ему требуется больше времени, чтобы вернуться, чем сигналу, который отразился от гребня.

Такое устройство сенсора позволяет получить четкое изображение папиллярного узора, которое учитывает не только сам факт касания, но и глубину каждого отдельного участка кожи. Это позволяет изображению быть еще точнее, хотя на сканирование уходит больше времени, а себестоимость устройства выше.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Хотя вы можете получить доступ к защищенным системам через пароли и ключи, обе опции могут быть неудобными и легко забываемы. В этом уроке узнаем, как использовать модуль FPM10A с библиотекой Adafruit Arduino для создания биометрической системы отпечатков пальцев.

Что нам понадобится?

По традиции начинаем с комплектующих для нашего урока.

Детали

  • Модуль отпечатков пальцев FPM10A
  • Arduino Uno

FPM10A модуль для Ардуино

Библиотеки и ПО

  • Arduino >Схема соединения

Схема соединения модуля FPM10A и Ардуино Уно нужно соединить вместе как на рисунке выше. Подробнее мы остановимся на следующем шаге.

Подключаем комплектующие

Начать работать с этим модулем невероятно просто из-за того, что он использует последовательный порт для связи. Однако, поскольку у Arduino Uno только один аппаратный последовательный порт, вам необходимо использовать последовательный порт через программное обеспечение, используя контакты 2 и 3, чтобы общаться с модулем отпечатков пальцев (серийный порт аппаратного обеспечения зарезервирован для связи с ПК).

Ленточный кабель, который поставляется вместе с модулем FPM10A, является не очень удобным для хобби, так провода сидят в корпусе с шагом 1,27 мм, поэтому мы отрезали с одной стороны, а затем провода подключили к перемычкам.

Установка и использование библиотеки

Первым шагом в использовании FPM10A является установка библиотеки Fingerprint от Adafruit, которая может быть выполнена с помощью Менеджера библиотек. Откройте Arduino IDE и перейдите в:

Читайте также:  Практическая работа паскаль 8 класс

Sketch → Include Library → Manage Libraries (Управление библиотеками)

Когда менеджер библиотек загружает поиск по "Fingerprint", то первым результатом должна быть библиотека "отпечатков пальцев" от Adafruit. Установите её.

После установки библиотеки пришло время создать новый проект Ардуино. Нажмите Файл → Создать, а затем сохраните проект в своей собственной папке. На этом этапе откройте папку проекта и скопируйте в нее файл «fingerprint.h».

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

  • fingerprint_setup () – конфигурирует последовательный порт для 9600 бод и подключается к модулю;
  • readFingerprint () – функция опроса, которая возвращает -1, если что-то пошло не так, или возвращает информацию о том, что найден успешный отпечаток
  • enrollFingerprint (int id) – добавляет отпечаток в систему с присвоенным идентификатором «id».

Чтобы включить этот файл в свой проект, просто используйте команду include, как показано ниже:

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

Чтобы добавить новый отпечаток, вызовите функцию enrollFingerprint (id).

Это приведет к возврату -1, если произойдет сбой. В противном случае значения указывают на успешную регистрацию отпечатков пальцев. Идентификатор передал этой функции ссылки на отсканированный отпечаток пальца, и каждый отпечаток имел уникальный идентификационный номер.

Код Ардуино

Итоговый скетч для нашей платы Ардуино вы можете скопировать ниже:

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

Когда вы включите этот проект, он сначала попросит вас поместить палец на сканер. Если сканер способен считывать ваши отпечатки пальцев, он попросит вас удалить и затем заменить палец на сканер. Это должно привести к тому, что сканер успешно добавит ваш отпечаток пальца в ID 1, а перенос пальца на сканер должен привести к доступу системы.

Этот проект можно легко расширить, включив блокировки и реле соленоида, чтобы разрешить авторизованным пользователям вносить изменения и разблокировать систему. Как только ваш проект будет готов, – установите новый сканер в двери, шкафы, сейфы, окна, электрические системы, компьютеры и многое другое!

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>