Biometrikus zár - szkenner beállítása és mikrokontroller programozása. Házi készítésű biometrikus ujjlenyomat-zár az első garázskapuhoz Szkenner adatnaplózó program

Biometrikus zár - szkenner beállítása és mikrokontroller programozása. Házi készítésű biometrikus ujjlenyomat-zár az első garázskapuhoz Szkenner adatnaplózó program

Mivel nincs autóm, nem kell mindenhova magammal vinnem a kulcsaimat. Emiatt kiderült, hogy többször is kulcs nélkül találtam magam a házon kívül, és meg kellett várnom, amíg az egyik rokon hazatér és beenged, és egy ponton úgy döntöttem, hogy tennem kell valamit. saját készítésű garázszárat tervezett.

Ebben a projektben megmutatom, hogyan készíthet ujjlenyomat-zárat a bejárati ajtón.

1. lépés: Anyagok


Itt található a szükséges anyagok és eszközök listája.

Elektronika:

  • Ujjlenyomat-szkenner (és JST csatlakozó)
  • LCD készlet (ATmega328-al)
  • ATtiny85
  • NPN tranzisztor
  • Hangszóró-magassugárzó
  • hangszóró vezeték
  • Case (a 9. lépésben lesznek fájlok 3D nyomtatáshoz)
  • Réz film
  • Feszültségszabályozó 5V
  • Akkumulátor 9V
  • Akkumulátor csatlakozó 9V
  • SPDT kapcsoló

A kényelem kedvéért csatolok egy kész kívánságlistát a Sparkfun honlapján.

Eszköz:

  • Forrasztópáka és forrasztóanyag
  • Szigetelő szalag
  • Vezetékek és jumperek
  • Fogók / sztriptíz
  • prototípus tábla
  • Különféle ellenállások
  • csavarok
  • Fúró
  • Több LED a teszteléshez
  • FTDI 5V kártya
  • ragasztópisztoly
  • Hozzáférés egy 3D nyomtatóhoz
  • Opcionális: IC-aljzat (8 tűs az ATtinyhez és 28 tűs az ATmegához)
  • Opcionális: egy másik Arduino kártya / 10uF kondenzátor (részletek az 5. lépésben)

2. lépés: Eszköz séma






A Sparkfuntól vásárolt LCD készlethez egy ATmega328 is járt, amely a kijelzőt hajtotta. Az ATmega328 elég erős, és nem csak kijelzővezérlésre, hanem egyéb feladatokra is használható. Ennek fényében az Arduino helyett használhatjuk az ujjlenyomat-szkennerrel való kommunikációra és parancsok küldésére az ATtiny85-nek, a kijelző és a berregő vezérlésére.

Hogy a biometrikus ajtózár ne működjön állandóan, egy kapcsolót építettem bele, ami a tok bezárásának pillanatában működik. Ha a tok zárva van, a készülék nem kap áramot, és az akkumulátor erőforrásait takarítjuk meg.

Fontos megjegyzés: Az ujjlenyomat-szkenner 3,3 V-on működik, ezért javaslom egy feszültségosztó használatát, amely az ATmega jeleit 3,2 V-ra konvertálja. A feszültségosztó egy 560 ohmos ellenállásból áll a D10 / szkenner 2. érintkezője között és egy 1 kΩ-os ellenállásból a GND / szkenner 2. érintkezője között.

LCD kivezetés:

  • D10 - a szkenner 1. érintkezője (fekete vezeték)
  • D11 - a szkenner 2. érintkezője (feszültségosztón keresztül)
  • D12-ATtiny85
  • D13 - Nyikorgó

ATtiny85 kivezetés:

  • 5. láb (0 a programkódban) - bemenet az ATmegától
  • 3. érintkező (4 a programkódban) - tranzisztor / sárga LED
  • 7. láb (2 a programkódban) - jelző LED

3. lépés: Az alkatrészek összeszerelése az LCD készletből

A lépés neve önmagáért beszél: praktikus-dandy gyors üzembe helyezési/összeszerelési útmutató

