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

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

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

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

Популярная микроконтроллерная платформа Arduino может взаимодействовать с такими сканерами отпечатков, и в данном материале мы покажем пример взаимодействия Arduino с модулем сканера FPM10A.

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

  • Напряжение питания: от 3.6 до 6.0 В
  • Потребление тока: менее 120 мА
  • Цвет подсветки: зеленый
  • Интерфейс: UART
  • Скорость передачи данных: 9600
  • Уровень безопасности: 5 (от низкого до высокого: 1,2,3,4,5)
  • Вероятность ложного принятия отпечатка: менее 0,001%
  • Вероятность ложного отклонения отпечатка: менее 1,0%
  • Возможность хранения 127 различных отпечатков пальцев

Модуль имеет 6 проводов (как показано на изображении ниже), два из которых не нужно подключать. TX и RX это линии передачи и приема данных UART соответственно, которые можно подключить ко 2-му и 3-му цифровому выводу платы Arduino соответственно.

Для работы с модулем сканера отпечатков пальцев необходимо добавить в Arduino IDE специальную библиотеку. В нашем случае возьмем библиотеку Adafruit Fingerprint Sensor (https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/archive/master.zip). Разархивируйте zip-архив, после чего вы должны получить папку Adafruit-Fingerprint-Sensor-Library-master. Переименуйте ее в Adafruit_Fingerprint_Sensor_Library. Потом поместите ее в папку установленных библиотек Arduino IDE. Затем откройте Arduino IDE.

После того, как модуль датчика отпечатков пальцев подключен к Arduino, выполните следующие шаги, чтобы зарегистрировать новый отпечаток пальца. В среде разработки Arduino перейдите в меню и выберете File – Examples – Adafruit Fingerprint Sensor Library – Enroll. Загрузите код в Arduino и откройте последовательный монитор со скоростью передачи 9600 бит. Вы должны ввести идентификатор (ID) для отпечатка пальца. Поскольку это ваш первый отпечаток пальца, введите 1 в верхнем левом углу, а затем нажмите кнопку «Send».

Поместите палец на сканер и следуйте инструкциям на последовательном мониторе.

Вас попросят поместить тот же палец дважды на сканер. Если вы получили сообщение «Prints matching!», Как показано ниже, ваш отпечаток был успешно сохранен. Если нет, повторите процесс, пока не добьетесь успеха.

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

В среде разработки Arduino IDE перейдите в меню File – Examples – Adafruit Fingerprint Sensor Library – Fingerprint и загрузите этот скетч в плату Arduino. Откройте последовательный монитор со скоростью передачи 9600. Вы должны увидеть следующее сообщение:

Поместите на сканер палец, который нужно идентифицировать. На серийном мониторе вы можете увидеть идентификатор, который соответствует отпечатку пальца. Он также показывает уверенность (confidence) – чем она выше, тем вероятнее ваш отпечаток пальца совпадает с сохраненным отпечатком.

