Самоделна биометрична брава с пръстов отпечатък за гаражна врата. Самоделна биометрична брава за гаражна врата Свързване на сензор за пръстови отпечатъци към компютър

Самоделна биометрична брава с пръстов отпечатък за гаражна врата. Самоделна биометрична брава за гаражна врата Свързване на сензор за пръстови отпечатъци към компютър

Тъй като нямам кола, не е необходимо да нося ключовете си навсякъде с мен. Поради това се оказа, че няколко пъти се оказвам без ключове пред къщата и трябва да чакам някой от роднините да се прибере и да ме пусне вътре и в един момент реших, че трябва да направя нещо по въпроса и проектираха домашно направена ключалка за гараж.

В този проект ще ви покажа как да направите ключалка с пръстов отпечатък за вашата входна врата.

Стъпка 1: Материали


Ето списък на необходимите материали и инструменти.

електроника:

  • Скенер за пръстови отпечатъци (и JST конектор)
  • LCD комплект (с ATmega328)
  • ATtiny85
  • NPN транзистор
  • Високоговорител за пищялки
  • Кабел за високоговорител
  • Калъф (в стъпка 9 ще има файлове за 3D печат)
  • Меден филм
  • Регулатор на напрежение 5V
  • 9V батерия
  • Конектор за 9V батерия
  • SPDT превключвател

За улеснение ще прикача готов списък с желания в сайта на Sparkfun.

Инструмент:

  • Поялник и спойка
  • Изолационна лента
  • Проводници и джъмпери
  • Щипки/стрипер
  • Платка за създаване на прототипи
  • Различни резистори
  • Винтове
  • Пробивна машина
  • Няколко светодиода за тестване
  • FTDI 5V платка
  • Пистолет за горещо лепило
  • Достъп до 3D принтер
  • По избор: IC гнездо (8-пинов за ATtiny и 28-пинов за ATmega)
  • По избор: друга платка Arduino / 10uF кондензатор (подробности в стъпка 5)

Стъпка 2: Диаграма на устройството






LCD комплектът, закупен от Sparkfun, се доставя с ATmega328, който управлява дисплея. ATmega328 е доста мощен и може да се използва не само за управление на дисплея, но и за други задачи. С оглед на това можем да го използваме вместо Arduino, за да комуникираме със скенера за пръстови отпечатъци и да изпращаме команди до ATtiny85, да управляваме дисплея и звуковия сигнал.

За да попреча на биометричната ключалка на вратата да работи през цялото време, вградих в нея превключвател, който работи в момента, в който кутията се затвори. Ако калъфът е затворен, захранването на устройството не се подава и ние пестим ресурси на батерията.

Важна забележка: Скенерът за пръстови отпечатъци работи на 3,3 V, така че препоръчвам да използвате делител на напрежение, който ще преобразува сигналите от ATmega в 3,2 V. Делителят на напрежението се състои от резистор 560 ома между D10/втори щифт на скенера и 1K резистор между GND/втори щифт на скенера.

LCD pinout:

  • D10 - щифт 1 на скенера (черен проводник)
  • D11 - щифт 2 скенер (чрез делител на напрежение)
  • D12 - ATtiny85
  • D13 - Пищялка

Разпределение на ATtiny85:

  • Pin 5 (0 в програмния код) - вход от ATmega
  • Pin 3 (4 в програмния код) - транзистор / жълт светодиод
  • Pin 7 (2 в програмния код) - индикация LED

Стъпка 3: Сглобяване на компонентите от LCD комплекта

Името на стъпката говори само за себе си: удобно ръководство за бърз старт/сглобяване

Стъпка 4: Сглобяване на веригата на прототипната платка




Разположението на компонентите на платката зависи от вас, просто се опитайте да запоите проводниците така, че да гледат в една и съща посока и да не се счупят.

След като се сглобих, покрих горната и долната част на платката с горещо лепило - това закрепи и изолира елементите на веригата. Горещото лепило няма да повреди чипа.

Както при основната платка, запоете всичко към платката ATtiny и нанесете горещо лепило, за да закрепите и изолирате компонентите. Регулаторът на напрежението може да се нагрее много, така че е добра идея да избягвате нанасянето на горещо лепило върху него или повърхности в близост до него. Също така е най-добре да не покривате платката ATtiny с горещо лепило, тъй като може да искате да я премахнете и препрограмирате.

Стъпка 5: Програмиране на ATmega328

