Senzor de amprentă Arduino. Blocare biometrică - configurarea scanerului și programarea microcontrolerului. Deconectare de la portul com

Deși puteți accesa sistemele securizate prin parole și chei, ambele opțiuni pot fi incomode și ușor de uitat. În acest tutorial vom învăța cum să folosim modulul FPM10A cu biblioteca Adafruit Arduino pentru a crea sistem biometric amprentele digitale.

Prin tradiție, începem cu componentele pentru lecția noastră.

Detalii

  • Modul de amprentă FPM10A
  • Arduino Uno

Biblioteci și software

  • Arduino IDE
  • Biblioteca de amprente Adafruit

Schema de conectare

Schema de conectare a modulului FPM10A și Arduino Uno trebuie conectate împreună ca în figura de mai sus. Vom intra în mai multe detalii în pasul următor.

Componentele de conectare

Începeți cu acest modul este incredibil de ușor, deoarece folosește un port serial pentru comunicare. Cu toate acestea, deoarece Arduino Uno are un singur port serial hardware, trebuie să utilizați portul serial prin software, folosind pinii 2 și 3 pentru a comunica cu modulul de amprentă (portul serial hardware este rezervat pentru comunicarea cu PC-ul).

Cablul panglică care vine cu modulul FPM10A nu este foarte prietenos pentru hobby, deoarece firele stau în carcasă la pasi de 1,27 mm, așa că tăiem o parte și apoi conectam firele la jumperi.

Instalarea și utilizarea bibliotecii

Primul pas în utilizarea FPM10A este instalarea bibliotecii de amprente digitale a Adafruit, care poate fi făcută folosind Library Manager. Deschideți Arduino IDE și accesați:

Schiță → Includeți biblioteca → Gestionați bibliotecile

Când managerul de bibliotecă încarcă o căutare pentru „Amprentă”, primul rezultat ar trebui să fie biblioteca de amprente Adafruit. Instalează-l.

După instalarea bibliotecii, este timpul să creați proiect nou Arduino. Clic Fișier → Nou și apoi salvați proiectul în propriul folder. În acest moment, deschideți folderul proiectului și copiați fișierul „fingerprint.h” în el.

Acest dosar special un titlu care a fost scris pentru a face biblioteca de amprente mai ușor de utilizat. Fișierul antet are doar trei funcții:

  • fingerprint_setup() - configurează portul serial pentru 9600 baud și se conectează la modul;
  • readFingerprint() - o funcție de sondare care returnează -1 dacă ceva a mers prost sau returnează informații că a fost găsită o amprentă cu succes
  • enrollFingerprint (int id) - adaugă o amprentă la sistem cu identificatorul atribuit „id”.

Pentru a include acest fișier în proiectul dvs., utilizați pur și simplu comanda include așa cum se arată mai jos:

#include „amprentă.h”

Prima funcție pe care trebuie să o apelați în setup() este fingerprint_setup(), care se conectează automat la modul și confirmă că totul funcționează.

Void setup() (fingerprint_setup(); )

Pentru a adăuga o nouă amprentă, apelați funcția enrollFingerprint(id).

Aceasta va returna -1 dacă apare o eroare. În caz contrar, valorile indică înregistrarea cu succes a amprentei. ID-ul a furnizat acestei funcții linkuri către amprenta scanată, iar fiecare amprentă avea un număr unic de identificare.

EnrollFingerprint(0x01);

Cod Arduino

Puteți copia schița finală pentru placa noastră Arduino mai jos:

#include "fingerprint.h" void setup() ( fingerprint_setup(); ) void loop() ( // Creați o nouă intrare de amprentă enrollFingerprint(0x01); delay(1000); // Solicitați intrarea Serial.println(" \nUSER CERERE DE LOGIN...PLASĂ DEGETUL PE SENSOR \n"); while(readFingerprint() == -1); Serial.println(" \nACCES ACCESO \n"); Serial.println(" \nFingerprint confidence: " + String (încredere) + "\n");

Principiul de funcționare