4. lépés: Az áramkör összeállítása a prototípus-készítő táblán




Az alkatrészek elhelyezése a táblán rajtad múlik, csak próbáld meg úgy forrasztani a vezetékeket, hogy egy irányba nézzenek és ne törjenek el.

Összeszerelés után forró ragasztóval bevontam a tábla tetejét és alját - ez rögzítette és szigetelte az áramköri elemeket. A forró ragasztó nem károsítja a chipet.

Az alaplaphoz hasonlóan forrassza fel mindent az ATtiny táblára, és alkalmazzon forró ragasztót az alkatrészek rögzítéséhez és izolálásához. A feszültségszabályozó nagyon felforrósodhat, ezért nem érdemes forró ragasztót felvinni rá vagy a közelében lévő felületekre. Az is legjobb, ha nem melegen ragasztja az ATtiny táblát, mert érdemes lehet eltávolítani és újraprogramozni.

5. lépés: Az ATmega328 programozása

Ahogy a 2. lépésben említettük, az ATmega328 elég erős processzorral és elegendő érintkezővel rendelkezik az LCD meghajtásához, miközben más kiegészítő alkatrészeket is meghajt. Ennek eléréséhez programozni kell a chipet.

ha van Arduino Uno vagy Duemilanove, egyszerűen eltávolíthatja róluk a chipet, és kicserélheti a készlethez mellékelt chipre. Alternatív megoldásként találhat egy FTDI Basic Breakout (5V) kártyát és forrasztófejeket az oldalán (lásd a képeket a 3. lépésben)

A „Duemilanove w/ATmega328” módban is ki kell töltenie a kódot.

Kód lent - munkaprogram hogy ellenőrizze a készülék működését.

#include "LiquidCrystal.h" LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); // háttérvilágítás pinMode(13, OUTPUT); // magassugárzó lcd.begin(16, 2); // 16 karakter széles, 2 karakter magas digitalWrite(9, HIGH) ; //bekapcsolja a háttérvilágítást lcd.print(" Hello world!"); //középre helyezi a szöveget szóközökkel delay(2000); ) void loop() ( //a magassugárzó be- és kikapcsol, állapota megjelenik a display lcd.clear( ); lcd.print(" Csengő be van kapcsolva "); tone(13, 262, 1000); delay(1000); lcd.clear(); lcd.print(" Csengő ki van kapcsolva"); delay (1000); ) Fájlok

6. lépés Állítsa be az ujjlenyomat-olvasót

A szkennerrel való kommunikációhoz ezt a könyvtárat használtam. Közvetlen letöltési link.

A kód működésének ellenőrzéséhez töltse le ezt a villogási tesztprogramot.

Az ujjlenyomat-szkenner saját beépített memóriával rendelkezik az adatok tárolására. Tehát miután megbizonyosodott arról, hogy a szkenner működik, töltse le ezt a programot, hogy ujjlenyomatát hozzáadja az adatbázishoz a #0 azonosítóval. Nyissa meg a soros konzolt, és kövesse az utasításokat.

Szkenner teszt LED villogó program

/* Ez az egyszerű kód be- és kikapcsolja a LED-et. Arra használják, hogy megértsék, működik-e a kommunikáció. */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverbeállítás – ujjleolvasó csatlakoztatva: //digitális tű 10 (arduino rx, fps tx) //digitális tű 11 (arduino tx - ellenállás 560 ohm fps tx - ellenállás 1000 ohm - GND) //ez kb. 3,2 V-ra csökkenti az 5v tx-et, és nem égetjük el az FPS_GT511C3 szkennerünket (10, 11); void setup()( Serial.begin(9600); fps.UseSerialDebug = true; // láthatja az üzeneteket a soros hibakeresési képernyőn fps.Open(); ) void loop()( // tesztelje a fps. SetLED(true); // bekapcsolja a szkenner késleltetésén belüli LED-et (1000); fps.SetLED(false);// kikapcsolja a szkenner késleltetésén belüli LED-et (1000); )

Szkenner adatnaplózó szoftver