Както бе споменато в стъпка 2, ATmega328 има достатъчно силен процесор и достатъчно щифтове, за да управлява LCD дисплея, докато управлява други допълнителни компоненти. За да постигнете това, трябва да програмирате чипа.

ако имате Ардуино Уноили Duemilanove, можете просто да премахнете чипа от тях и да го замените с този, който е в комплекта. Или можете да намерите FTDI Basic Breakout платка (5V) и запоени приставки отстрани (вижте снимките в стъпка 3)

Ще трябва също да качите кода в режим „Duemilanove w/ ATmega328“.

Код по-долу - работна програмаза проверка на функционалността на устройството.

#include "LiquidCrystal.h" LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); // подсветка pinMode(13, OUTPUT); // звуков сигнал lcd.begin(16, 2); // 16 знака широк, 2 висок digitalWrite(9, HIGH) ; / /включете подсветката lcd.print("Hello world!"); //центрирайте текста с помощта на интервали delay(2000); ) void loop() ( //сигналът се включва и изключва, състоянието му се показва на дисплея lcd.clear(); lcd.print(" Зумерът е включен "); тон(13, 262, 1000); delay(1000); lcd.clear(); lcd.print(" Зумерът е изключен "); delay( 1000); ) Файлове

Стъпка 6: Настройване на скенера за пръстови отпечатъци

Използвах тази библиотека, за да комуникирам със скенера. Директна връзка за изтегляне.

За да проверите дали вашият код работи, изтеглете този мигащ тестер.

Скенерът за пръстови отпечатъци разполага със собствена вградена памет за съхранение на данни. Така че, след като сте сигурни, че скенерът работи, изтеглете тази програма, за да добавите вашия пръстов отпечатък към базата данни под id #0. Отворете вашата серийна конзола и просто следвайте инструкциите.

Програма за мигане на светодиоди за тестване на скенера

/* Този прост код ще включва и изключва светодиода. Използва се, за да се разбере дали комуникацията работи. */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Настройка на хардуера - скенер за пръсти, свързан към: //цифров щифт 10(arduino rx, fps tx) //цифров щифт 11(arduino tx - 560ohm fps резистор tx - 1000ohm резистор - GND) //това намалява 5v tx до около 3.2v и няма да изгорим нашия скенер FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // можете да видите съобщения на екрана за серийно отстраняване на грешки fps.Open(); ) void loop())( // LED мигащ тест за fps скенер. SetLED(true); // включва светодиода вътре в закъснението на скенера(1000); fps.SetLED(false); // изключва светодиода вътре в закъснението на скенера(1000); )

Програма за запис на данни в скенера

#include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Настройка на хардуера - скенер за пръсти, свързан към: //цифров щифт 10(arduino rx, fps tx) //цифров щифт 11(arduino tx - 560ohm резистор fps tx - 1000ohm резистор - GND) //това намалява 5v tx до около 3.2v и няма да изгорим нашия скенер FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll())( // Тест за регистрация // търсене на open id int enrollid = 0; fps.EnrollStart(enrollid); // регистрация Serial.print("Натиснете пръст за записване #"); Serial.println(enrollid); while(fps.IsPressFinger() == false) delay( 100); bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Премахване на пръст"); fps.Enroll1(); while(fps.IsPressFinger() = = true) delay(100); Serial.println("Натиснете отново същия пръст"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Премахване на пръст"); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Натиснете отново същия пръст"); while( fps.IsPressFinger () == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Премахване на пръст"); iret = fps.Enroll3(); if (iret = = 0) ( Serial.println("Записването е успешно"); ) else ( Serial.print("Неуспешно записване с код на грешка:"); Serial.println(iret); ) ) else Serial.println("Неуспешно улавяне на трети пръст"); ) else Serial.println("Неуспешно заснемане на втори пръст"); ) else Serial.println("Неуспешно заснемане на първия пръст"); ) void loop())( delay(100000); ) Файлове

Стъпка 7: Програмирайте ATtiny85


ATtiny85 е нещо като евтин Arduino, събран в един чип. ATtiny85 може да бъде програмиран от други Arduinos, включително ATmega328 в нашия LCD комплект. В проекта се използва за изпълнение на много прости команди: проверете сигнала от ATmega и отворете вратата, ако сигналът е правилен.

За да го програмирате, свържете всичко според приложените снимки. След това изтеглете необходимите файлове и следвайте тези инструкции.