Când activați acest proiect, vă va cere mai întâi să plasați degetul pe scaner. Dacă scanerul este capabil să vă citească amprentele, vă va cere să eliminați și apoi să înlocuiți degetul cu scanerul. Acest lucru ar trebui să facă ca scanerul să adauge cu succes amprenta dvs. la ID-ul 1, iar plasarea degetului pe scaner ar trebui să aibă ca rezultat accesul la sistem.

Acest proiect poate fi extins cu ușurință pentru a include interblocări și relee solenoide pentru a permite utilizatorilor autorizați să facă modificări și să deblocheze sistemul. Odată ce proiectul dvs. este gata, instalați scaner nouîn uși, dulapuri, seifuri, ferestre, sisteme electrice, computere și multe altele!

Pentru a crea o conexiune cu senzorul de amprentă s-au folosit instrucțiuni de la Josh Hawley (descărcare directă a instrucțiunilor).

Pentru a depana funcționarea scanerului de amprentă cu afișajul cu litere, este necesară sincronizarea.

Senzorul de amprentă are propria memorie pentru stocarea imaginilor scanate. Deci, după ce senzorul începe să funcționeze, descărcați-l adăugându-l în baza de date a amprentelor la adresa 0. Deschideți consola de management de pe computer și urmați instrucțiunile pop-up.

Coduri – Exemplu de clipire:

/* Exemplu de bibliotecă pentru controlul scanerului de amprentă digitală (FPS) GT-511C3 */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Configurare hardware - FPS conectat la: //pin digital 10 (arduino rx, fps tx) //pin digital 11 (arduino tx - rezistor 560ohm fps tx - rezistor 1000ohm - masă) //acest lucru reduce linia de 5v tx la aproximativ 3.2v, astfel încât să nu prăjim fps-ul FPS_GT511C3 fps (10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // astfel încât să puteți vedea mesajele în ecranul de depanare serial fps.Open(); ) void loop())( // LED intermitent FPS Test fps .SetLED(true) // aprinde LED-ul din interiorul fps delay(1000); opriți LED-ul din interiorul fps delay(1000); )

Coduri – Exemplu de înscriere:

/* FPS_Enroll.ino - Exemplu de bibliotecă pentru controlul scanerului de amprentă digitală GT-511C3 (FPS) */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Configurare hardware - FPS conectat la: //digital pin 10 (arduino rx, fps tx) //pin digital 11 (arduino tx - rezistor 560ohm fps tx - rezistor 1000ohm - masă) //acest lucru reduce linia de 5v tx la aproximativ 3.2v, astfel încât să nu prăjim fps-ul FPS_GT511C3, fps(10) 11); void setup())( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll())( // Înregistrați testul // găsiți deschis enroll id int enrollid = 0; .CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Eliminați degetul"); fps.Enroll1(); while(fps.IsPressFinger() == true ) delay(100) ; Serial.println("Apăsați din nou același deget"); while(fps.IsPressFinger() == false) delay(100) ( "Eliminați degetul"); fps. IsPressFinger() == true) delay(100); Serial.println("Apăsați din nou același deget"); if (bret != false) ( Serial.println("Eliminați degetul"); iret = fps.Enroll3(); if (iret == 0) ( Serial.println("Înscrierea cu succes"); ) else ( Serial.print("Înscriere cod de eroare:"); Serial.println(iret); ) ) else Serial.println("Nu s-a putut captura al treilea deget"); ) else Serial.println("Nu s-a putut captura al doilea deget"); ) else Serial.println( „Eșuat la capturarea primului deget”; void loop())( delay(100000); )

Fișier de sincronizare:

Fișier de înregistrare schiță:

Etapa 7: Programarea procesorului ATtiny85

Microcipul ATtiny85 este ieftin și pe deplin compatibil cu placa Arduino, este probabil cea mai bună parte electrică creată vreodată!

De asemenea, este nevoie de un programator Arduino pentru a reflasha cipul ATmega328, care controlează funcționarea afișajului LCD.

În dispozitivul asamblat, procesorul ATtiny va executa comenzi foarte simple: verificați semnalul de la ATmega și deschideți ușa garajului când semnalul este confirmat.

Pentru a programa procesorul, acesta trebuie conectat folosind panou la programator împreună cu un condensator de 10 uF, așa cum se arată în imaginea de mai jos.