#include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverbeállítás - ujjleolvasó csatlakoztatva: //digitális érintkező 10 (arduino rx, fps tx) //digitális tű 11 (arduino tx - 560 ohm ellenállás fps tx - ellenállás 1000 ohm - GND) //ez kb. 3,2 V-ra csökkenti az 5v tx-et, és nem égetjük el a szkennerünket FPS_GT511C3 fps(10, 11); void setup()( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll()( // Regisztrációs teszt // nyitott azonosító keresése int enrollid = 0; fps.EnrollStart(enrollid); // regisztráció Serial.print("Nyomja meg az ujját a regisztrációhoz #"); Serial.println(enrollid); while(fps.IsPressFinger() == false) delay(100) ; bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Remove ujj"); fps.Enroll1(); while(fps.IsPressFinger() == igaz ) delay(100); Serial.println("Nyomja meg újra ugyanazt az ujját"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Remove ujj"); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Nyomd meg még egyszer ugyanazt az ujjat"); while(fps. IsPressFinger () == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Remove ujj"); iret = fps.Enroll3(); if (iret) = = 0) ( Serial.println("Beiratkozás sikeres"); ) else ( Serial.print("A regisztráció sikertelen hibakóddal:"); Serial.println(iret); ) ) else Serial.println("A harmadik ujj rögzítése sikertelen"); ) else Serial.println("Nem sikerült rögzíteni a második ujjat"); ) else Serial.println("Az első ujj rögzítése nem sikerült"); ) void loop()( delay(100000); ) Fájlok

7. lépés: Programozza be az ATtiny85-öt


Az ATtiny85 olyan, mint egy olcsó Arduino, egyetlen chipbe szerelve. Az ATtiny85 programozható más Arduinóval, beleértve az LCD készletünkben található ATmega328-at is. A projekt nagyon egyszerű parancsok futtatására használja: ellenőrizze az ATmega jelét, és nyissa ki a kaput, ha a jel megfelelő.

Programozásához köss össze mindent a mellékelt fotók szerint. Ezután töltse le a szükséges fájlokat, és kövesse ezt az utasítást.

A kód betöltése után az Arduino 13-as érintkezőjének (beépített LED) világítania kell, jelezve, hogy a kód betöltődött.

Végső kód:

//Rövid jelet kap a fő modultól a relé bezárásához void setup()( pinMode(2,OUTPUT); //LED jelzés egy 10K ellenálláson keresztül pinMode(4,OUTPUT); //tranzisztor tű, amely megnyitja a garázs pinMode (0,INPUT ); // adja meg a késleltetést (500); // időt ad az eszköznek a digitalWrite(2, HIGH) elindításához; // jelző LED ) void loop()( if(digitalRead(0))( // egyszerű minta a tranzisztor késleltetésének váltásához (125); if(digitalRead(0)==false)( delay(55); //várjon, mert az ATtiny időzítő nem tökéletes if(digitalRead(0))( delay(55); if(digitalRead) (0)= =hamis)(késleltetés(55); if(digitalRead(0))(késleltetés(55); if(digitalRead(0)==false)(digitalWrite(4, HIGH); //tranzisztor "megnyom" gomb késleltetése(1000); digitalWrite(4,LOW); digitalWrite(2,LOW); késleltetés (1000); digitalWrite(2, HIGH); ) ) ) ) ) ) Fájlok

8. lépés: Végső kód

Az alábbiakban egy Arduino program látható, amelyet a szkenner és a kijelzőkönyvtárak segítségével írtam. Hogy világos legyen, mi történik a program egyes részeiben, igyekeztem mindent a lehető legjobb módon kommentálni. A kód letöltése után mindennek működnie kell, és már csak a rendszert az ajtóba kell integrálni.

Figyelmeztetés: ha a szkenner könyvtár nem működik, próbálja meg használni régi verzió Arduino IDE.

Az ATmega238 kódja:

#include "LiquidCrystal.h" //megjelenítési könyvtár #include "FPS_GT511C3.h" //fps (ujjlenyomat-szkenner) könyvtár #include "SoftwareSerial.h" //a lapolvasó könyvtár által használt //A kijelző és a LiquidCrystal szkenner tűinek konfigurálása lcd (2, 3, 4, 5, 6, 7, 8); //kijelző pinout FPS_GT511C3 fps(10, 11); //RX, TX logikai érték isFinger = false; //igaz, ha az fps könyvtár ujjat észlel a szkenneren //kimeneti tűk const int buzzerPin = 13; const int háttérvilágításPin = 9; const int attinyPin = 12; const String idNames = ( "én", "tesó", "Ryan", "anya", "apa", "néni", "nagymama", "zeide", "személy", "személy", "hüvelykujj"); void setup()( //kimenetek beállítása pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //hibakereséshez //Serial.begin(9600); fps.UseSerialDebug = false; / / igazzá válik az fps hibakereséshez via soros port//könyvtárak inicializálása lcd.begin(16,2); digitalWrite(backlightPin, HIGH); //LCD háttérvilágítás fps.Open(); fps SetLED(igaz); //LED on fps //hang betöltése for(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)( //ha a szöveget középre kell helyezni s = " " + s + " "; //egyenletesen szóközöket ad hozzá mindkét oldalon ) return s; ) Fájlok

Ha viszonylag régi eszközt használ, ne idegeskedjen előre. Ahelyett, hogy egy régi laptopot lecserélne egy modernebbre, amelyen beépített biometrikus érzékelő található, USB-t csatlakoztathat hozzá.

A PQI Mini USB ujjlenyomat-olvasó nagyszerű választás azok számára, akik új életet szeretnének adni régi hardverüknek. A szkennert kifejezetten a Windows 10 rendszerű eszközökön elérhető Hello funkcióval való együttműködésre tervezték, azonban a készülék támogatja a Windows 7 és 8 operációs rendszereket is.

Az érzékelő egyik fő előnye, hogy 360 fokos szkennelésre képes. Így nem kell aggódnia amiatt, hogy miként csatlakoztathatja legjobban eszközét a számítógéphez. Használja a legközelebbi USB-portot, és kezdje el. Amikor a szkennernek ujjlenyomatra van szüksége, automatikusan a megfelelő helyre fordul, és összehasonlítja a kapott adatokat a mentett másolattal.

A PQI Mini USB ujjlenyomat-olvasó akár 10 különböző profilt is képes tárolni a memóriában. Ezért az eszköz kiválóan alkalmas megosztásra, vagy ha további ujjat kell beolvasnia (ha az „elsődleges” bepiszkolódik vagy megsérül).

A PQI Mini USB ujjlenyomat-olvasó nagyon kedvező áron kapható, így remek választás azok számára, akik kezdő modellt keresnek. Ezenkívül a lapolvasó kellően hordozható ahhoz, hogy gond nélkül vigye magával.

Verifi P2000 ujjlenyomat olvasó

Ha olyan asztali számítógépet használ, amelyen nem olyan könnyű elérni az USB-portokat, akkor figyeljen a Verifi P2000 ujjlenyomat-olvasóra. Könnyen csatlakoztatható PC-hez, és ami a legfontosabb, a kényelmesebb használat érdekében a számítógép közelében is elhelyezhető.

A szkenner ütésálló fémből készült, és több mint egy évig bírja. A szilárd felépítés ellenére jó ujjlenyomat-felismerési rátával rendelkezik. Így nem kell folyamatosan változtatnod az ujjad pozícióját csak azért, hogy tökéletes illeszkedést kapj. A legtöbb esetben elegendő az érzékelő egyszeri elhúzása.

A P2000 létrehozásakor a Verifit azt tervezte, hogy a készüléket erős és tartós legyen, hogy az ne legyen hatással a szkennelési folyamatra és a felismerési eredmények pontosságára. A Verifi P2000 ujjlenyomat-olvasó elég hordozható ahhoz, hogy könnyen hordozható legyen. Ráadásul sokkal nagyobb számú számítógéppel kompatibilis, mint más hasonló modellek.

Kensington VeriMark