След изтегляне на кода, пин 13 на Arduino (вграден светодиод) трябва да светне, което показва, че кодът е изтеглен.

Краен код:

//Получава кратък сигнал от главния модул за затваряне на релето void setup())( pinMode(2,OUTPUT); //LED индикация чрез 10K резистор pinMode(4,OUTPUT); //транзисторен щифт, който отваря гаража pinMode(0,INPUT); //закъснение при въвеждане(500); //дайте време на устройството да стартира digitalWrite(2, HIGH); //LED индикация) void loop())( if(digitalRead(0))( / /прост модел за превключване на забавянето на транзистора (125); if(digitalRead(0)==false)( delay(55); //изчакайте, тъй като таймерът ATtiny не е идеален if(digitalRead(0))( delay(55) ); if(digitalRead(0)= =false)( delay(55); if(digitalRead(0))( delay(55); if(digitalRead(0)==false)( digitalWrite(4, HIGH); / / транзисторът “натиска” бутона delay(1000 ); digitalWrite(4,LOW); digitalWrite(2,LOW); delay(1000); digitalWrite(2, HIGH); ) ) ) ) ) ) ) Файлове

Стъпка 8: Окончателен код

По-долу е дадена програма на Arduino, която написах с помощта на библиотеките за скенер и дисплей. За да стане ясно какво се случва във всяка част от програмата, се постарах да коментирам всичко по възможно най-добрия начин. След като изтеглите този код, всичко трябва да работи и всичко, което остава да направите, е да интегрирате системата във вратата.

Предупреждение: ако библиотеката на скенера не работи, опитайте да използвате Стара версия Arduino IDE.

Код за ATmega238:

#include "LiquidCrystal.h" //библиотека на дисплея #include "FPS_GT511C3.h" //библиотека fps (скенер за пръстови отпечатъци) #include "SoftwareSerial.h" //използван от библиотеката на скенера //Конфигуриране на щифтовете на дисплея и скенера LiquidCrystal lcd( 2, 3, 4, 5, 6, 7, 8); //извеждане на pinout FPS_GT511C3 fps(10, 11); //RX, TX boolean isFinger = false; //вярно, ако fps библиотеката открие пръста върху скенера //изходни щифтове const int buzzerPin = 13; const int backlightPin = 9; const int attinyPin = 12; const String idNames = ("self", "Bro", "Ryan", "Mom", "Dad", "Alltie", "Grandma", "Zeide", "Person", "person", "Thumb"); void setup())( //настройване на изходите pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //за отстраняване на грешки //Serial.begin(9600); fps.UseSerialDebug = false; / /става вярно за fps отстраняване на грешки чрез сериен порт//инициализиране на библиотеки lcd.begin(16,2); digitalWrite(backlightPin, HIGH); //LCD подсветка fps.Open(); fps.SetLED(true); //LED за fps //зареждане на звук за (int i=0; i<30; i++){ tone(buzzerPin, 50+10*i, 30); delay(30); } tone(buzzerPin, 350); //вывод стартового сообщения lcd.print("Put your finger "); //команда вывода на экран lcd.setCursor(0, 1); //устанавливаем курсор на нулевую колонку первой строки lcd.print(" on the scanner "); delay(150); noTone(buzzerPin); //останавливаем стартовый звук } void loop(){ //сканируем и распознаём отпечаток, когда приложен палец waitForFinger(); lcd.clear(); //очищаем экран и устанавливаем курсов в положение 0,0 fps.CaptureFinger(false); //захватываем отпечаток для идентификации int id = fps.Identify1_N(); //идентифицируем отпечаток и сохраняем id if(id <= 10){ lcd.print(" Access granted "); //сообщение об успехе lcd.setCursor(0,1); //выводим на экран имя когда дверь открывается String message = " Hey " + idNames + "!"; lcd.print(message); tone(buzzerPin, 262, 1000); delay(1500); //отправляем сигнал для открытия двери digitalWrite(attinyPin, HIGH); //первый импульс синхронизирует задержку (10ms) delay(5); digitalWrite(attinyPin, LOW); delay(3); digitalWrite(attinyPin, HIGH); //следующие два - открывают дверь delay(15); digitalWrite(attinyPin, LOW); delay(5); digitalWrite(attinyPin, HIGH); delay(10); digitalWrite(attinyPin, LOW); delay(1000); lcd.clear(); lcd.print("Don"t forget to "); lcd.setCursor(0,1); lcd.print(" shut me off! "); delay(2000); waitForFinger(); //нажмите чтобы продолжить запись while(true){ //сохраняет новый отпечаток //выводит сообщение на экран lcd.clear(); lcd.print(centerText("So you want to")); lcd.setCursor(0,1); lcd.print(centerText("scan a new one?")); delay(2000); //Скопировано и слегка модифицировано из примера регистрации данных: int enrollid = 11; //выбираете какой id переписать\создать //отпустите палец, когда хотите записать id/имя, напечатанное на экране waitForFinger(); //ждёт, когда будет нажат fps while(enrollid==11){ for (int i = 1; i1){ lcd.print(i); enrollid = i-1; break; } } } //предупреждение, если в данном слоте уже есть данные if(fps.CheckEnrolled(enrollid)){ lcd.clear(); lcd.print(" Warning! ID #"); lcd.print(enrollid); lcd.setCursor(0,1); lcd.print(" has data. OK? "); delay(2500); waitForFinger(); //ждёт, когда будет нажат fps fps.DeleteID(enrollid); //удаляет данные delay(100); } //Enroll fps.EnrollStart(enrollid); lcd.clear(); lcd.print("Place finger to "); lcd.setCursor(0,1); lcd.print("enroll #"); lcd.print(enrollid); //выводит id, который был добавлен waitForFinger(); //ждёт, когда будет нажат fps //захватывает отпечаток и сохраняет его в память трижды для точности данных bool bret = fps.CaptureFinger(true); //картинка высокого качества для записи int iret = 0; //в случае ошибки if (bret != false){ //первая регистрация lcd.clear(); lcd.print(" Remove finger "); fps.Enroll1(); while(fps.IsPressFinger() == true) delay(100); //ждёт пока уберут палец lcd.clear(); lcd.print(" Press again "); waitForFinger(); //ждёт, когда будет нажат fps bret = fps.CaptureFinger(true); if (bret != false){ //вторая регистрация lcd.clear(); lcd.print(" Remove finger "); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); lcd.clear(); lcd.print("Press yet again "); waitForFinger(); bret = fps.CaptureFinger(true); if (bret != false){ //третья регистрация iret = fps.Enroll3(); if (iret == 0){ //проверяет, были ли какие-нибудь ошибки lcd.clear(); lcd.print(" Success! "); delay(2000); beep(); //выключает Ардуино } else{ //запускает этот код в случае любой ошибки lcd.clear(); lcd.print("Fail. Try again "); delay(1000); } } lcd.clear(); lcd.print(" Failed 3rd "); //ошибка на третьей записи delay(1000); } lcd.clear(); lcd.print(" Failed 2nd "); //ошибка на второй записи delay(1000); } lcd.clear(); lcd.print(" Failed 1st "); //ошибка на первой записи delay(1000); } } else{ lcd.print("Fingerprint is"); //если отпечаток не распознан lcd.setCursor(0,1); lcd.print(" unverified "); delay(2000); lcd.clear(); lcd.print("Please try again"); lcd.setCursor(0,1); lcd.print("Use your pointer"); //pointer - указательный палец (можете использовать любой и заменить это слово) delay(500); } delay(250); } void beep(){ //издаёт звуки, чтобы кто-нибудь закрыл кейс lcd.clear(); lcd.print("Please close the"); lcd.setCursor(0,1); lcd.print(" case! "); for(int i=0;i=80 && !fps.IsPressFinger()){ beep(); } } timer = 0; //обнуляет таймер как только функция завершится } String centerText(String s) { //центрует текст на дисплее, чтобы он лучше смотрелся while(16-s.length()>1)( //ако текстът се нуждае от центриране s = " " + s + " "; // добавя интервали равномерно от двете страни ) return s; ) Файлове


За да създаде такъв проект, авторът трябваше да модифицира стартовата система на своя автомобил. Основната връзка е IG проводникът от ключа за запалване, през който захранващото напрежение се подава към регулатора на напрежението, а след това към самия Arduino, за да го включи, както и да включи сензора за сканиране на пръсти. Ако сканирането на пръстите е успешно, системата активира релейния блок и той управлява релето на стартера. Сега можете да запалите колата. Сензорът работи за 10 секунди и може да се рестартира чрез повторение на стартовия цикъл на запалване. Ако в рамките на определеното време сензорът не открие пръстов отпечатък или той не съвпада с посочения, тогава системата за стартиране ще бъде деактивирана и двигателят няма да стартира.