Отображение информации на мониторе последовательной передачи данных – это, конечно, хорошо, но минимизирует мобильность нашего устройства. Поэтому усовершенствуем проект, добавив к нему компактный OLED-дисплей, на котором будет отображаться информация сос сканера отпечатков пальцев. Для этого нам также придется скачать библиотеки Adafruit GFX library (https://github.com/adafruit/Adafruit-GFX-Library/archive/master.zip) и Adafruit_SSD1306 library (https://github.com/adafruit/Adafruit_SSD1306/archive/master.zip) и установить их тем же образом, что и библиотеку Adafruit Fingerprint Sensor. Схема подключения Arduino, сканера отпечатков пальцев и OLED-дисплея показана ниже.

Теперь скопируйте в Arduino IDE приведенный ниже код (скетч) и загрузите его в микроконтроллер Arduno. После этого у вас будет полноценное автономное устройство проверки отпечатков пальцев.

Урок 28. Контроль доступа по отпечатку пальца

В этом уроке мы создадим устройство открывающее дверь по отпечатку пальца.

Нам понадобится:

  • Arduino х 1шт.
  • Сканер отпечатков пальцев x 1шт.
  • LCD дисплей LCD1602 IIC/I2C(синий) или LCD1602 IIC/I2C(зелёный) х 1шт.
  • Trema зуммер х 1шт.
  • Trema кнопка x 2шт.
  • Trema светодиод x 2шт.
  • Trema силовой ключ x1шт.
  • Электромагнитный замок x1шт.
  • Trema Shield х 1шт.
  • Источник питания 12В постоянного тока x1шт.
  • Коннектор power jack Мама с клемником x1шт.

Для реализации проекта нам необходимо установить библиотеки:

  • Библиотека LiquidCrystal_I2C_V112 (для работы с дисплеями LCD1602 по шине I2C).
  • Библиотека Adafruit_Fingerprint (для работы с модулем отпечатков пальцев).
  • Библиотеки Wire и SoftwareSerial входят в стандартный набор IDE Arduino.

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki – Установка библиотек в Arduino IDE .

Видео:

Принцип действия:

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

Схема подключения:

LCD дисплей подключается к аппаратной шине I2C, все остальные модули, подключаются к любым выводам arduino, каждый из которых можно изменить на любой другой, в начале скетча. Электромеханический замок подключается к напряжению питания 12В, постоянного тока, в разрыв вывода GND подключается клеммник силовой части Trema ключа.

Arduino: Модули:
2 (RX – вход программного UART) T – выход сенсора отпечатков пальцев
3 (TX – выход программного UART) R – вход сенсора отпечатков пальцев
4 Trema светодиод (зелёный)
5 Trema светодиод (красный)
6 Trema зуммер
7 Trema силовой ключ
8 Trema кнопка («A»)
9 Trema кнопка («B»)
I2C LCD дисплей

Алгоритм работы:

При старте (в коде setup), скетч выполняет 3 задачи:

  • Установка режимов работы выводов.
  • Инициализация и вывод информации на дисплей.
  • Инициализация (и проверка) сенсора отпечатков пальцев.

Циклически (в коде loop), скетч выполняет 4 задачи:

  • Опрос состояния кнопок – выполняется функцией Func_buttons_control().
  • Общение с сенсором отпечатков пальцев – выполняется функцией Func_sensor_communication().
  • Вывод данных на LCD дисплей – выполняется функцией Func_display_show().
  • Управление модулями: зуммером, светодиодами, силовым ключом – выполняется в коде loop.

Тип задач выполняемых функциями Func_buttons_control(), Func_sensor_communication() и Func_display_show(), определяется значением переменной VAR_mode_MENU , которая хранит номер режима меню:

  • 0-9 вне меню
  • 10-19 Menu > Set state
  • 20-29 Menu > Show ID
  • 30-39 Menu > New ID
  • 40-49 Menu > Del ID
  • 99 Menu > Exit

Управление модулями осуществляется при установленном флаге FLG_state_WORK – указывающим, что устройство находится в состоянии ENABLE.

Открытие замка (включение зуммера, переключение светодиодов) осуществляется по установленному флагу FLG_mode_ACCESS, который, в конце кода loop, сбрасывается через 5 секунд после установки.

Сканер отпечатков пальцев с помощью Arduino UNO

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

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

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

Детали

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

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

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

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

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

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

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

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

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

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

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, а перенос пальца на сканер должен привести к доступу системы.

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

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

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

Для начала мы модифицируем пусковую систему транспортного средства. Основным соединением является проводник IG от замка зажигания, по которому подается напряжение питания на регулятор напряжения, далее на микроконтроллер Arduino для его включения и выключения и сканирования пальца на датчике в течение 10 секунд. При совпадении отпечатка пальца система активирует релейный блок, который управляет реле стартера. Теперь вы можете завести двигатель. Через 10 секунд датчик, реагирующий на отпечатки пальцев, отключается. Вы можете включить его повторно, повторив цикл запуска зажигания. Если в течение 10 секунд датчик не определил отпечаток пальца или отпечаток не совпадает с эталонным, тогда система запуска отключается, и пуск двигателя не происходит.

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

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

В данном проекте противоугонное устройство устанавливается на 2-х дверный купе Mitsubishi Lancer 2000.

Шаг 1: Используемые компоненты

Шаг 2: Схема электрооборудования

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

Шаг 3: Подготовка программных компонентов

1. Загрузите среду разработки Arduino IDE
2. Установите Arduino IDE.
3. Загрузите библиотеку Adafruit Fingerprint
4. Добавьте Adafruit fingerprint к библиотеке Arduino.

Запустите Arduino IDE. Нажмите Sketch>Import Library> (Скетч-Импортировать библиотеку) и кликните Add library (Добавить библиотеку). Разместите в папку библиотеку Adafruit fingerprint.

5. Запустите Arduino IDE. Нажмите File>Adafruit-Fingerprint-Sensor-Library-Master> и кликните blank (программа blank.ino).

Загрузите blank.ino в Arduino Uno. Микроконтроллер Arduino не будет выполнять какие-либо операции, поскольку программа служит в качестве интерфейса между микроконтроллером и датчиком, реагирующим на отпечатки пальцев.

6. Установите SFGDemo v.20: http://www.adafruit.com/product/751
7. Подключите датчик, реагирующий на отпечатки пальцев, как показано на схеме
8. Загрузите отпечатки пальцев, используя SFGDemoV2.0

Шаг 4: Загрузка основной программы

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

Программа работает по принципу учебного материала Adafruit Fingerprint. Однако я немного изменил программный код и добавил таймер для отключения датчика через 10 секунд, чтобы избежать отвлечения внимания от мигающего светодиода датчика.

Шаг 5: Сборка, часть 1

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

Шаг 6: Сборка, часть 2

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

Шаг 7: Сборка, часть 3

Плату с Arduino Uno лучше всего установить за датчиком определения отпечатков пальцев. Я немного подточил посадочное место, чтобы плата Arduino Uno заняла правильное положение.

Шаг 8: Сборка, часть 4

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

Шаг 9: Сборка, часть 5

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

Шаг 10: Установка

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

Источники:

http://lesson.iarduino.ru/page/urok-28-kontrol-dostupa-po-otpechatku-palca

http://arduinoplus.ru/skaner-otpechatkov-palcev-arduino/

http://cxem.net/arduino/arduino151.php

http://digitrode.ru/computing-devices/mcu_cpu/722-arduino-i-cifrovoy-potenciometr.html

Ссылка на основную публикацию