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

Главная / Датчики и Arduino / Датчик отпечатков пальцев и Arduino

Датчик отпечатков пальцев и Arduino

Оптические датчики отпечатков пальцев обычно используются в системах безопасности. Эти сенсоры включают в себя DSP чип, который обрабатывает изображение, производит необходимые расчеты для обнаружения соответствия между записанными и текущими данными. Недорогие датчики отпечатка пальцев позволяют записать до 162 разных отпечатков пальцев!

Сенсор поставляется с софтом для Windows, что значительно облегчает его тестирование. С использованием родного софта можно даже отобразить фотографию вашего отпечатка на мониторе! Ну и самое замечательное - есть отдельная библиотека для Arduino, с использованием которой можно настроить датчик меньше чем за 10 минут.

Видео с кратким описанием на английском языке представлено ниже:

Технические характеристики датчика отпечатка пальца

Запись в память и поиск данных

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

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

Запись новых отпечатков через программу для Windows

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

Сначала надо подключить сенсор к компьютеру с помощью USB-to-serial конвертера. Загрузите 'blank sketch' на ваш Arduino (Uno или Mega):

// этот скетч дает вам возможность обойти чип Atmega

// и подключить датчик отпечатка пальца непосредственно к USB/Serial конвертеру

// Красный подключается к +5V

// Черный подключается к Ground

// белый подключается к Digital 0

// Зеленый подключается к Digital 1

void setup() {}

void loop() {}

Скетч "blank" не работает на Arduino с чипом ATmega32u4 (Leonardo и Micro). Для этих моделей используйте скетч Leo_passthru!

Если вы используете Leonardo, Micro, Yun, или другой контроллер на базе ATmega32U4, загрузите скетч Leo_passthru вместо скетча "blank".

//Leo_passthru

// дает возможность Leonardo выполнять роль моста между

// сенсором отпечатков пальцев и Windows.

// Красный подключается к +5V

// Черный подключается к Ground

// Зеленый подключается к Digital 0

// Белый подключается к Digital 1

void setup() {

Serial1.begin(57600);

Serial.begin(57600);

}

void loop()

{

while (Serial.available())

Serial1.write(Serial.read());

while (Serial1.available())

Serial.write(Serial1.read());

}

Датчик отпечатка пальца подключается к Arduino в соответствии с комментариями в скетче после! Загрузки программы на Arduino. Так как проводники на датчике тонкие и короткие, можно припаять их к отдельным рельсам контактов или просто нанести на концы припоя для надежного контакта с пинами микроконтроллера. После подключения питания, красный светодиод начнет мигать, обозначая, что сенсор работает.

Датчик отпечатка пальцев и Arduino

Запустите программу SFGDemo и выберите в меню пункт Open Device в левом углу. Выберите COM порт, к которому подключен ваш Arduino.

SFGDemo

После выбора, нажмите OK. В результате должны отобразиться синяя надпись об успешном открытии устройства и некоторые данные об устройстве. Вы можете изменить скорость передачи данных (baund rate) в нижнем левом углу и уровень безопасности (security level - насколько чувствительный датчик), но не рекомендуется трогать эти настройки, пока вы не убедитесь, что все работает. По умолчанию скорость передачи данных равна 57600 baud, а уровень безопасности равен 3. Если установлены другие значения, установите их на приведенные выше.

SFGDemo 2

Теперь давайте загрузим новый отпечаток пальца! Выберите пункт меню Preview и нажмите кнопку Enroll рядом с ним (Con Enroll значит 'Continuous' (без остановки). Удобная опция, если вы собираетесь записывать много отпечатков пальцев). Когда появится новое меню, укажите ID #, который вы хотите использовать. Вы можете использовать 162 ID номера.

SFGDemo 3

Программа предложит вам приложить палец к сенсору:

SFGDemo 4

Вы можете увидеть превью (если вы нажмете чекбокс preview) вашего отпечатка пальца.

SFGDemo 5

После этого вам надо будет повторить процесс. Используйте тот же палец!

После успешного завершения, вы увидите сообщение:

SFGDemo 6

Если снимок получился в плохом качестве, рекомендуется сделать еще один, чтобы сенсор в последствии отработал корректно.

Поиск изображения с помощью софта

После загрузки изображения желательно проверить, появилось ли оно в вашей базе данных. Нажмите кнопку Search справа.

Когда появится запрос, приложите другой/тот же палец к датчику отпечатка пальца.

Если это тот же палец, должно появится окно с ID #:

SFGDemo 7

Если этого отпечатка нет в базе данных, появится окно с предупреждением:

SFGDemo 8

Подключаем и используем датчик отпечатка пальца с Arduino

После проверки работоспособности, можно переходить к использованию сенсора со скетчем Arduino. Для этого надо перепрошить сенсор. Отключите зеленый и белый контакты и подключите зеленый проводник к контакту digital 2, а белый - к digital 3. Эти пины можно изменить в дальнейшем, но на данном этапе лучше использовать именно их. На рисунке ниже показан пример подключения датчика отпечатков пальцев к Arduino. Осле подачи питания сенсор подмигнет красным светодиодом. После подмигивания, он отключится и активируется только когда вы начнете запрашивать с него данные.

Для тех, кто использует Arduino Leonardo: Leonardo не поддерживает последовательный интерфейс на пинах 2 и 3. Используйте контакты 8 и 9 для подключения и не забудьте внести соответствующие изменения в скетч.

Для тех, кто использует Mega: Mega не поддерживает последовательный интерфейс на пинах 2 и 3. Используйте контакты 10 и 11 и внесите необходимые изменения в скетч.

После подключения, скачайте Adafruit-Fingerprint-Sensor-Library . Для тех, кто устанавливает дополнительные библиотеки впервые, есть полная инструкция по установке библиотек для Arduino.

После установки библиотеки, не забудьте перезагрузить Arduino IDE.

После перезагрузки вы сможете загрузить пример скетча File→Examples→Adafruit_Fingerprint→fingerprint. Загрузите этот скетч на ваш Arduino. Откройте окно серийного монитора, установив скорость передачи данных на 9600 baud и, когда появится запрос, прислоните палец к сенсору отпечатка пальца.

Вы должны увидеть примерно следующее:

SFGDemo 9

Если вам нужен более детальный отчет, замените в пределах цикла loop() функцию getFingerprintIDez() на getFingerprintID(). Эта функция предоставит вам полный отчет о том, что именно сенсор определяет в каждый момент поиска.

Взаимодействие с Arduino

На данном этапе мы уже научились опознавать отпечаток пальца через с использованием Arduino скетча. Этот процесс не настолько удобный и наглядный как использование софта для Windows, но вполне работоспособный. Теперь откройте скетч File→Examples→Adafruit_Fingerprint→enroll и загрузите его на ваш Arduino. Подключение датчика отпечатков пальцев остается таким же как и в предыдущем пункте.

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

Arduino IDE датчик отпечатка пальца

После этого следуйте инструкциям. Когда загрузка пройдет успешно, отобразится надпись Stored!

Arduino IDE датчик отпечатка пальца 2

После записи не забудьте провести поиск изображения, чтобы убедиться в успешности записи отпечатка пальца!

Дополнительные ссылки и материалы

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!