Și apoi descărcați cod final si urmati recomandarile instrucțiuni de la High-Low Tech.

După aceea, ieșirea 13 de pe placa Arduino, conectată la LED, trebuie să fie comutată în starea HIGH pentru a monitoriza funcționarea folosind indicația luminoasă.

Cod final pentru ATtiny :

//fpsAttiny de Nodcah //Primește un scurt semnal de la modulul principal pentru a închide o configurare de releu void())( pinMode(2,OUTPUT); //indicator LED prin rezistor 10K pinMode(4,OUTPUT); //pin trazistor care deschide garajul pinMode(0,INPUT //input delay(500) //da timp pentru a porni digitalWrite(2, HIGH //indicator LED void loop()); ) ( //model simplu pentru a declanșa întârzierea tranzistorului (125); if(digitalRead(0)==false)( întârziere(55); //cronometrele sunt oprite deoarece temporizatorul ATtiny nu este perfect dacă (digitalRead) ( 0))( întârziere(55); if(digitalRead(0)==fals)( întârziere(55); if(digitalRead(0))( întârziere(55); if(digitalRead(0)==fals)( digitalWrite (4, HIGH //tranzistorul "apăsează" butonul delay(1000 digitalWrite(2, HIGH) );

Blocare biometrică - cod final, tăierea capacului, pregătirea garajului Ceas GPS pe Arduino Blocare biometrică - diagramă și ansamblu afișaj LCD

Deoarece nu am mașină, nu trebuie să-mi duc cheile cu mine peste tot. Din această cauză, s-a dovedit că în mai multe rânduri m-am trezit fără chei în afara casei și trebuind să aștept ca una dintre rudele mele să vină acasă și să mă lase să intru, iar la un moment dat am decis că trebuie să fac ceva în privința asta. și a proiectat un lacăt de garaj de casă.

În acest proiect vă voi arăta cum să faceți o încuietoare cu amprentă pentru ușa dvs. din față.

Pasul 1: Materiale


Iată o listă cu materialele și instrumentele necesare.

Electronica:

  • Scaner de amprente (și conector JST)
  • Set LCD (cu ATmega328)
  • ATtiny85
  • tranzistor NPN
  • Difuzor tweeter
  • Cablu difuzor
  • Caz (la pasul 9 vor fi fișiere pentru imprimare 3D)
  • Film de cupru
  • Regulator de tensiune 5V
  • baterie de 9V
  • Conector pentru baterie de 9V
  • Comutator SPDT

Pentru comoditate, voi atașa o listă de dorințe gata făcută pe site-ul Sparkfun.

Instrument:

  • Fier de lipit și lipit
  • Banda izolatoare
  • Fire și jumperi
  • Cleste/decapatoare
  • Placă de prototipare
  • Diverse rezistențe
  • Șuruburi
  • Burghiu
  • Mai multe LED-uri pentru testare
  • Placa FTDI 5V
  • Pistol cu ​​lipici fierbinte
  • Acces la o imprimantă 3D
  • Optional: priza pt circuite integrate(8-pini pentru ATtiny și 28-pini pentru ATmega)
  • Opțional: altă placă Arduino / condensator 10uF (detalii la pasul 5)

Pasul 2: Diagrama dispozitivului






Kitul LCD achiziționat de la Sparkfun a venit cu un ATmega328 care controlează afișajul. ATmega328 este destul de puternic și poate fi folosit nu numai pentru controlul afișajului, ci și pentru alte sarcini. Având în vedere acest lucru, îl putem folosi în loc de Arduino pentru a comunica cu scanerul de amprentă și a trimite comenzi către ATtiny85, pentru a controla afișajul și beeper-ul.

Pentru a împiedica încuietoarea biometrică a ușii să funcționeze tot timpul, am construit în ea un comutator care funcționează în momentul în care carcasa este închisă. Dacă carcasa este închisă, dispozitivul nu este alimentat și economisim resursele bateriei.

Notă importantă: Scanerul de amprentă funcționează la 3,3V, așa că recomand să utilizați un divizor de tensiune care va converti semnalele de la ATmega la 3,2V. Divizorul de tensiune constă dintr-un rezistor de 560 ohmi între pinul scanerului D10/secundă și un rezistor de 1K între pinul scanerului GND/secundă.

