Arduino senzor otiska prsta. Biometrijsko zaključavanje - podešavanje skenera i programiranje mikrokontrolera. Isključivanje sa com porta

Iako sigurnim sistemima možete pristupiti putem lozinki i ključeva, obje opcije mogu biti nezgodne i lako se zaboraviti. U ovom vodiču ćemo naučiti kako koristiti FPM10A modul sa Adafruit Arduino bibliotekom za kreiranje biometrijski sistem otisci prstiju.

Po tradiciji, počinjemo sa komponentama za našu lekciju.

Detalji

  • FPM10A modul otiska prsta
  • Arduino Uno

Biblioteke i softver

  • Arduino IDE
  • Adafruit biblioteka otiska prsta

Dijagram povezivanja

Dijagram povezivanja FPM10A modula i Arduino Uno moraju biti povezani zajedno kao na gornjoj slici. Detaljnije ćemo ući u sljedećem koraku.

Povezivanje komponenti

Početak rada s ovim modulom je nevjerovatno lak jer koristi serijski port za komunikaciju. Međutim, budući da Arduino Uno ima samo jedan hardverski serijski port, morate koristiti serijski port preko softver, koristeći pinove 2 i 3 za komunikaciju sa modulom otiska prsta (hardverski serijski port je rezervisan za komunikaciju sa računarom).

Trakasti kabl koji dolazi sa modulom FPM10A nije baš pogodan za hobi, jer žice sjedaju u kućištu na razmaku od 1,27 mm, pa smo jednu stranu odrezali, a zatim spojili žice na kratkospojnike.

Instaliranje i korištenje biblioteke

Prvi korak u korištenju FPM10A je instaliranje Adafruitove biblioteke otisaka prstiju, što se može učiniti pomoću Library Managera. Otvorite Arduino IDE i idite na:

Skica → Uključi biblioteku → Upravljaj bibliotekama

Kada upravitelj biblioteke učita pretragu za "Fingerprint", prvi rezultat bi trebao biti Adafruit biblioteka otisaka prstiju. Instalirajte ga.

Nakon instaliranja biblioteke, vrijeme je za kreiranje novi projekat Arduino. Kliknite Fajl → Novo a zatim spremite projekat u svoju mapu. U ovom trenutku otvorite fasciklu svog projekta i kopirajte datoteku “fingerprint.h” u nju.

Ovo poseban fajl naslov koji je napisan da biblioteku otisaka prstiju učini lakšom za korištenje. Datoteka zaglavlja ima samo tri funkcije:

  • fingerprint_setup() - konfiguriše serijski port za 9600 bauda i povezuje se sa modulom;
  • readFingerprint() - funkcija prozivanja koja vraća -1 ako je nešto pošlo po zlu ili vraća informaciju da je pronađen uspješan otisak prsta
  • enrollFingerprint (int id) - dodaje otisak prsta sistemu sa dodijeljenim identifikatorom “id”.

Da biste uključili ovu datoteku u svoj projekat, jednostavno koristite naredbu uključi kao što je prikazano u nastavku:

#include "fingerprint.h"

Prva funkcija koju trebate pozvati u setup() je fingerprint_setup(), koja se automatski povezuje s modulom i potvrđuje da sve radi.

Void setup() (fingerprint_setup(); )

Da biste dodali novi otisak prsta, pozovite funkciju enrollFingerprint(id).

Ovo će vratiti -1 ako dođe do greške. U suprotnom, vrijednosti ukazuju na uspješnu registraciju otiska prsta. ID je ovoj funkciji dao veze sa skeniranim otiskom prsta, a svaki otisak prsta imao je jedinstveni identifikacioni broj.

Upiši otisak prsta(0x01);

Arduino kod

Konačnu skicu za našu Arduino ploču možete kopirati ispod:

#include "fingerprint.h" void setup() ( fingerprint_setup(); ) void loop() ( // Kreiraj novi unos otiska prsta enrollFingerprint(0x01); delay(1000); // Zatraži unos Serial.println(" \nUSER ZAHTJEV ZA LOGIN...POSTAVITE PRST NA SENZOR \n"); while(readFingerprint() == -1); Serial.println(" \nPRISTUP ODOBREN \n"); Serial.println(" \nPouzdanost otiska prsta: " + String (pouzdanje) + "\n" kašnjenje (3000);

Princip rada

Kada omogućite ovaj projekat, prvo će vas tražiti da stavite prst na skener. Ako skener može čitati vaše otiske prstiju, tražit će da uklonite i zatim zamijenite prst skenerom. Ovo bi trebalo dovesti do toga da skener uspješno doda vaš otisak prsta na ID 1, a stavljanje prsta na skener bi trebalo rezultirati pristupom sistemu.

Ovaj projekat se lako može proširiti tako da uključi blokade i solenoidne releje kako bi se ovlaštenim korisnicima omogućilo da izvrše promjene i otključaju sistem. Kada je vaš projekat spreman, instalirajte novi skener u vratima, ormarima, sefovima, prozorima, električnim sistemima, kompjuterima i još mnogo toga!

Za stvaranje veze sa senzorom otiska prsta korištene su upute Josha Hawleya (direktno preuzimanje instrukcija).

Za otklanjanje grešaka u radu skenera otiska prsta sa prikazom slova, neophodna je sinhronizacija.

Senzor otiska prsta ima vlastitu memoriju za pohranjivanje skeniranih slika. Dakle, nakon što senzor počne da radi, preuzmite ovo dodavanjem u bazu podataka otisaka prstiju na adresi 0. Otvorite upravljačku konzolu na svom računaru i pratite iskačuće upite.

Kodovi – primjer treptanja:

/* Primjer biblioteke za kontrolu GT-511C3 skenera otiska prsta (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverska podešavanja - FPS spojen na: //digitalni pin 10(arduino rx, fps tx) //digitalni pin 11 (arduino tx - 560ohm otpornik fps tx - 1000ohm otpornik - uzemljenje) //ovo dovodi 5v tx liniju na oko 3.2v tako da ne pržimo naš fps FPS_GT511C3 fps10(10); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // tako da možete vidjeti poruke na ekranu za serijski otklanjanje grešaka fps.Open(); ) void loop())( // FPS treperi LED Testiranje fps .SetLED(true) // uključite LED unutar fps kašnjenja (1000); isključiti LED unutar fps kašnjenja (1000); )

Kodovi – Primjer prijave:

/* FPS_Enroll.ino - primjer biblioteke za kontrolu GT-511C3 skener otiska prsta (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverska podešavanja - FPS povezan na: //digitalni pin 10 (arduino rx, fps tx) //digitalni pin 11 (arduino tx - 560ohm otpornik fps tx - 1000ohm otpornik - uzemljenje) //ovo dovodi 5v tx liniju na oko 3.2v tako da ne pržimo naš fps FPS_GT51( 11); void setup())( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll())( // Test za upis // pronađi otvoren enroll id int enrollid (enrollid) // enroll Serial .CaptureFinger(true int iret = 0); ; Serial.println("Pritisnite ponovo isti prst" while(fps.IsPressFinger() == false) delay("Remove finger"); while(fps); IsPressFinger() == true) Serial.println("Još jednom pritisnite isti prst" while(fps. IsPressFinger() == false) delay(100); if (bret != false) ( Serial.println("Ukloni prst"); iret = fps.Enroll3(); if (iret == 0) ( Serial.println("Upis je uspješan"); ) else ( Serial.print("Upisšifra greške:"); Serial.println(iret); ) ) inače Serial.println("Neuspjelo hvatanje trećeg prsta"); ) inače Serial.println("Nije uspjelo snimanje drugog prsta"); ) inače Serial.println( "Neuspjelo hvatanje prvog prsta" void loop())( kašnjenje (100000); )

Sinhroniziraj fajl:

Datoteka za registraciju skice:

Faza 7: Programiranje ATtiny85 procesora

ATtiny85 mikročip je jeftin i potpuno kompatibilan sa Arduino pločom, vjerovatno je najbolji električni dio ikada stvoren!

Arduino programator je također potreban za ponovno flešovanje ATmega328 čipa, koji kontrolira rad LCD zaslona.

U sastavljenom uređaju, ATtiny procesor će izvršiti vrlo jednostavne komande: provjeriti ima li signala od ATmega i otvoriti vrata garaže kada se signal potvrdi.

Da biste programirali procesor, on mora biti povezan pomoću matična ploča na programator zajedno sa kondenzatorom od 10 uF, kao što je prikazano na slici ispod.

I onda preuzmite konačni kod i pridržavajte se preporuka upute od High-Low Tech.

Nakon toga, izlaz 13 na Arduino ploči, spojen na LED, mora se prebaciti u HIGH stanje kako bi se nadgledao rad pomoću svjetlosne indikacije.

Konačni kod za ATtiny :

//fpsAttiny by Nodcah //Prima kratak signal od glavnog modula za zatvaranje releja void setup())( pinMode(2,OUTPUT); //indikator vodi kroz 10K otpornik pinMode(4,OUTPUT); //trazistorski pin koji otvara garaža pinMode(0,INPUT) //dajte stvarima vremena da se pokrenu digitalWrite(2, HIGH); ) ( //jednostavan obrazac za pokretanje kašnjenja tranzistora (125); if(digitalRead(0)==false)( kašnjenje(55); //tajmingi su isključeni jer ATtiny-jev tajmer nije savršen if(digitalRead ( 0))( kašnjenje(55); if(digitalRead(0)==false)( kašnjenje(55); if(digitalRead(0))( kašnjenje(55); if(digitalRead(0)==false)( digitalWrite (4, HIGH ) ;

Biometrijska brava - završni kod, izrezivanje poklopca, priprema garaže GPS sat na Arduinu Biometrijska brava - dijagram i montaža LCD ekrana

Pošto nemam auto, ne moram svuda da nosim ključeve sa sobom. Zbog toga se ispostavilo da sam se u nekoliko navrata našao bez ključeva ispred kuće i morao sam čekati da neko od mojih rođaka dođe kući i pusti me unutra, te sam u jednom trenutku odlučio da moram nešto učiniti po tom pitanju. i dizajnirao domaću bravu za garažu.

U ovom projektu pokazaću vam kako da napravite bravu sa otiskom prsta za vaša ulazna vrata.

Korak 1: Materijali


Evo liste potrebnih materijala i alata.

elektronika:

  • Skener otiska prsta (i JST konektor)
  • LCD set (sa ATmega328)
  • ATtiny85
  • NPN tranzistor
  • Visokotonac
  • Žica za zvučnik
  • Torbica (u koraku 9 biće fajlovi za 3D štampanje)
  • Bakarni film
  • Regulator napona 5V
  • 9V baterija
  • Konektor za 9V bateriju
  • SPDT prekidač

Radi praktičnosti, priložit ću gotovu listu želja na web stranici Sparkfun.

Alat:

  • Lemilo i lemljenje
  • Izolaciona traka
  • Žice i kratkospojnici
  • Klešta/striperi
  • Prototipska ploča
  • Razni otpornici
  • Vijci
  • Bušilica
  • Nekoliko LED dioda za testiranje
  • FTDI 5V ploča
  • Pištolj za vruće ljepilo
  • Pristup 3D štampaču
  • Opciono: utičnica za integrisana kola(8-pinski za ATtiny i 28-pinski za ATmega)
  • Opciono: još jedna Arduino ploča / 10uF kondenzator (detalji u koraku 5)

Korak 2: Dijagram uređaja






LCD komplet kupljen od Sparkfuna dolazi sa ATmega328 koji kontroliše ekran. ATmega328 je prilično moćan i može se koristiti ne samo za kontrolu ekrana, već i za druge zadatke. S obzirom na to, možemo ga koristiti umjesto Arduina za komunikaciju sa skenerom otiska prsta i slanje komandi na ATtiny85, kontrolu displeja i bipera.

Kako bih spriječio da biometrijska brava na vratima radi cijelo vrijeme, ugradio sam prekidač koji radi u trenutku kada se kućište zatvori. Ako je kućište zatvoreno, uređaj se ne napaja strujom i štedimo resurse baterije.

Važna napomena: Skener otiska prsta radi na 3,3 V, pa preporučujem korištenje razdjelnika napona koji će konvertirati signale iz ATmega u 3,2 V. Razdjelnik napona sastoji se od otpornika od 560 oma između pina skenera D10/sekundi i otpornika od 1K između pina GND/sekunde skenera.

LCD pinout:

  • D10 - pin 1 skenera (crna žica)
  • D11 - pin 2 skenera (preko razdjelnika napona)
  • D12 - ATtiny85
  • D13 - Squeaker

ATtiny85 pinout:

  • Pin 5 (0 u programskom kodu) - ulaz sa ATmega
  • Pin 3 (4 u programskom kodu) - tranzistor / žuta LED
  • Pin 7 (2 u programskom kodu) - LED indikacija

Korak 3: Sastavljanje komponenti iz LCD kompleta

Naziv koraka govori sam za sebe: zgodan-dandy vodič za brzo pokretanje/sastavljanje

Korak 4: Sastavljanje kola na ploči za izradu prototipa




Postavljanje komponenti na ploču ovisi o vama, samo pokušajte zalemiti žice tako da budu okrenute u istom smjeru i da se ne pokidaju.

Kada sam sklopio, gornji i donji dio ploče sam prekrio vrućim ljepilom - ovo je učvrstilo i izoliralo elemente kola. Vruće ljepilo neće oštetiti čip.

Kao i kod glavne ploče, zalemite sve na ATtiny ploču i nanesite vruće ljepilo da učvrstite i izolujete komponente. Regulator napona se može jako zagrijati, pa je dobra ideja izbjegavati nanošenje vrućeg ljepila na njega ili bilo koje površine u blizini. Također je najbolje da ne prekrivate ATtiny ploču vrućim ljepilom, jer biste je možda željeli ukloniti i reprogramirati.

Korak 5: Programiranje ATmega328

Kao što je spomenuto u koraku 2, ATmega328 ima dovoljno jak procesor i dovoljno pinova za kontrolu LCD-a dok on kontrolira druge opcione komponente. Da biste to postigli, morate programirati čip.

Ako imate Arduino Uno ili Duemilanove, možete jednostavno ukloniti čip iz njega i zamijeniti ga onim koji je došao u kompletu. Ili možete pronaći FTDI Basic Breakout ploču (5V) i zalemiti dodatke sa njene strane (pogledajte slike u koraku 3)

Takođe ćete morati da otpremite kod u režimu “Duemilanove w/ ATmega328”.

Kod ispod - program rada da provjerite funkcionalnost uređaja.

#include "LiquidCrystal.h" LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); // pozadinsko osvjetljenje pinMode(13, OUTPUT); // biper lcd.begin(16, 2); // 16 znakova širine, 2 visoka digitalWrite(9, HIGH) ; / /uključi pozadinsko osvjetljenje lcd.print("Halo world!" //centriraj tekst pomoću razmaka delay(2000) (//biper se uključuje i isključuje, njegov status se prikazuje na LCD-u); .clear( ) Zujalica je uključena (1000).

Korak 6: Podešavanje skenera otiska prsta

Koristio sam ovu biblioteku za komunikaciju sa skenerom. Direktan link za preuzimanje.

Da provjerite da li vaš kod radi, preuzmite ovaj tester treptanja.

Skener otiska prsta ima vlastitu ugrađenu memoriju za pohranjivanje podataka. Dakle, nakon što ste sigurni da skener radi, preuzmite ovaj program da dodate svoj otisak prsta u bazu podataka pod id #0. Otvorite svoju serijsku konzolu i jednostavno slijedite upute.

LED trepćući program za testiranje skenera

/* Ovaj jednostavan kod će uključiti i isključiti LED. Koristi se za razumijevanje funkcionira li komunikacija.

*/ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverska postavka - skener prstiju spojen na: //digitalni pin 10(arduino rx, fps tx) //digitalni pin 11(arduino tx - 560ohm fps otpornik tx - 1000ohm otpornik - GND) //ovo snižava 5v tx na oko 3.2v i nećemo izgorjeti naš skener FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // možete vidjeti poruke na ekranu za serijski otklanjanje grešaka fps.Open(); ) void loop())( // LED trepćući test za fps skener (true) pali LED diodu unutar skenera (1000);

