Házi készítésű biometrikus ujjlenyomat-zár az első garázskapuhoz. Házi készítésű biometrikus ujjlenyomat-zár az első garázsajtón Ujjlenyomat-érzékelő csatlakoztatása számítógéphez

Házi készítésű biometrikus ujjlenyomat-zár az első garázskapuhoz. Házi készítésű biometrikus ujjlenyomat-zár az első garázsajtón Ujjlenyomat-érzékelő csatlakoztatása számítógéphez

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


Egy ilyen projekt létrehozásához a szerzőnek módosítania kellett járműve indítórendszerét. A fő csatlakozás a gyújtáskapcsoló IG-vezetője, amelyen keresztül a feszültség a feszültségszabályozóhoz, majd magához az Arduino-hoz jut, hogy bekapcsolja, valamint bekapcsolja az ujjleolvasó érzékelőt. Ha az ujjleolvasás sikeres, a rendszer aktiválja a relédobozt, és vezérli az indítórelét. Most már elindíthatja az autót. Az érzékelő 10 másodpercig működik, és a gyújtásindítási ciklus megismétlésével újraindítható. Ha a megadott időn belül az érzékelő nem észlelt ujjlenyomatot, vagy nem egyezik a megadottal, akkor az indítórendszer letiltásra kerül, és a motor nem indul el.

Mivel minden autónak saját indítási konfigurációs rendszere van, a motorindító rendszer módosítása előtt meg kell vizsgálni az elektromos áramkört.

Ez a cikk leírja, hogyan csatlakoztathat lopásgátlót Mitsubishi Lancer 2000 2 ajtós kupéhoz.

Anyagok:
- Arduino Uno.
- Ujjlenyomat-érzékelő.
- Tápegység.
- Relé blokk.
- BC547B NPN tranzisztor
- Ellenállás 1 kOhm










Bekötési rajz:
Az áramkör kis mértékben módosul a felhasznált komponenseknek megfelelően. Felhívjuk figyelmét, hogy ez csak erre a járműmodellre érvényes.

1. lépés Szoftverösszetevők előkészítése:
Az Arduino IDE letölti és hozzáadja a .
A blank.ino könyvtárból származó fájl betöltődik az Arduino-ba, amely interfészként szolgál majd az érzékelő és a mikrokontroller között.
A program telepítve van, és az érzékelő az ábrán látható módon csatlakozik az Arduino-hoz. Ezután az ujjlenyomat a telepített programon keresztül betöltődik.


Az érzékelő most az alábbi ábrán látható módon csatlakoztatva van. Ezt követően a szerző letölti a fő programot. A 12-es érintkezőhöz egy ellenállásos LED csatlakozik.

A program elsősorban az Adafruit Fingerprint oktatóanyagon fog működni. Csak egy 10 másodperces érzékelő kikapcsolási időzítő került hozzáadásra a programkódhoz. A kódot a cikk alatt töltheti le.

Összeszerelés 3. lépés:
1. rész:

Először is ki kell csavarni a műszerfal alatti csavarokat. A panel alsó részét eltávolítják, és az érzékelőt a szabad helyre lehet helyezni.



2. rész:
Az érzékelő kiválasztott helyén egy zóna kerül kivágásra a megbízható telepítés érdekében.





3. rész:
Az Arduino kártya az ujjlenyomat-érzékelő mögé került. Az Arduino telepítésének helyét kissé aláásták, hogy a tábla a megfelelő pozíciót vegye fel.



4. rész:
A szabályozott tápegység a vezetőoldali műszerfal mögött található.

5. rész:
A berendezés többi alkatrésze a cikk elején található diagram szerint van csatlakoztatva.







4. lépés a telepítés:
A szükséges vezetékek csatlakoztatva vannak, és a készülék a műszerfal alá kerül. A szerző gondoskodik arról, hogy ne legyen rövidzárlat.

Egy egyszerű biometrikus biztonsági rendszer létrehozásához, amely megvédi autóját az illetéktelen hozzáféréstől, szükségünk van egy ujjlenyomat-érzékelőre és egy Arduino mikrokontrollerre. Ez a projekt az Adafruit oktatóanyagot használja. Az ismétlés megkönnyítése érdekében az anyag teljes kódját használjuk, kisebb módosításokkal.

Először is módosítjuk a jármű indítórendszerét. A fő csatlakozás a gyújtáskapcsoló IG vezetéke, amely táplálja a feszültségszabályozót, majd az Arduino mikrokontrollert, hogy be- és kikapcsolja azt, és 10 másodpercig pásztázza az ujját az érzékelőn. Ha az ujjlenyomat megegyezik, a rendszer aktivál egy relédobozt, amely az indítórelét vezérli. Most elindíthatja a motort. 10 másodperc elteltével az ujjlenyomat-érzékelő kikapcsol. A gyújtásindítási ciklus megismétlésével újra bekapcsolhatja. Ha az érzékelő 10 másodpercen belül nem észlel ujjlenyomatot, vagy az ujjlenyomat nem egyezik a referenciaértékkel, akkor az indítórendszer le van tiltva, és a motor nem indul el.

Mivel minden járműnek más indítási konfigurációs rendszere van, a motorindító rendszer módosítása előtt konzultáljon egy járművillanyszerelővel, vagy tekintse át a kapcsolási rajzot.

Felhívjuk figyelmét, hogy az ujjlenyomat-érzékelő nem indítja be a motort. Csak az indítórelét aktiválja és deaktiválja, amely tiltja vagy lehetővé teszi a motor indítását.

Ebben a projektben a lopásgátló berendezést egy 2 ajtós Mitsubishi Lancer 2000 kupéra szerelték fel.

1. lépés: Felhasznált alkatrészek

4. lépés: A főprogram letöltése

Csatlakoztassa az ujjlenyomat-érzékelőt az ábra szerint, és töltse le a fő programot. Csatlakoztasson egy LED-et és egy ellenállást a 12-es érintkezőhöz, hogy ellenőrizze a működés megfelelőségét.

A program az Adafruit Fingerprint tananyag elvén működik. Azonban egy kicsit megváltoztattam a programozási kódot, és hozzáadtam egy időzítőt, amely 10 másodperc után kikapcsolja az érzékelőt, hogy elkerülje a figyelem elterelését a villogó érzékelő LED-ről.

5. lépés: Összeszerelés 1. rész

Távolítsa el a csavarokat a műszerfal alatt. Lazítsa meg a motorháztető retesz kioldó kart. Távolítsa el a műszerfal alsó részét. Helyezze az érzékelőt szabad helyre.

6. lépés: Összeszerelés 2. rész

Mérje meg a szükséges távolságot, és vágjon ki egy kis területet az érzékelő biztonságos felszereléséhez.

7. lépés: Összeszerelés 3. rész

Az Arduino Uno legjobban az ujjlenyomat-érzékelő mögé helyezhető. Kicsit megvágtam a lábnyomot, hogy az Arduino Uno tábla a megfelelő pozícióba kerüljön.

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