A hihetetlenül kicsi ujjlenyomat-szkennerhez a Kensington VeriMark szinte mindent tartalmaz, ami a kényelmes munkához szükséges. A modell 360 fokos szkennelés támogatásával és kis méretével büszkélkedhet. De a fő dolog, ami a Kensington VeriMarkot olyan értékessé teszi, az a kiegészítő funkciók.

Minden fogadott adat titkosított formában kerül tárolásra. Amikor az érzékelő beolvas egy ujjlenyomatot, azonnal titkosítja azt. Lehetetlen megszakítani ezt a folyamatot, így nem lesz lehetséges a szoftver vagy a hardver feltörése és a biometrikus adatok kinyerése.

Ezenkívül a készülék speciális sablont használ a beérkezett szkennelések dekódolásához, amellyel csak a gyártó rendelkezik. Ez biztonságosabbá teszi a hackertámadásokkal és az illetéktelen hozzáférésre irányuló egyéb kísérletekkel szemben.

A lapolvasó a kiadási verziótól függetlenül támogatja a viszonylag régi portokat. Ha egy modellt használ, akkor USB-C–USB-A adapter használatával az eszköz csatlakoztatható egy viszonylag régi laptophoz vagy számítógéphez, anélkül, hogy támogatná a modernebb USB-portokat.

Benss ujjlenyomat-olvasó elemző

A Benss Fingerprint Reader Analyzer egy másik szkenner, amely megkönnyíti az életét, és sok bajtól kíméli meg Önt. Általános szabály, hogy az egyszerűbb modellek először egy kontrollfelvételt készítenek, majd az összes további nyomatot összehasonlítják az eredeti eredménnyel. Ez azt jelenti, hogy ha valami történik az eredeti képpel (amivel az összes többi beolvasást összehasonlítjuk), akkor a végeredmény egyezésének valószínűsége jelentősen csökken.

A Benss Fingerprint Reader Analyzert egy öntanuló algoritmus hajtja, amely minden érintéssel automatikusan létrehozza és frissíti az Ön profilját. Minél tovább használja a készüléket, annál pontosabb lesz az eredmény. Ez megnehezíti a szkenner becsapását hamis ujjlenyomatokkal. Mivel az érzékelő folyamatosan vizsgálja az ujját és frissíti az adatbázist, azonnal észleli a jogosulatlan hozzáférési kísérleteket.

Ez az egyik leghatékonyabb eszköz a hackertámadások leküzdésére. Hamis elfogadási aránya kevesebb, mint 0,002%, ami azt jelenti, hogy valóban meg kell próbálnia feltörni az eszközt. Ugyanakkor nem bonyolítja nagyban a munkát, az FRR-je (False Rejection Rate - a rendszerben regisztrált személy hozzáférésének megtagadása) mindössze 3%.

IDEM BioScan Compact

Ha testreszabási lehetőségekkel rendelkező szkennert keres, az IDEM BioScan Compact az Ön számára való. Alapvető képességeinek bővítéséhez és további funkciókhoz elegendő speciális szoftvert letölteni a gyártó hivatalos webhelyéről.

Ezt követően titkosíthatja az egyes fájlokat és mappákat a számítógépén, valamint tárolhatja a bejelentkezési és jelszóadatokat a webhelyek eléréséhez egy speciális programban. Így bármelyik internetes portálra bejelentkezhet az érzékelő szokásos érintésével.

Még ha nem is veszi figyelembe a további funkciókat, a BioScan Compact méltó modellnek számít. A készülék akár 10 különböző ujjlenyomat tárolására is képes, kis méretekkel, valamint beépített védelemmel büszkélkedhet a hamis biometrikus adatok felismerésére.

Blucoil SecuGen Hamster Pro 20

A Blucoil SecuGen Hamster Pro 20 az ideális ujjlenyomat-szkenner professzionális igényekhez. Tekintettel arra, hogy a modell fejlett biztonsági beállításokat kínál, költsége majdnem kétszer olyan magas, mint a listánkon szereplő többi eszközé.