Program za snimanje podataka u skener

Korak 7: Programirajte ATtiny85


ATtiny85 je nešto poput jeftinog Arduina sastavljenog u jedan čip. ATtiny85 se može programirati od strane drugih Arduina, uključujući ATmega328 koji se nalazi u našem LCD kompletu. U projektu se koristi za pokretanje vrlo jednostavnih naredbi: provjerite signal sa ATmega i otvorite kapiju ako je signal ispravan.

Da ga programirate, povežite sve prema priloženim fotografijama. Zatim preuzmite potrebne datoteke i slijedite ove upute.

Nakon preuzimanja koda, pin 13 na Arduinu (ugrađeni LED) bi trebao zasvijetliti, što pokazuje da je kod preuzet.

Konačni kod:

//Prima kratak signal od glavnog modula za zatvaranje releja void setup())( pinMode(2,OUTPUT); //LED indikacija kroz 10K otpornik pinMode(4,OUTPUT); //tranzistorski pin koji otvara garažu pinMode(0,INPUT ) //dajte uređaju vrijeme za pokretanje digitalWrite(2, HIGH) void loop())( /); /jednostavan obrazac za prebacivanje kašnjenja tranzistora (125 if(digitalRead(0)==false)( delay(55); //sačekajte, pošto ATtiny tajmer nije idealan if(digitalRead(0))( delay(55); if(digitalRead(0)= =false)( kašnjenje(55); if(digitalRead(0))(kašnjenje(55); if(digitalRead(0)==false)(digitalWrite(4, HIGH); /); / tranzistor “pritisne” dugme odgode (1000 ), digitalWrite(2, HIGH);