Тъй като всеки автомобил има собствена система за стартова конфигурация, е необходимо да погледнете електрическата схема, преди да промените системата за стартиране на двигателя.

Тази статия описва как да свържете устройство против кражба към Mitsubishi Lancer 2000 купе с 2 врати.

Материали:
- Arduino Uno.
- Сензор за пръстови отпечатъци.
- Захранване.
- Релеен блок.
- NPN транзистор BC547B
- Резистор 1 kOhm










Схема на свързване:
Схемата е леко модифицирана според използваните компоненти. Моля, не забравяйте, че е валидно само за този модел автомобил.

Стъпка 1 Подготовка на софтуерни компоненти:
В Arduino IDE библиотеката се зарежда и добавя.
Файл от библиотеката blank.ino се зарежда в Arduino, който ще служи като интерфейс между сензора и микроконтролера.
Програмата е инсталирана и сензорът е свързан към Arduino, както е показано на диаграмата. След което отпечатъкът се зарежда през инсталираната програма.


Сега сензорът е свързан, както е показано на следващата диаграма. След което авторът продължава да изтегля основната програма. Светодиод с резистор е свързан към щифт 12.

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

Сглобяване на стъпка 3:
Част 1:

Първо развийте винтовете под таблото. Долната част на панела се отстранява и сензорът може да се постави в свободното пространство.



Част 2:
В избраното място за сензора се изрязва зона за надеждното му монтиране.





част 3:
Платката Arduino е инсталирана зад сензора за пръстови отпечатъци. Мястото за инсталиране на Arduino беше леко заточено, за да може платката да заеме правилната позиция.



част 4:
Регулираното захранване е монтирано зад арматурното табло от страната на водача.

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







Стъпка 4 инсталация:
Необходимите кабели са свързани и устройството е инсталирано под таблото. Авторът следи да няма късо съединение.

За да създадем проста биометрична система за сигурност, която да защити вашия автомобил от неоторизиран достъп, ще ни трябва сензор за пръстови отпечатъци и микроконтролер Arduino. Този проект използва учебен материал на Adafruit. За да се улесни повторението, се използва пълният програмен код от този материал, с малки промени.

Първо, ние модифицираме стартовата система на автомобила. Основната връзка е IG проводникът от ключа за запалване, който захранва регулатора на напрежението, след това към микроконтролера Arduino, за да го включва и изключва и сканира пръста върху сензора за 10 секунди. Ако пръстовият отпечатък съвпада, системата активира релейната кутия, която управлява релето на стартера. Сега можете да стартирате двигателя. След 10 секунди сензорът за пръстови отпечатъци се изключва. Можете да го включите отново, като повторите цикъла на запалване. Ако в рамките на 10 секунди сензорът не открие пръстов отпечатък или пръстовият отпечатък не съвпада с референтния, тогава системата за стартиране се изключва и двигателят не стартира.

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

Моля, имайте предвид, че сензорът за пръстови отпечатъци не стартира двигателя. Той просто активира и деактивира релето на стартера, което забранява или позволява стартирането на двигателя.

В този проект е инсталирано устройство против кражба на Mitsubishi Lancer 2000 купе с 2 врати.

Стъпка 1: Използвани компоненти

Стъпка 4: Зареждане на основната програма

Свържете сензора за пръстови отпечатъци, както е показано на диаграмата, и заредете основната програма. Свържете светодиод и резистор към щифт 12, за да наблюдавате правилната работа.

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

Стъпка 5: Сглобяване Част 1

Отстранете винтовете под таблото. Разхлабете лоста за освобождаване на капака. Отстранете долната част на таблото. Поставете сензора в свободното пространство.

Стъпка 6: Сглобяване, част 2

Измерете необходимото разстояние и изрежете малка площ, за да инсталирате сигурно сензора.

Стъпка 7: Сглобяване, част 3

Най-добре е да инсталирате платката Arduino Uno зад сензора за пръстови отпечатъци. Изострях малко седалката, така че дъската Arduino Uno да е в правилната позиция.

За създаване на връзка със сензора за пръстови отпечатъци са използвани инструкции от Josh Hawley (директно изтегляне на инструкции).

За отстраняване на грешки в работата на скенера за пръстови отпечатъци с дисплея на буквите е необходима синхронизация.