Pinout LCD:

  • D10 - pinul scanerului 1 (fir negru)
  • D11 - pinul 2 al scanerului (prin divizor de tensiune)
  • D12 - ATtiny85
  • D13 - Scârțâit

Pinout ATtiny85:

  • Pin 5 (0 în codul programului) - intrare de la ATmega
  • Pin 3 (4 în codul programului) - tranzistor / LED galben
  • Pin 7 (2 în codul programului) - LED de indicare

Pasul 3: Asamblarea componentelor din kitul LCD

Numele pasului vorbește de la sine: ghid rapid de pornire/asamblare handy-dandy

Pasul 4: Asamblarea circuitului pe placa de prototipare




Amplasarea componentelor pe placă depinde de dvs., încercați doar să lipiți firele astfel încât să fie orientate în aceeași direcție și să nu se rupă.

Odată asamblat, am acoperit partea de sus și de jos a plăcii cu lipici fierbinte - acest lucru a asigurat și izolat elementele circuitului. Lipiciul fierbinte nu va deteriora cipul.

Ca și în cazul plăcii principale, lipiți totul pe placa ATtiny și aplicați lipici fierbinte pentru a fixa și izola componentele. Regulatorul de tensiune poate deveni foarte fierbinte, așa că este o idee bună să evitați aplicarea lipiciului fierbinte pe acesta sau pe orice suprafață din apropiere. De asemenea, este mai bine să nu acoperiți placa ATtiny cu lipici fierbinte, deoarece poate doriți să o îndepărtați și să o reprogramați.

Pasul 5: Programarea ATmega328

După cum sa menționat la pasul 2, ATmega328 are suficient procesor puternicși suficienți pini pentru a controla LCD-ul în timp ce acesta controlează alte componente opționale. Pentru a realiza acest lucru, trebuie să programați cipul.

Dacă aveți un Arduino Uno sau Duemilanove, puteți pur și simplu să scoateți cipul din acesta și să îl înlocuiți cu cel care a venit în kit. Sau puteți găsi o placă FTDI Basic Breakout (5V) și atașamente de lipit în lateral (vezi imaginile de la pasul 3)

De asemenea, va trebui să încărcați codul în modul „Duemilanove w/ ATmega328”.

Codul de mai jos - program de lucru pentru a verifica funcționalitatea dispozitivului.

#include „LiquidCrystal.h” LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); // backlight pinMode(13, OUTPUT); // beeper lcd.begin(16, 2); // 16 caractere lățime, 2 înalte digitalWrite(9, HIGH) ; / /activează backlight lcd.print("Bună lume! "); //centrează textul folosind spații delay(2000 void loop() ( //beeper-ul se aprinde și se oprește, starea acestuia este afișată pe ecranul LCD); .clear( ); lcd.print(" Buzzer este activat ");

Pasul 6: Configurarea scanerului de amprentă

Am folosit această bibliotecă pentru a comunica cu scanerul. Link de descărcare directă.

Pentru a verifica dacă codul dvs. funcționează, descărcați acest tester intermitent.

Scanerul de amprente are propria memorie încorporată pentru stocarea datelor. Deci, după ce sunteți sigur că scanerul funcționează, descărcați acest program pentru a vă adăuga amprenta la baza de date sub id #0. Deschideți consola dvs. serială și urmați pur și simplu instrucțiunile.

Program LED care clipește pentru a testa scanerul

/* Acest cod simplu va aprinde și stinge LED-ul. Este folosit pentru a înțelege dacă comunicarea funcționează.

*/ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Configurare hardware - scaner de degete conectat la: //pin digital 10 (arduino rx, fps tx) //pin digital 11 (arduino tx - rezistor fps de 560ohm tx - rezistor de 1000ohm - GND) //acest lucru scade 5v tx la aproximativ 3.2v și nu ne vom arde scanerul FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // puteți vedea mesaje pe ecranul de depanare serial fps.Open(); ) void loop())( // LED-ul clipește test pentru fps scanner(true);

Program pentru înregistrarea datelor în scaner

Pasul 7: Programați ATtiny85