Ezenkívül egyike azon kevés szkennereknek, amelyek hivatalos Linux-támogatással rendelkeznek. Ezért függetlenül attól, hogy melyik operációs rendszert használja, az érzékelő bármilyen feladatra alkalmas.

A SecuGen Hamster Pro 20 robusztus, karc-, víz- és porálló. A szkenner képes nyomon követni a korábbi ellenőrzések nyomait, és elutasítani a homályos eredményeket.

Ráadásul a Blucoil SecuGen Hamster Pro 20 energiatakarékos eszköz, így automatikusan kikapcsol, ha hosszabb ideig nem használja senki.

További biztonság

Az elmúlt években rengeteg beépített ujjlenyomat-leolvasóval ellátott mobil és asztali eszköz jelent meg, amelyek száma évről évre csak nő. Ha számítógépe nem rendelkezik beépített érzékelővel a biometrikus adatok felismerésére, akkor nem kell idegesnek lennie. Számítógépekhez és laptopokhoz való USB-szkennerek széles választéka létezik, amelyek szinte minden népszerű modellel kompatibilisek.

Bár jelszavakkal és kulcsokkal is hozzáférhet a biztonságos rendszerekhez, mindkét lehetőség kényelmetlen lehet és könnyen elfelejthető. Ebben az oktatóanyagban megtanuljuk, hogyan lehet az FPM10A modult az Adafruit Arduino könyvtárral együtt használni biometrikus ujjlenyomat-rendszer létrehozásához.

A hagyomány szerint a leckénk összetevőivel kezdjük.

Részletek

  • FPM10A ujjlenyomat modul
  • Arduino Uno

Könyvtárak és szoftverek

  • Arduino IDE
  • Adafruit Ujjlenyomat Könyvtár

Csatlakozási diagram

Az FPM10A modul és az Arduino Uno csatlakozási rajzát a fenti ábra szerint kell összekapcsolni. A következő lépésben részletesebben foglalkozunk.

Összekötjük az alkatrészeket

Ennek a modulnak az első lépései hihetetlenül egyszerűek, mivel soros portot használ a kommunikációhoz. Mivel azonban az Arduino Uno csak egy hardveres soros porttal rendelkezik, a soros portot szoftveren keresztül kell használnia a 2. és 3. érintkező segítségével az ujjlenyomat-modullal való kommunikációhoz (a hardveres soros port a számítógépes kommunikációhoz van fenntartva).

Az FPM10A modulhoz mellékelt szalagkábel nem túl hobbibarát, mivel a vezetékek 1,27 mm-es osztással ülnek a tokban, így az egyik oldalát levágtuk, majd a vezetékeket a jumperekhez csatlakoztattuk.

A könyvtár telepítése és használata

Az FPM10A használatának első lépése az Adafruit Ujjlenyomat-könyvtár telepítése, amely a Library Manager segítségével tehető meg. Nyissa meg az Arduino IDE-t, és lépjen a következő helyre:

Vázlat → Könyvtár hozzáadása → Könyvtárak kezelése

Amikor a Library Manager betölt egy "ujjlenyomat" keresést, az első eredménynek az Adafruit ujjlenyomat-könyvtárnak kell lennie. Telepítse.

A könyvtár telepítése után itt az ideje egy új Arduino projekt létrehozásának. Kattintson Fájl → Új , majd mentse a projektet a saját mappájába. Ezen a ponton nyissa meg a projekt mappát, és másolja be a "fingerprint.h" fájlt.

Ez egy speciális fejlécfájl, amelyet az ujjlenyomat-könyvtár használatának megkönnyítésére írtak. A fejlécfájlnak csak három funkciója van:

  • fingerprint_setup () - konfigurálja a soros portot 9600 baudra, és csatlakozik a modulhoz;
  • readFingerprint() - lekérdezési függvény, amely -1-et ad vissza, ha valami hiba történt, vagy információt ad vissza arról, hogy sikeres ujjlenyomatot találtak
  • enrollFingerprint (int id) - ujjlenyomatot ad a rendszerhez a hozzárendelt "id" azonosítóval.