Сензорът за пръстови отпечатъци има собствена памет за съхранение на сканирани изображения. Така че, след като сензорът започне да работи, изтеглете това, като го добавите към базата данни с пръстови отпечатъци на адрес 0. Отворете конзолата за управление на вашия компютър и следвайте изскачащите подкани.

Кодове – Пример за мигане:

/* Пример за библиотека за управление на скенера за пръстови отпечатъци GT-511C3 (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Настройка на хардуера - FPS свързан към: //цифров щифт 10(arduino rx, fps tx) //цифров щифт 11(arduino tx - 560ohm резистор fps tx - 1000ohm резистор - земя) //това намалява 5v tx линията до около 3.2v, така че да не изпържим fps FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // така че можете да видите съобщенията в екрана за серийно отстраняване на грешки fps.Open(); ) void loop())( // FPS Blink LED Тествайте fps .SetLED(true); // включете светодиода вътре в fps delay(1000); fps.SetLED(false); // изключете светодиода вътре в fps delay(1000); )

Кодове – Пример за записване:

/* FPS_Enroll.ino - Пример за библиотека за управление на скенера за пръстови отпечатъци GT-511C3 (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Настройка на хардуера - FPS свързан към: //цифров пин 10 (arduino rx, fps tx) //цифров щифт 11(arduino tx - 560ohm резистор fps tx - 1000ohm резистор - маса) //това намалява 5v tx линията до около 3.2v, така че да не изпържим fps FPS_GT511C3 fps(10, единадесет); void setup())( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll())( // Тест за записване // намиране на отворен enroll id int enrollid = 0; fps.EnrollStart(enrollid); // enroll Serial.print("Натиснете пръст за записване #"); Serial.println(enrollid); while(fps.IsPressFinger() == false) delay( 100); bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Премахване на пръст"); fps.Enroll1(); while(fps.IsPressFinger() = = true ) delay(100); Serial.println("Натиснете отново същия пръст"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Премахване на пръст"); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Натиснете отново същия пръст"); while( fps. IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Премахване на пръст"); iret = fps.Enroll3(); if (iret == 0) ( Serial.println("Записването е успешно"); ) else ( Serial.print("Неуспешно записване с код на грешка:"); Serial.println(iret); ) ) else Serial.println("Неуспешно улавяне на трети пръст"); ) else Serial.println("Неуспешно заснемане на втори пръст"); ) else Serial.println("Неуспешно заснемане на първия пръст"); ) void loop())( delay(100000); )

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

Файл за регистрация на скица:

Етап 7: Програмиране на процесора ATtiny85

Микрочипът ATtiny85 е евтин и напълно съвместим с платката на Arduino, вероятно е най-добрата електрическа част, създавана някога!

Необходим е и програматор на Arduino, който да префлашва чипа ATmega328, който контролира работата на LCD дисплея.

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

За да програмирате процесора, той трябва да бъде свързан с помощта на макетна платка към програматора заедно с кондензатор от 10 uF, както е показано на снимката по-долу.

И след това изтеглете окончателен коди следвайте препоръките инструкции от High-Low Tech.

След това изход 13 на платката Arduino, свързан към светодиода, трябва да бъде превключен в състояние HIGH, за да се следи работата с помощта на светлинна индикация.

Краен код за ATtiny :

//fpsAttiny от Nodcah //Получава кратък сигнал от главния модул за затваряне на реле void setup())( pinMode(2,OUTPUT); //индикатор, воден през 10K резистор pinMode(4,OUTPUT); //тразисторен щифт който отваря гаража pinMode(0,INPUT); //закъснение на входа(500); //дайте време на нещата да стартират digitalWrite(2, HIGH); //индикатор LED ) void loop())( if(digitalRead(0) )) ( //прост модел за задействане на транзистора delay(125); if(digitalRead(0)==false)( delay(55); //времената са изключени, защото таймерът на ATtiny не е перфектен if( digitalRead( 0))( delay(55); if(digitalRead(0)==false)( delay(55); if(digitalRead(0))( delay(55); if(digitalRead(0)==false) ( digitalWrite (4, HIGH); //транзисторът "натиска" бутона delay(1000); digitalWrite(4,LOW); digitalWrite(2,LOW); delay(1000); digitalWrite(2, HIGH); ) ) ) ) ) )

Биометрична брава - краен код, изрязване на капака, подготовка на гаража GPS часовник на Arduino Биометрична брава - LCD дисплей схема и монтаж