Korak 8: Konačni kod

Ispod je Arduino program koji sam napisao koristeći biblioteke skenera i ekrana. Da bi bilo jasno šta se dešava u svakom delu programa, pokušao sam da sve komentarišem na najbolji mogući način. Nakon preuzimanja ovog koda, sve bi trebalo da radi i sve što treba da se uradi je da se sistem integriše u vrata.

Upozorenje: ako biblioteka skenera ne radi, pokušajte je koristiti stara verzija Arduino IDE.

Kod za ATmega238:

#include "LiquidCrystal.h" //displej biblioteku #include "FPS_GT511C3.h" //fps (skener otiska prsta) biblioteku #include "SoftwareSerial.h" //koristi biblioteka skenera //Konfigurišite pinove za ekran i skener LiquidCrystal lcd( 2, 3, 4, 5, 6, 7, 8); //prikaži pinout FPS_GT511C3 fps(10, 11); //RX, TX boolean isFinger = false; //tačno ako fps biblioteka detektuje prst na skeneru //izlazne pinove const int buzzerPin = 13; const int backlightPin = 9; const int attinyPin = 12; const String idNames = ("self","Bro", "Ryan", "Mama", "Tata", "Auntie", "Baka", "Zeide", "Person", "person", "Thumb"); void setup())( //postavimo izlaze pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //za otklanjanje grešaka //Serial.begin(9600); fps.UseSerialDebug = false; / postaje istinito za otklanjanje grešaka u sekundi preko serijskog porta //inicijalizacija biblioteka lcd.begin(16,2); LCD pozadinsko osvetljenje fps.Open();<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()>fps.SetLED(true); //LED za fps //učitavanje zvuka za(int i=0; i