Ha ezt a fájlt bele szeretné venni a projektbe, egyszerűen használja az include parancsot az alábbiak szerint:

#include "ujjlenyomat.h"

Az első függvény, amelyet a setup()-ban meg kell hívni, a fingerprint_setup(), amely automatikusan csatlakozik a modulhoz, és megerősíti, hogy minden működik.

Void setup() ( ujjlenyomat_beállítás(); )

Új ujjlenyomat hozzáadásához hívja meg az enrollFingerprint(id) függvényt.

Ez -1-et ad vissza, ha nem sikerül. Ellenkező esetben az értékek sikeres ujjlenyomat-regisztrációt jeleznek. Az azonosító a beolvasott ujjlenyomat hivatkozását adta át ennek a funkciónak, és minden ujjlenyomat egyedi azonosító számmal rendelkezik.

ujjlenyomat regisztrálása(0x01);

Arduino kód

Az alábbiakban lemásolhatja Arduino táblánk végső vázlatát:

#include "fingerprint.h" void setup() ( fingerprint_setup(); ) void loop() ( // Új ujjlenyomat-bejegyzés létrehozása enrollFingerprint(0x01); delay(1000); // Bejegyzés kérése Serial.println(" \nFELHASZNÁLÓ BEJELENTKEZÉSI KÉRÉS...HELYEZZE AZ ÚJJAT AZ ÉRZÉKELŐRE \n"); while(readFingerprint() == -1); Serial.println(" \nA HOZZÁFÉRÉS MEGADVA \n"); Serial.println(" \nUjjlenyomat megbízhatósága: " + String (bizalom) + "\n"); késleltetés (3000); )

Működés elve

Amikor engedélyezi ezt a projektet, először megkéri, hogy helyezze az ujját a szkennerre. Ha a lapolvasó képes beolvasni az ujjlenyomatait, akkor megkéri, hogy távolítsa el, majd cserélje ki az ujját a szkennerrel. Ennek eredményeként a lapolvasó sikeresen hozzáadja az ujjlenyomatát az 1-es azonosítóhoz, és ha az ujját a lapolvasóra helyezi, rendszer-hozzáférést kell eredményeznie.

Ez a kialakítás könnyen kiterjeszthető mágnesszelep zárakra és relékre, amelyek lehetővé teszik a jogosult felhasználók számára, hogy változtatásokat hajtsanak végre és feloldják a rendszert. A projekt befejezése után telepítse az új szkennert ajtókba, szekrényekbe, széfekbe, ablakokba, elektromos rendszerekbe, számítógépekbe és egyebekbe!

Az ujjlenyomat-érzékelővel való kapcsolat létrehozásához Josh Hawley utasításait használtam (közvetlen letöltési utasítás).

A betűkijelzővel ellátott ujjlenyomat-szkenner működésének hibakereséséhez szinkronizálnia kell.

Az ujjlenyomat-érzékelő saját memóriával rendelkezik a beolvasott képek tárolására. Tehát miután az érzékelő elkezdett működni, töltse le ezt úgy, hogy hozzáadja az ujjlenyomat-adatbázishoz a 0 címen. Nyissa meg a felügyeleti konzolt a számítógépen, és kövesse az utasításokat.

Kódok – Pislogás Példa:

/* Példa a GT-511C3 ujjlenyomat-szkenner (FPS) vezérléséhez */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverbeállítás - FPS csatlakoztatva: //digitális pin 10(arduino rx, fps tx) //digitális tű 11 (arduino tx - 560 ohm ellenállás fps tx - 1000 ohm ellenállás - föld) //ez az 5v-os tx vonalat kb. 3,2 V-ra csökkenti, így nem sütjük az fps-t FPS_GT511C3 fps (10, 11); void setup()( Serial.begin(9600); fps.UseSerialDebug = true; // így láthatja az üzeneteket a soros hibakeresési képernyőn fps.Open(); ) void loop()( // FPS Blink LED Test fps .SetLED(true); // bekapcsolja a LED-et az fps késleltetésen belül (1000); fps.SetLED(false);// kikapcsolja a LED-et az fps késleltetésen belül (1000); )