ATtiny85 este ceva ca un Arduino ieftin asamblat într-un singur cip. ATtiny85 poate fi programat de alte Arduinos, inclusiv ATmega328 care se găsește în kitul nostru LCD. În proiect este folosit pentru a rula comenzi foarte simple: verificați semnalul de la ATmega și deschideți poarta dacă semnalul este corect.

Pentru a-l programa, conectați totul conform fotografiilor atașate. Apoi descărcați fișierele necesare și urmați aceste instrucțiuni.

După descărcarea codului, pinul 13 de pe Arduino (LED-ul încorporat) ar trebui să se aprindă, indicând faptul că codul a fost descărcat.

Cod final:

//Primește un semnal scurt de la modulul principal pentru a închide configurarea releului de gol ())( pinMode(2,OUTPUT); //indicație LED printr-un rezistor de 10K pinMode(4,OUTPUT); //pin tranzistor care deschide garajul pinMode(0,INPUT ); //întârziere de intrare (500); /model simplu pentru comutarea întârzierii tranzistorului (125) if(digitalRead(0)==false)( delay(55); //așteptați, deoarece temporizatorul ATtiny nu este ideal if(digitalRead(0))( delay(55); ); if(digitalRead(0)= =false)(delay(55); if(digitalRead(0))(delay(55); if(digitalRead(0)==false)( digitalWrite(4, HIGH); / / tranzistorul „apasă” butonul delay(1000 ; digitalWrite(4,LOW) digitalWrite(2, HIGH);

Pasul 8: Codul final

Mai jos este un program Arduino pe care l-am scris folosind bibliotecile de scanare și afișare. Pentru a clarifica ce se întâmplă în fiecare parte a programului, am încercat să comentez totul în cel mai bun mod posibil. După descărcarea acestui cod, totul ar trebui să funcționeze și tot ce rămâne de făcut este să integrați sistemul în ușă.

Atenție: dacă biblioteca scanerului nu funcționează, atunci încercați să utilizați versiunea veche Arduino IDE.

Cod pentru ATmega238:

#include "LiquidCrystal.h" //afișează biblioteca #include "FPS_GT511C3.h" //fps (scaner de amprente) #include "SoftwareSerial.h" //utilizat de biblioteca scanerului //Configurați pinii afișajului și scanerului LiquidCrystal lcd( 2, 3, 4, 5, 6, 7, 8); //afișează pinout FPS_GT511C3 fps(10, 11); //RX, TX boolean isFinger = false; //true dacă biblioteca fps detectează degetul pe scaner //pin de ieșire const int buzzerPin = 13; const int backlightPin = 9; const int attinyPin = 12; const String idNames = ("self","Bro", "Ryan", "Mom", "Tad", "Auntie", "Bandma", "Zeide", "Person", "person", "Thumb"); void setup())( //configurați ieșirile pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //pentru depanare //Serial.begin(9600); fps.UseSerialDebug = false //devine adevărat pentru depanarea fps prin portul serial //inițializarea bibliotecilor lcd.begin(16,2)(backlightPin, HIGH); Iluminare de fundal LCD 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 pentru fps //încărcare sunet pentru (int i=0; i

