Проект датчика отпечатков пальцев на Arduino Nano – Пошаговое руководство
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino Nano R3 | 1 |
| Платы для макетирования (generic) | 1 |
| Датчик отпечатков пальцев | 1 |
| 1.44″ LCD ILI9163C | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Друзья, добро пожаловать в очередное руководство! Сегодня мы построим интересный проект на Arduino с использованием модуля датчика отпечатков пальцев. Без лишних задержек начнем!
Я всегда хотел попробовать модуль датчика отпечатков пальцев, чтобы узнать больше о его технологии и использовать его в своих проектах для добавления биометрической безопасности.
Для демонстрации простого использования датчика я создал этот проект. Датчик подключен к Arduino Nano, а также используется небольшой, но очень быстрый 1.44-дюймовый цветной TFT-дисплей. Проект запрашивает действительный отпечаток пальца для разблокировки. Когда я кладу палец на датчик, он распознает мой палец, меняет иконку отпечатка на зеленую и приветствует меня. Если моя девушка кладет палец, датчик тоже её распознает и выводит приветствие с её именем. Если приложить другой палец, экран не разблокируется. Всё работает отлично, и вы можете собрать этот проект менее чем за 10 минут! Давайте посмотрим, как это сделать.
Шаг 1: Приобретение всех деталей
Необходимые детали для сборки проекта:
- Arduino Nano ▶ https://educ8s.tv/part/ArduinoNano
- Модуль датчика отпечатков пальцев ▶ https://educ8s.tv/part/FingerprintSensor
- 1.44″ цветной TFT-дисплей ▶ https://bit.ly/144TFTLCD
- Маленькая плата для макетирования ▶ https://educ8s.tv/part/SmallBreadboard
- Провода ▶ https://bit.ly/Wires3InOne
- Пауэрбанк ▶ https://educ8s.tv/part/Powerbank
Стоимость проекта около $30. Учитывая используемые технологии, это очень низкая цена. 10 лет назад подобные проекты стоили бы несколько сотен долларов!
Шаг 2: 1.44″ LCD-дисплей
Этот дисплей очень быстрый. Он использует драйвер ILI9163C. Разрешение 128x128 пикселей, может отображать до 260 000 цветов. Очень просто использовать с Arduino, стоимость около $4.
Дисплей использует протокол SPI для связи с Arduino. Нам нужно подключить всего 8 проводов. Начнем.
Подключение к Arduino
- Vcc ▶ 5V пин Arduino
- GND ▶ GND пин Arduino
- CS ▶ Цифровой пин 10
- RST ▶ Цифровой пин 9
- A0 ▶ Цифровой пин 8
- SDA ▶ Цифровой пин 11
- SCK ▶ Цифровой пин 13
- LED ▶ 3.3V пин Arduino
Как видите, дисплей очень прост в использовании с Arduino. Он дешевый, быстрый, компактный и потребляет всего около 30 мА. Я думаю, это отличный дисплей для проектов, где не нужен большой экран, но желательны цвета.
Купить можно здесь ▶ https://bit.ly/144TFTLCD
Шаг 3: Модуль датчика отпечатков пальцев
Модуль датчика отпечатков пальцев компактный, качественно выполненный и использует внутри продвинутые DSP-чипы (цифровую обработку сигналов).
Датчик работает так: это оптический датчик, который анализирует фотографию пальца. Затем он рендерит изображение, выполняет вычисления, находит особенности пальца и ищет в своей памяти отпечаток с такими же характеристиками. Всё это происходит менее чем за секунду!
Модуль может хранить до 1000 отпечатков в памяти, а коэффициент ложных срабатываний менее 0.001%, что делает его довольно безопасным! Отлично! Всё это в очень простом для использования модуле и по низкой цене! По-настоящему впечатляющая технология!
Купить можно здесь ▶ https://educ8s.tv/part/FingerprintSensor
Шаг 4: Подключение деталей
Теперь соберем все детали вместе.
Сначала подключаем модуль датчика отпечатков пальцев. Вставляем кабель в заднюю часть модуля. Проверьте прикрепленное фото.
Подключение датчика отпечатков пальцев
- Черный провод ▶ GND Arduino
- Красный провод ▶ 5V Arduino
- Зеленый провод ▶ Цифровой пин 2
- Белый провод ▶ Цифровой пин 3
Теперь подключим дисплей к Arduino.
Подключение дисплея
- Vcc ▶ 5V пин Arduino
- GND ▶ GND пин Arduino
- CS ▶ Цифровой пин 10
- RST ▶ Цифровой пин 9
- A0 ▶ Цифровой пин 8
- SDA ▶ Цифровой пин 11
- SCK ▶ Цифровой пин 13
- LED ▶ 3.3V пин Arduino
Всё готово! Можно включать проект. Как видите, работает отлично! Просто, не правда ли?
Шаг 5: Код проекта
Теперь посмотрим на программную часть проекта и как записать наши отпечатки во встроенную память модуля для их распознавания.
Нам нужно скачать несколько библиотек. Во-первых, библиотеку Adafruit Fingerprint, библиотеку Adafruit GFX и библиотеку Sumotoy для дисплея.
- https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library
- https://github.com/adafruit/Adafruit-GFX-Library
- https://github.com/sumotoy/TFT_ILI9163C
Сначала загрузим пример регистрации (enroll) на Arduino. Перейдите в Файл → Примеры → Adafruit Fingerprint Sensor Library → Enroll. С этой программой можно сохранять отпечатки во FLASH-памяти модуля. Загружаем скетч и открываем Монитор последовательного порта. Программа попросит ввести ID для регистрации. Затем кладем палец на датчик дважды, как указано в инструкциях, и отпечаток сохраняется! Так можно сохранить до 1000 отпечатков!
Теперь загрузим код, который я разработал. Благодаря библиотекам Adafruit код проекта очень прост. Посмотрим небольшой фрагмент:
void loop() {
fingerprintID = getFingerprintID(); // Сканируем отпечаток
delay(50);
if(fingerprintID == 1) { // Найден действительный отпечаток с ID 1
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayIoanna();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
}
if(fingerprintID == 2) { // Найден действительный отпечаток с ID 2
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayNick();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
}
}
Мы запускаем датчик и дисплей, проверяем наличие пальца на датчике каждые 50 мс. Если палец есть, просим модуль найти его в памяти. Если находит, возвращает ID отпечатка. Затем выводит приветствие и снова блокирует экран через несколько секунд.
Как всегда, код проекта можно найти во вложениях. Поскольку я время от времени обновляю код, для последней версии посетите сайт проекта: https://educ8s.tv/arduino-fingerprint-sensor-module...
Шаг 6: Заключительные мысли
Я действительно впечатлен производительностью и простотой использования этого модуля датчика отпечатков пальцев. С очень низкой стоимостью мы можем добавить биометрическую безопасность к нашим проектам. Это потрясающе. Проекты вроде этого были бы невозможны для энтузиастов даже несколько лет назад. В этом красота и сила открытого аппаратного и программного обеспечения. После этого первого теста я планирую использовать датчик отпечатков пальцев вместе с электрическим замком, чтобы проверить, можно ли использовать этот датчик в реальных условиях, так что следите за обновлениями. Пожалуйста, делитесь своими мыслями об этом датчике в комментариях ниже. Спасибо!
Код
Фрагмент кода #1
void loop() {
fingerprintID = getFingerprintID();
delay(50);
if(fingerprintID == 1) {
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayIoanna();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
}
if(fingerprintID == 2) {
display.drawBitmap(30,35,icon,60,60,GREEN);
delay(2000);
displayUnlockedScreen();
displayNick();
delay(5000);
display.fillScreen(BLACK);
displayLockScreen();
}
}
Полезные ссылки
- Библиотека дисплея: https://github.com/sumotoy/TFT_ILI9163C
- Библиотека датчика отпечатков: https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library
- Библиотека Adafruit GFX: https://github.com/adafruit/Adafruit-GFX-Library
Производственный процесс
- Датчик отпечатка пальца под экраном: эволюция, технологии и преимущества
- Учебник по датчику света на Raspberry Pi: подключение фоторезистора и чтение уровня освещенности на Python
- Создание надежного RFID-замка на Arduino — пошаговое руководство
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
- Умный водяной пистолет с датчиком движения на Arduino Nano
- Компактный радар на Arduino Nano с HC-SR04 и дисплеем 1.8"
- Урок Arduino для начинающих 01: Начало работы с первым проектом