Kódok – Jelentkezési példa:

/* FPS_Enroll.ino - Példa a GT-511C3 ujjlenyomat-szkenner (FPS) vezérléséhez */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardverbeállítás - FPS csatlakoztatva: //digitális tű 10 (arduino rx, fps tx) //digitális tű 11 (arduino tx - 560 ohm ellenállás fps tx - 1000 ohm ellenállás - föld) //ez az 5v-os tx-vonalat kb. 3,2V-ra csökkenti, így nem fogjuk megsütni az fps-t FPS_GT511C,3 fps tizenegy); void setup()( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll()( // Beiratkozási teszt // nyitott regisztrációs azonosító keresése int enrollid = 0; fps.EnrollStart(enrollid); // beiratkozás Serial.print("Nyomja meg az ujját a regisztrációhoz #"); Serial.println(enrollid); while(fps.IsPressFinger() == false) delay(100) ; bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Remove ujj"); fps.Enroll1(); while(fps.IsPressFinger() == igaz ) delay(100); Serial.println("Nyomja meg újra ugyanazt az ujját"); while(fps.IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Remove ujj"); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); Serial.println("Nyomd meg még egyszer ugyanazt az ujjat"); while(fps. IsPressFinger() == false) delay(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Remove ujj"); iret = fps.Enroll3(); if (iret) == 0) ( Serial.println("Beiratkozás sikeres"); ) else ( Serial.print("A regisztráció sikertelen hibakóddal:"); Serial.println(iret); ) ) else Serial.println("A harmadik ujj rögzítése sikertelen"); ) else Serial.println("Nem sikerült rögzíteni a második ujjat"); ) else Serial.println("Az első ujj rögzítése nem sikerült"); ) void loop()( delay(100000); )

Szinkronizálási fájl:

Miniatűr regisztrációs fájl:

7. lépés: Az ATtiny85 processzor programozása

Az ATtiny85 mikrochip olcsó és teljesen kompatibilis az Arduino kártyával, valószínűleg a valaha készült legjobb elektromos alkatrész!

Az LCD működését vezérlő ATmega328 chip flasheléséhez is szükség van az Arduino programozóra.

Az összeszerelt eszközben az ATtiny processzor nagyon egyszerű parancsokat hajt végre: ellenőrizze az ATmega jelét, és nyissa ki a garázsajtót, amikor a jel megerősítésre kerül.

A processzor működésének programozásához 10 uF-os kondenzátorral együtt kell csatlakoztatni a programozóhoz egy kenyérsütő segítségével, az alábbi képen látható módon.

És akkor töltsd fel végső kódés kövesse az ajánlásokat a High-Low Tech utasításait.

A után a LED-hez csatlakoztatott Arduino kártya 13-as kimenetét HIGH állapotba kell állítani, hogy nyomon követhessük a fényjelzésen végzett munkát.

Végső kód a ATtiny :

//fpsAttiny by Nodcah //Rövid jelet kap a fő modultól a relé void setup bezárásához megnyitja a garázs pinMode(0,INPUT); //bemeneti késleltetés(500); //időt ad a dolgoknak a digitalWrite(2, HIGH) elindításához; //jelző LED ) void loop()( if(digitalRead(0)) ( //egyszerű minta a tranzisztor késleltetésének kiváltására (125); if(digitalRead(0)==false)( delay(55); //az időzítések ki vannak kapcsolva, mert az ATtiny időzítője nem tökéletes if(digitalRead( 0))( késleltetés(55); if(digitalRead(0)==false)( delay(55); if(digitalRead(0))( delay(55); if(digitalRead(0)==false)( digitalWrite (4, HIGH); //tranzisztor "megnyomja" a gombot delay(1000); digitalWrite(4,LOW); digitalWrite(2,LOW); delay(1000); digitalWrite(2, HIGH); ) ) ) ) ) ) )

Biometrikus zár - végleges kód, burkolatvágás, garázs előkészítés GPS óra Arduino-n Biometrikus zár – LCD elrendezés és összeszerelés