- Используемые материалы
- Модуль считывания RFID EM18
- Узнайте уникальный 12-значный код RFID-метки с помощью Arduino
- Принципиальная электрическая схема
- Модуль датчика отпечатков пальцев
- Программирование RFID-зажигания без ключа
В настоящее время большая часть автомобилей оснащена системой бесключевого доступа и кнопочной системой зажигания, в которой вам нужно только носить ключ в кармане и просто приложить палец к емкостному датчику на дверной ручке, чтобы открыть дверь автомобиля. В этом проекте мы добавляем еще несколько функций безопасности в эту систему с помощью RFID и датчика отпечатков пальцев. Датчик RFID подтвердит лицензию пользователя, а датчик отпечатков пальцев позволит только уполномоченному лицу находиться в автомобиле.
Для этой системы зажигания автомобиля на основе отпечатков пальцев мы используем Arduino с датчиком отпечатков пальцев R305 и считывателем RFID EM18.
Используемые материалы
- Ардуино Нано
- Датчик отпечатков пальцев R305
- Считыватель RFID EM18
- 16 * 2 буквенно-цифровой ЖК-дисплей
- Двигатели постоянного тока
- ИС драйвера двигателя L293D
- Veroboard или Breadboard (в зависимости от того, что доступно)
- Соединительные провода
- Аккумулятор 12 В постоянного тока
Модуль считывания RFID EM18
RFID означает радиочастотную идентификацию. Это относится к технологии, в которой цифровые данные кодируются в тегах RFID, и они могут быть декодированы считывателем RFID с помощью радиоволн. RFID похож на штрих-кодирование, при котором данные из тега декодируются устройством. Технология RFID используется в различных приложениях, таких как система безопасности, система посещаемости сотрудников, дверной замок RFID, машина для голосования на основе RFID, система взимания платы и т. Д.
EM18 Reader - это модуль, который может считывать идентификационную информацию, хранящуюся в RFID-метках. RFID-метки хранят 12-значный уникальный номер, который может быть декодирован модулем считывания EM18, когда метка входит в зону действия считывателя. Этот модуль работает на частоте 125 кГц, имеет встроенную антенну, и он работает от источника питания 5 В постоянного тока.
Он обеспечивает последовательный вывод данных и имеет диапазон 8-12 см. Параметры последовательной связи: 8 бит данных, 1 стоповый бит и скорость 9600 бод.
EM18 Особенности:
- Рабочее напряжение: от + 4,5 В до + 5,5 В постоянного тока
- Потребление тока: 50 мА
- Рабочая частота: 125 кГц
- Рабочая температура: 0-80 градусов C
- Скорость передачи данных: 9600
- Расстояние чтения: 8-12 см
- Антенна: встроенная
Распиновка EM18:
Описание пина:
VCC: входное напряжение 4,5-5 В постоянного тока
GND: заземляющий контакт
Зуммер: зуммер или светодиодный штырь
TX: Вывод последовательного передатчика данных EM18 для RS232 (выход)
SEL: должен быть ВЫСОКИЙ для использования RS232 (НИЗКИЙ при использовании ВЕСА)
Данные 0: данные ВЕСА 0
Данные 1: данные ВЕСА 1
Чтобы узнать больше о RFID и тегах, ознакомьтесь с нашими предыдущими проектами на основе RFID.
Узнайте уникальный 12-значный код RFID-метки с помощью Arduino
Прежде чем программировать Arduino для автомобильной системы зажигания Arduino, сначала нам нужно узнать 12-значный уникальный код RFID-метки. Как мы уже обсуждали ранее, RFID-метки содержат 12-значный уникальный код, который можно декодировать с помощью считывателя RFID. Когда мы проводим RFID-метку рядом с устройством чтения, устройство чтения передает уникальные коды через выходной последовательный порт. Сначала подключите Arduino к считывателю RFID в соответствии со схемой, а затем загрузите приведенный ниже код в Arduino.
int count = 0; char card_no; void setup () {Serial.begin (9600); } void loop () {если (Serial.available ()) {count = 0; в то время как (Serial.available () && count <12) {card_no = Serial.read (); count ++; задержка (5); } Serial.print (card_no); }}
После успешной загрузки кода откройте монитор последовательного порта и установите скорость передачи 9600 бод. Затем проведите картой рядом с устройством чтения. После этого 12-значный код начнет отображаться на последовательном мониторе. Проделайте этот процесс для всех используемых RFID-меток и запишите его для использования в будущем.
Принципиальная электрическая схема
Принципиальная схема этой системы зажигания на основе отпечатков пальцев приведена ниже:
В моем случае я припаял всю схему на перфокарт, как показано ниже:
Модуль датчика отпечатков пальцев
Модуль датчика отпечатка пальца или сканер отпечатка пальца - это модуль, который захватывает изображение отпечатка пальца, затем преобразует его в эквивалентный шаблон и сохраняет их в своей памяти на выбранном идентификаторе (месте) с помощью Arduino. Здесь Arduino управляет всеми процессами, такими как создание изображения отпечатка пальца, преобразование его в шаблоны, сохранение местоположения и т. Д.
Ранее мы использовали тот же датчик R305 для создания машины для голосования, системы посещаемости, системы безопасности и т. Д. Вы можете проверить все проекты на основе отпечатков пальцев здесь.
Регистрация отпечатков пальцев в датчике:
Прежде чем приступить к работе с программой, нам необходимо установить необходимые библиотеки для датчика отпечатков пальцев. Здесь мы использовали « Adafruit_Fingerprint.h » для использования датчика отпечатков пальцев R305 . Поэтому в первую очередь скачайте библиотеку по приведенной ниже ссылке:
- Библиотека датчиков отпечатков пальцев Adafruit
После успешной загрузки в среде Arduino IDE выберите « Файл» > «Инструменты»> «Включить библиотеку»> «Добавить библиотеку.zip», а затем выберите расположение zip-файла для установки библиотеки.
После успешной установки библиотеки выполните действия, описанные ниже, чтобы зарегистрировать новый отпечаток пальца в памяти датчика.
1. В Arduino IDE, перейдите в File > Примеры > Adafruit Fingerprint Sensor Library > Записаться.
2. Загрузите код в Arduino и откройте монитор последовательного порта со скоростью 9600 бод.
Важно: Измените в программе вывод последовательного порта программного обеспечения на SoftwareSerial mySerial (12, 11).
3. Вы должны ввести идентификатор для отпечатка пальца, в котором вы хотите сохранить свой отпечаток пальца. Поскольку это мой первый отпечаток пальца, я набрал 1 в верхнем левом углу, а затем нажал кнопку « Отправить».
4. Затем индикатор на датчике отпечатков пальцев будет мигать, что указывает на то, что вы должны приложить палец к датчику и после этого выполнить шаги, отображаемые на последовательном мониторе, пока он не подтвердит успешную регистрацию.
Программирование RFID-зажигания без ключа
Полный код этой биометрической системы зажигания приведен в конце руководства. Здесь мы объясняем несколько важных частей кода.
Первым делом нужно включить все необходимые библиотеки. В моем случае я добавил « Adafruit_Fingerprint.h » для использования датчика отпечатков пальцев R305 . Затем настройте последовательный порт, к которому будет подключен датчик отпечатков пальцев. В моем случае я объявил 12 как вывод RX и 11 как вывод TX.
#include #include
На следующем шаге объявите все переменные, которые будут использоваться во всем коде. Затем определите контакты подключения ЖК-дисплея с помощью Arduino, за которым следует объявление объекта класса LiquidCrystal .
ввод символов; int count = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; ЖК-дисплей LiquidCrystal (rs, en, d4, d5, d6, d7);
Затем внутри цикла loop () записывается код для получения уникальных 12-значных кодов RFID-тегов, которые сохраняются в массиве. Здесь элементы массива будут сопоставлены с сохраненными уникальными кодами в памяти, чтобы получить детали аутентифицированного человека.
count = 0; в то время как (Serial.available () && count <12) { input = Serial.read (); count ++; задержка (5); }
Затем полученный массив сравнивается с сохраненными кодами тегов. Если код совпадает, то лицензия считается действительной, что позволяет пользователю поставить действительный отпечаток пальца. В противном случае будет показана недействительная лицензия.
если ((strncmp (ввод, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print («Лицензия действительна»); lcd.setCursor (0, 1); lcd.print («Добро пожаловать»); задержка (1000); а = 1; отпечаток пальца (); }
На следующем этапе записывается функция getFingerprintID, которая возвращает действительный идентификатор отпечатка пальца для уже зарегистрированного отпечатка пальца.
int getFingerprintID () { uint8_t p = finger.getImage (); если (p! = FINGERPRINT_OK) вернуть -1; p = finger.image2Tz (); если (p! = FINGERPRINT_OK) вернуть -1; p = finger.fingerFastSearch (); если (p! = FINGERPRINT_OK) вернуть -1; вернуть finger.fingerID; }
Внутри функции fingerprint () , которая вызывается после успешного сопоставления RFID, вызывается функция getFingerprintID для получения действительного идентификатора отпечатка пальца. Затем он сравнивается с использованием цикла if-else для получения информации о данных аутентифицированного человека, и если данные совпадают, автомобиль зажигается, в противном случае он запрашивает неправильный отпечаток пальца.
int fingerprintID = getFingerprintID (); задержка (50); если (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print («Доступ разрешен»); lcd.setCursor (0, 1); lcd.print («Автомобиль запущен»); digitalWrite (9, ВЫСОКИЙ); digitalWrite (10, НИЗКИЙ); в то время как (1); }
Вот как работает эта система зажигания автомобиля RFID, которая добавляет два уровня безопасности вашему автомобилю.
Полный код и демонстрационное видео приведены ниже.