1)( //ako je potrebno centrirati tekst s = " " + s + " "; // ravnomjerno dodaje razmake na obje strane ) return s; ) Fajlovi

Za kreiranje jednostavnog biometrijskog sigurnosnog sistema za zaštitu vašeg automobila od neovlaštenog pristupa, trebat će nam senzor otiska prsta i Arduino mikrokontroler. Ovaj projekat koristi Adafruit materijal za obuku. Da bi se olakšalo ponavljanje, koristi se kompletan programski kod iz ovog materijala, uz manje izmjene.

Pošto svako vozilo ima drugačiji sistem konfiguracije pokretanja, moraćete da se posavetujete sa električarem o električnom sistemu vozila ili pregledate dijagram ožičenja pre modifikacije sistema za pokretanje.

Imajte na umu da senzor otiska prsta ne pokreće motor. Jednostavno aktivira i deaktivira relej startera, koji zabranjuje ili dozvoljava pokretanje motora.

U ovom projektu, uređaj protiv krađe ugrađen je na Mitsubishi Lancer 2000 coupe sa 2 vrata.

Korak 1: Korištene komponente

Korak 4: Učitavanje glavnog programa

Povežite senzor otiska prsta kao što je prikazano na dijagramu i učitajte glavni program. Povežite LED i otpornik na pin 12 da nadgledate ispravan rad.

Program radi na principu edukativnog materijala Adafruit Fingerprint. Međutim, malo sam izmijenio kod i dodao tajmer za isključivanje senzora nakon 10 sekundi kako bih izbjegao odvraćanje pažnje od trepereće LED diode senzora.

Korak 5: Montaža 1. dio

Uklonite zavrtnje ispod komandne ploče. Otpustite polugu za otpuštanje haube. Uklonite donji dio instrument table. Postavite senzor u slobodan prostor.

Korak 6: Sastavljanje, 2. dio

Izmjerite potrebnu udaljenost i izrežite malu površinu kako biste sigurno instalirali senzor.

Korak 7: Sastavljanje, dio 3

Najbolje je instalirati Arduino Uno ploču iza senzora otiska prsta. Malo sam naoštrio sjedište da Arduino Uno ploču postavim u ispravan položaj.


Da bi kreirao takav projekat, autor je morao da izmeni sistem pokretanja svog vozila. Glavna veza je IG provodnik od prekidača za paljenje, preko kojeg se napon napajanja dovodi do regulatora napona, a zatim do samog Arduina za njegovo paljenje, kao i uključivanje senzora za skeniranje prstiju. Ako je skeniranje prstiju uspješno, sistem aktivira relejnu jedinicu i ona kontrolira relej startera. Sada možete upaliti auto. Senzor radi 10 sekundi i može se ponovo pokrenuti ponavljanjem ciklusa pokretanja paljenja. Ako unutar dodijeljenog vremena senzor ne otkrije otisak prsta ili se ne poklapa sa navedenim, tada će sistem za pokretanje biti onemogućen i motor se neće pokrenuti.

Pošto svaki automobil ima svoj sistem konfiguracije pokretanja, potrebno je pogledati električnu šemu prije modifikacije sistema za pokretanje motora.

Ovaj članak opisuje kako spojiti uređaj protiv krađe na Mitsubishi Lancer 2000 coupe s 2 vrata.

Materijali:
- Arduino Uno.
- Senzor otiska prsta.
- Napajanje.
- Relejna jedinica.
- NPN tranzistor BC547B
- Otpornik 1 kOhm










Dijagram povezivanja:
Krug je malo izmijenjen u skladu s komponentama koje se koriste. Imajte na umu da vrijedi samo za ovaj model automobila.

Korak 1 Priprema softverskih komponenti:
U Arduino IDE, biblioteka se učitava i dodaje.
Fajl iz biblioteke blank.ino se učitava u Arduino, koji će služiti kao interfejs između senzora i mikrokontrolera.
Program je instaliran i senzor je spojen na Arduino kao što je prikazano na dijagramu. Nakon toga se otisak prsta učitava kroz instalirani program.


Sada je senzor spojen kao što je prikazano na sljedećem dijagramu. Nakon čega autor prelazi na preuzimanje glavnog programa. LED sa otpornikom spojen je na pin 12.

Program će prvenstveno funkcionirati na osnovu materijala za obuku o otisku prsta Adafruit. Jedina stvar koja se dodaje programskom kodu je tajmer za isključivanje senzora od 10 sekundi. Kod možete preuzeti ispod članka.

Korak 3 sastavljanje:
1. dio:

Prvo odvrnite zavrtnje ispod komandne ploče. Donji dio panela se uklanja, a senzor se može postaviti u slobodan prostor.



dio 2:
Na odabranoj lokaciji za senzor izrezana je zona za njegovu pouzdanu instalaciju.





dio 3:
Arduino ploča je instalirana iza senzora otiska prsta. Mjesto za ugradnju Arduina je malo naoštreno kako bi ploča mogla zauzeti ispravan položaj.



dio 4:
Regulisano napajanje je montirano iza komandne table na strani vozača.

dio 5:
Preostale komponente opreme su povezane prema dijagramu na početku članka.







Korak 4 instalacija:
Potrebne žice su spojene i uređaj je instaliran ispod komandne ploče. Autor se brine da nema kratkog spoja.