1)( //dacă textul necesită centrare s = " " + s + " "; // adaugă spații uniform pe ambele părți ) returnează s; ) Fișiere

Pentru a crea un sistem de securitate biometric simplu pentru a vă proteja mașina împotriva accesului neautorizat, vom avea nevoie de un senzor de amprentă și un microcontroler Arduino. Acest proiect folosește material de instruire Adafruit. Pentru a facilita repetarea, se folosește codul programului complet din acest material, cu mici modificări.

Deoarece fiecare vehicul are un sistem de configurare de pornire diferit, va trebui să consultați un electrician cu privire la sistemul electric al vehiculului sau să revizuiți schema de cablare înainte de a modifica sistemul de pornire.

Vă rugăm să rețineți că senzorul de amprentă nu pornește motorul. Pur și simplu activează și dezactivează releul de pornire, care interzice sau permite pornirea motorului.

În acest proiect, pe un coupe Mitsubishi Lancer 2000 cu 2 uși este instalat un dispozitiv antifurt.

Pasul 1: Componentele utilizate

Pasul 4: Încărcarea programului principal

Conectați senzorul de amprentă așa cum se arată în diagramă și încărcați programul principal. Conectați un LED și un rezistor la pinul 12 pentru a monitoriza funcționarea corectă.

Programul funcționează pe principiul materialului educațional Adafruit Fingerprint. Cu toate acestea, am modificat ușor codul și am adăugat un temporizator pentru a opri senzorul după 10 secunde pentru a evita distracția de la LED-ul care clipește al senzorului.

Pasul 5: Asamblarea Partea 1

Scoateți șuruburile de sub tabloul de bord. Slăbiți maneta de eliberare a capotei. Scoateți partea inferioară a tabloului de bord. Așezați senzorul în spațiul liber.

Pasul 6: Asamblare, Partea 2

Măsurați distanța necesară și tăiați o zonă mică pentru a instala în siguranță senzorul.

Pasul 7: Asamblare, Partea 3

Cel mai bine este să instalați placa Arduino Uno în spatele senzorului de amprentă. Am ascuțit puțin scaunul pentru a pune placa Arduino Uno în poziția corectă.


Pentru a crea un astfel de proiect, autorul a trebuit să modifice sistemul de pornire al vehiculului său. Conexiunea principală este conductorul IG de la comutatorul de aprindere, prin care tensiunea de alimentare este furnizată la regulatorul de tensiune și apoi la Arduino însuși pentru a-l porni, precum și pentru a porni senzorul de scanare a degetelor. Dacă scanarea degetelor are succes, sistemul activează unitatea releului și controlează releul de pornire. Acum poți porni mașina. Senzorul funcționează timp de 10 secunde și poate fi repornit prin repetarea ciclului de pornire a aprinderii. Dacă în timpul alocat senzorul nu detectează o amprentă sau nu se potrivește cu cea specificată, atunci sistemul de pornire va fi dezactivat și motorul nu va porni.

Deoarece fiecare mașină are propriul sistem de configurare a pornirii, este necesar să se uite la schema electrică înainte de a modifica sistemul de pornire a motorului.

Acest articol descrie cum să conectați un dispozitiv antifurt la un Mitsubishi Lancer 2000 coupe cu 2 uși.

Materiale:
- Arduino Uno.
- Senzor de amprentă.
- Alimentare electrică.
- Unitate releu.
- tranzistor NPN BC547B
- Rezistor 1 kOhm










Schema de conectare:
Circuitul este usor modificat in functie de componentele folosite. Vă rugăm să rețineți că este valabil doar pentru acest model de mașină.

Pasul 1 Pregătirea componentelor software:
În Arduino IDE, biblioteca este încărcată și adăugată.
Un fișier din biblioteca blank.ino este încărcat în Arduino, care va servi drept interfață între senzor și microcontroler.
Programul este instalat și senzorul este conectat la Arduino așa cum se arată în diagramă. După care amprenta este încărcată prin programul instalat.


Acum senzorul este conectat așa cum se arată în diagrama următoare. După care autorul continuă să descarce programul principal. Un LED cu o rezistență este conectat la pinul 12.

Programul va funcționa în principal pe baza materialului de instruire Adafruit Fingerprint. Singurul lucru adăugat la codul programului este un temporizator de oprire a senzorului de 10 secunde. Puteți descărca codul de mai jos articol.

Pasul 3 asamblare:
Partea 1:

Mai întâi, deșurubați șuruburile de sub tabloul de bord. Partea inferioară a panoului este îndepărtată, iar senzorul poate fi plasat în spațiul liber.



Partea 2:
În locația selectată pentru senzor, o zonă este decupată pentru instalarea sa fiabilă.





partea 3:
Placa Arduino este instalată în spatele senzorului de amprentă. Locul de instalare a Arduino a fost ușor ascuțit, astfel încât placa să poată lua poziția corectă.



partea 4:
Sursa de alimentare reglată este montată în spatele tabloului de bord, pe partea șoferului.

partea 5:
Componentele rămase ale echipamentului sunt conectate conform diagramei de la începutul articolului.







Pasul 4 instalare:
Firele necesare sunt conectate și dispozitivul este instalat sub tabloul de bord. Autorul se asigură că nu există un scurtcircuit.