mppss.ru – Все про автомобили

Все про автомобили

Биометрический замок – настройка сканера и программирование микроконтроллера. Самодельное противоугонное устройство на Arduino Uno и датчике отпечатков пальцев Установка и использование библиотеки


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

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

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

Материалы:
- Arduino Uno.
- Датчик отпечатков пальцев.
- Источник питания.
- Релейный блок.
- NPN-транзистор BC547B
- Резистор 1 кОм










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

Шаг 1 Подготовка программных компонентов:
В среде разработки Arduino IDE загружается и добавляется библиотека .
Загружается файл из библиотеки blank.ino в Arduino, который будет служить как интерфейс между датчиком и микроконтроллером.
Устанавливается программа , и датчик подключается к Arduino как показано на схеме. После чего загружается отпечаток пальца через установленную программу.


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

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

Шаг 3 сборка:
Часть 1:

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



Часть 2:
В выбранном месте для датчика вырезается зона для его надёжной установки.





часть 3:
Плата Arduino устанавливается позади датчика отпечатков пальцев. Место для установки Arduino было немного подточено что б плата могла занять правильное положение.



часть 4:
Регулируемый источник питания устанавливается сзади приборной панели на стороне водителя.

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







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

Для создания связи с датчиком отпечатков, была использована инструкция от Джоша Хоули (прямая загрузка инструкции ).

Чтобы отладить работу сканера отпечатков пальцев с буквенным табло, надо синхронизации.

Датчик отпечатков пальцев имеет собственную память для хранения отсканированных снимков. Так что после того, как датчик начнет работать, загрузите этот , добавив его в базу данных отпечатков пальцев под адресом 0. Откройте на компьютере консоль управления и следуйте всплывающим подсказкам.

Коды – Blink Example:

/* Library example for controlling the GT-511C3 Finger Print Scanner (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardware setup - FPS connected to: //digital pin 10(arduino rx, fps tx) //digital pin 11(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ground) //this brings the 5v tx line down to about 3.2v so we dont fry our fps FPS_GT511C3 fps(10, 11); void setup(){ Serial.begin(9600); fps.UseSerialDebug = true; // so you can see the messages in the serial debug screen fps.Open(); } void loop(){ // FPS Blink LED Test fps.SetLED(true); // turn on the LED inside the fps delay(1000); fps.SetLED(false);// turn off the LED inside the fps delay(1000); }

Коды – Enroll Example:

/* FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardware setup - FPS connected to: //digital pin 10(arduino rx, fps tx) //digital pin 11(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ground) //this brings the 5v tx line down to about 3.2v so we dont fry our fps FPS_GT511C3 fps(10, 11); void setup(){ Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); } void Enroll(){ // Enroll test // find open enroll id int enrollid = 0; fps.EnrollStart(enrollid); // enroll Serial.print("Press finger to Enroll #"); Serial.println(enrollid); while(fps.IsPressFinger() == false) delay(100); bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) { Serial.println("Remove finger"); fps.Enroll1(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Press same finger again"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) { Serial.println("Remove finger"); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Press same finger yet again"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) { Serial.println("Remove finger"); iret = fps.Enroll3(); if (iret == 0) { Serial.println("Enrolling Successfull"); } else { Serial.print("Enrolling Failed with error code:"); Serial.println(iret); } } else Serial.println("Failed to capture third finger"); } else Serial.println("Failed to capture second finger"); } else Serial.println("Failed to capture first finger"); } void loop(){ delay(100000); }

Файл синхронизации:

Файл регистрации эскизов:

Этап 7: программирование процессора ATtiny85

Микрочип ATtiny85 стоит дешево, и полностью совместим с платой Arduino, наверное, он самая лучшая электродеталь из когда-либо созданных!

Программатор Arduino также нужен, чтобы перепрошить микросхему ATmega328, которая управляет работой ЖК-дисплея.

В собираемом устройстве процессор ATtiny будет выполнять очень простые команды: проверять наличие сигнала от ATmega и открывать дверь гаража, когда сигнал будет подтвержден.

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

А затем загрузить окончательный код и следовать рекомендациям инструкции от High-Low Tech .

После , выход 13 на плате Arduino, соединённый со светодиодом, нужно перевести в состояние HIGH для отслеживания работы по световой индикации.

Окончательный код для ATtiny :

//fpsAttiny by Nodcah //Recieves a brief signal from the main module to close a relay void setup(){ pinMode(2,OUTPUT); //indicator led through 10K resistor pinMode(4,OUTPUT); //trasistor pin that opens the garage pinMode(0,INPUT); //input delay(500); //give things time to start up digitalWrite(2, HIGH); //indicator LED } void loop(){ if(digitalRead(0)){ //simple pattern to trigger the transistor delay(125); if(digitalRead(0)==false){ delay(55); //the timings are off because the ATtiny"s timer isn"t perfect if(digitalRead(0)){ delay(55); if(digitalRead(0)==false){ delay(55); if(digitalRead(0)){ delay(55); if(digitalRead(0)==false){ digitalWrite(4, HIGH); //transistor "presses" the button delay(1000); digitalWrite(4,LOW); digitalWrite(2,LOW); delay(1000); digitalWrite(2, HIGH); } } } } } } }

Биометрический замок – окончательный код, вырезание крышки, подготовка гаража GPS часы на Arduino Биометрический замок – Схема и сборка ЖК дисплея

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Детали

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

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

  • Arduino IDE
  • Adafruit Fingerprint Library

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

Схема соединения модуля 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, как показано ниже:

#include "fingerprint.h"

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

Void setup() { fingerprint_setup(); }

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

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

EnrollFingerprint(0x01);

Код Ардуино

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

#include "fingerprint.h" void setup() { fingerprint_setup(); } void loop() { // Create a new fingerprint entry enrollFingerprint(0x01); delay(1000); // Request entry Serial.println(" \nUSER LOGIN REQUEST...PLACE FINGER ONTO SENSOR \n"); while(readFingerprint() == -1); Serial.println(" \nACCESS GRANTED \n"); Serial.println(" \nFingerprint confidence: " + String(confidence) + " \n"); delay(3000); }

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

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

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


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении