Ön garaj kapısı için ev yapımı biyometrik parmak izi kilidi. Ön garaj kapısında ev yapımı biyometrik parmak izi kilidi Parmak izi sensörünü bilgisayara bağlama

Ön garaj kapısı için ev yapımı biyometrik parmak izi kilidi. Ön garaj kapısında ev yapımı biyometrik parmak izi kilidi Parmak izi sensörünü bilgisayara bağlama

Arabam olmadığı için anahtarlarımı her yere yanımda taşımak zorunda değilim. Bu nedenle, kendimi birkaç kez evin dışında anahtarsız bulduğum ve akrabalarımdan birinin eve dönüp beni içeri almasını beklemek zorunda kaldığım ortaya çıktı ve bir noktada bu konuda bir şeyler yapmam gerektiğine karar verdim ve ev yapımı bir garaj kilidi tasarladı.

Bu projemde sizlere ön kapıya parmak izi kilidi nasıl yapılır onu göstereceğim.

Adım 1: Malzemeler


İşte gerekli malzemelerin ve araçların bir listesi.

Elektronik:

  • Parmak izi tarayıcı (ve JST konektörü)
  • LCD kiti (ATmega328 ile)
  • ATtiny85
  • NPN transistörü
  • Hoparlör-tweeter
  • hoparlör teli
  • Vaka (9. adımda 3D yazdırma için dosyalar olacaktır)
  • Bakır filmi
  • Voltaj regülatörü 5V
  • Pil 9V
  • Pil konektörü 9V
  • SPDT anahtarı

Kolaylık sağlamak için Sparkfun web sitesine hazır bir istek listesi ekleyeceğim.

Alet:

  • Havya ve lehim
  • Yalıtım bandı
  • Teller ve jumperlar
  • Pense / striptizci
  • prototipleme panosu
  • Çeşitli dirençler
  • vidalar
  • Delmek
  • Test için çeşitli LED'ler
  • FTDI 5V kurulu
  • Sıcak tutkal tabancası
  • 3D yazıcıya erişim
  • İsteğe bağlı: IC soketi (ATtiny için 8 pinli ve ATmega için 28 pinli)
  • İsteğe bağlı: başka bir Arduino kartı / 10uF kapasitör (5. adımdaki ayrıntılar)

Adım 2: Cihaz Şeması






Sparkfun'dan satın alınan LCD kiti, ekranı çalıştıran bir ATmega328 ile birlikte geldi. ATmega328 oldukça güçlüdür ve yalnızca ekran kontrolü için değil aynı zamanda diğer görevler için de kullanılabilir. Bunu göz önünde bulundurarak, parmak izi tarayıcısıyla iletişim kurmak ve ATtiny85'e komutlar göndermek, ekranı ve zil sesini kontrol etmek için Arduino yerine onu kullanabiliriz.

Biyometrik kapı kilidinin sürekli çalışmasını önlemek için içine kasa kapandığı anda çalışan bir anahtar yerleştirdim. Kasa kapalıysa cihaza güç verilmez ve pil kaynaklarından tasarruf etmiş oluruz.

Önemli not: Parmak izi tarayıcı 3,3V'ta çalışır, bu nedenle ATmega'dan gelen sinyalleri 3,2V'a dönüştürecek bir voltaj bölücü kullanmanızı öneririm. Gerilim bölücü, D10 / tarayıcı pimi 2 arasında 560 ohm'luk bir dirençten ve GND / tarayıcı pimi 2 arasında 1 kΩ'luk bir dirençten oluşur.

LCD Pin Çıkışı:

  • D10 - tarayıcının pin 1'i (siyah kablo)
  • D11 - tarayıcının pin 2'si (voltaj bölücü aracılığıyla)
  • D12-ATtiny85
  • D13 - Gıcırdayan

ATtiny85 pin çıkışı:

  • Pin 5 (program kodunda 0) - ATmega'dan giriş
  • Pin 3 (program kodunda 4) - transistör / sarı LED
  • Pin 7 (program kodunda 2) - gösterge LED'i

Adım 3: Bileşenlerin LCD Kitinden Birleştirilmesi

Adımın adı kendini anlatıyor: kullanışlı-züppe hızlı başlangıç/montaj kılavuzu

Adım 4: Devrenin Prototipleme Kartına Montajı




Bileşenlerin kart üzerine yerleştirilmesi size kalmış, sadece kabloları tek yöne bakacak ve kırılmayacak şekilde lehimlemeye çalışın.

Montajdan sonra panelin üstünü ve altını sıcak tutkalla kapladım; bu, devre elemanlarını sabitledi ve yalıttı. Sıcak tutkal çipe zarar vermez.

Ana kartta olduğu gibi, her şeyi ATtiny kartına lehimleyin ve bileşenleri sabitlemek ve izole etmek için sıcak tutkal uygulayın. Voltaj regülatörü çok ısınabilir, bu nedenle ona veya yakınındaki yüzeylere sıcak tutkal uygulamamak iyi bir fikirdir. ATtiny kartını sıcak tutkalla yapıştırmamak da en iyisidir, çünkü onu çıkarıp yeniden programlamak isteyebilirsiniz.

Adım 5: ATmega328'in Programlanması

Adım 2'de belirtildiği gibi ATmega328, diğer ek bileşenleri çalıştırırken LCD'yi çalıştıracak kadar güçlü bir işlemciye ve yeterli pinlere sahiptir. Bunu başarmak için çipi programlamanız gerekir.

eğer varsa Arduino Uno veya Duemilanove, çipi onlardan çıkarabilir ve kitle birlikte gelen çiple değiştirebilirsiniz. Alternatif olarak, bir FTDI Temel Koparma (5V) kartını ve yan tarafında lehim başlıklarını bulabilirsiniz (3. adımdaki resimlere bakın)

Ayrıca "Duemilanove w/ ATmega328" modunda da kodu doldurmanız gerekecektir.

Aşağıdaki kod - çalışma programı Cihazın işlevselliğini kontrol etmek için.

#include "LiquidCrystal.h" LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); // arka ışık pinMode(13, OUTPUT); // tweeter lcd.begin(16, 2); // 16 karakter genişliğinde, 2 karakter yüksekliğinde digitalWrite(9, HIGH) ; //arka ışığı açın lcd.print(" Merhaba dünya!"); //metni boşluklarla ortalayın gecikme(2000); ) void loop() ( //tweeter açılır ve kapanır, durumu ekranda görüntülenir display lcd.clear(); lcd.print(" Zil açık "); tone(13, 262, 1000); gecikme(1000); lcd.clear(); lcd.print(" Zil kapalı "); gecikme (1000); ) Dosyalar

Adım 6: Parmak İzi Okuyucuyu Kurun

Tarayıcıyla iletişim kurmak için bu kütüphaneyi kullandım. Doğrudan indirme bağlantısı.

Kodun çalışıp çalışmadığını kontrol etmek için bu göz kırpma testi programını indirin.

Parmak izi tarayıcının veri depolamak için kendi dahili belleği vardır. Tarayıcının çalıştığından emin olduktan sonra, parmak izinizi id #0 altındaki veritabanına eklemek için bu programı indirin. Seri konsolu açın ve talimatları izleyin.

Tarayıcı Test LED'i Yanıp Sönme Programı

/* Bu basit kod LED'i açıp kapatacak. İletişimin çalışıp çalışmadığını anlamak için kullanılır. */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Donanım kurulumu - parmak tarayıcıya bağlı: //dijital pin 10(arduino rx, fps tx) //dijital pin 11(arduino tx - direnç 560ohm fps) tx - direnç 1000ohm - GND) //bu 5v tx'i yaklaşık 3,2v'ye düşürür ve tarayıcımızı yakmayız FPS_GT511C3 fps(10, 11); void setup()( Serial.begin(9600); fps.UseSerialDebug = true; // seri hata ayıklama ekranında mesajları görebileceksiniz fps.Open(); ) void loop()( // test edin fps.SetLED(true); // tarayıcı gecikmesinin içindeki LED'i açar(1000); fps.SetLED(false);// tarayıcı gecikmesinin içindeki LED'i kapatır(1000); )

Tarayıcı veri kayıt yazılımı

#include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Donanım kurulumu - parmak tarayıcı şuraya bağlı: //dijital pin 10(arduino rx, fps tx) //dijital pin 11(arduino tx - 560ohm direnç fps tx - direnç 1000ohm - GND) //bu 5v tx'i yaklaşık 3,2v'ye düşürür ve tarayıcımızı yakmayız FPS_GT511C3 fps(10, 11); void setup()( Serial.begin(9600); gecikme(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll()( // Kayıt testi // açık kimliği arayın int enrollid = 0; fps.EnrollStart(enrollid); // kayıt Serial.print("Kayıt # için parmağa basın"); Serial.println(enrollid); while(fps.IsPressFinger() == false) gecikme(100) ; bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Parmağı kaldır"); fps.Enroll1(); while(fps.IsPressFinger() == true ) gecikme(100); Serial.println("Aynı parmağa tekrar basın"); while(fps.IsPressFinger() == false) gecikme(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Parmağı kaldır"); fps.Enroll2(); while(fps.IsPressFinger() == true) gecikme(100); Serial.println("Aynı parmağa bir kez daha basın"); while(fps. IsPressFinger () == false) gecikme(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Parmağını kaldır"); iret = fps.Enroll3(); if (iret = = 0) ( Serial.println("Kayıt Başarılı"); ) else ( Serial.print("Hata koduyla kayıt başarısız oldu:"); Serial.println(iret); ) ) else Serial.println("Üçüncü parmak yakalanamadı"); ) else Serial.println("İkinci parmak yakalanamadı"); ) else Serial.println("İlk parmak yakalanamadı"); ) void loop()( gecikme(100000); ) Dosyalar

Adım 7: ATtiny85'i programlayın


ATtiny85, tek bir çipte toplanmış ucuz bir Arduino'ya benzer. ATtiny85, LCD kitimizde bulunan ATmega328 de dahil olmak üzere diğer Arduino'larla programlanabilir. Proje bunu çok basit komutları çalıştırmak için kullanıyor: ATmega'dan gelen sinyali kontrol edin ve sinyal doğruysa kapıyı açın.

Programlamak için her şeyi ekteki fotoğraflara göre bağlayın. Daha sonra gerekli dosyaları indirin ve bu talimatı izleyin.

Kod yüklendikten sonra Arduino'daki (dahili LED) pin 13 yanarak kodun yüklendiğini belirtmelidir.

Son kod:

//Röleyi kapatmak için ana modülden kısa bir sinyal alır void setup()( pinMode(2,OUTPUT); //10K direnç aracılığıyla LED göstergesi pinMode(4,OUTPUT); //garajı açan transistör pini pinMode (0,INPUT ); // gecikmeyi girin(500); // cihaza digitalWrite'ı başlatması için zaman verin(2, HIGH); // gösterge LED'i ) void loop()( if(digitalRead(0))( // simple transistör gecikmesini değiştirmek için desen (125); if(digitalRead(0)==false)( gecikme(55); //bekle çünkü ATtiny zamanlayıcı mükemmel değil if(digitalRead(0))( gecikme(55); if(digitalRead) (0)= =yanlış)( gecikme(55); if(digitalRead(0))( gecikme(55); if(digitalRead(0)==false)( digitalWrite(4, YÜKSEK); //transistör "basar" düğme gecikmesi(1000); digitalWrite(4,DÜŞÜK); digitalWrite(2,DÜŞÜK); gecikme(1000); digitalWrite(2, YÜKSEK); ) ) ) ) ) ) ) Dosyalar

Adım 8: Son Kod

Aşağıda tarayıcı ve ekran kütüphanelerini kullanarak yazdığım bir Arduino programı bulunmaktadır. Programın her bölümünde neler olduğunu netleştirmek için her şeyi mümkün olan en iyi şekilde yorumlamaya çalıştım. Bu kodu indirdikten sonra her şey çalışmalı ve geriye sadece sistemi kapıya entegre etmek kalıyor.

Uyarı: Tarayıcı kitaplığı çalışmıyorsa kullanmayı deneyin eski versiyon Arduino IDE'si.

ATmega238'in kodu:

#include "LiquidCrystal.h" //ekran kütüphanesi #include "FPS_GT511C3.h" //fps (parmak izi tarayıcı) kütüphanesi #include "SoftwareSerial.h" //tarayıcı kütüphanesi tarafından kullanılır //Ekranı ve LiquidCrystal tarayıcı pinlerini lcd yapılandırın (2, 3, 4, 5, 6, 7, 8); //pin çıkışını göster FPS_GT511C3 fps(10, 11); //RX, TX boolean isFinger = false; //fps kitaplığı tarayıcıda bir parmak algılarsa doğru //çıkış pinleri const int buzzerPin = 13; const int arka ışıkPin = 9; const int attinyPin = 12; const String idNames = ( "kendi", "Kardeş", "Ryan", "Anne", "Baba", "Teyze", "Büyükanne", "Zeide", "Kişi", "kişi", "Başparmak"); void setup()( //çıkışları ayarlayın pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //hata ayıklama için //Serial.begin(9600); fps.UseSerialDebug = false; / /fps hatalarını ayıklamak için doğru olur seri port//kütüphanelerin başlatılması lcd.begin(16,2); digitalWrite(arka ışıkPin, YÜKSEK); //LCD arka ışık fps.Open(); fps SetLED(doğru); //fps LED'i //ses yükleniyor 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)( //metnin ortalanması gerekiyorsa s = " " + s + " "; //her iki tarafa da eşit miktarda boşluk eklenir) return s; ) Dosyalar


Böyle bir proje yaratmak için yazarın aracının fırlatma sistemini değiştirmesi gerekiyordu. Ana bağlantı, voltajın voltaj regülatörüne ve ardından onu açmak ve parmak tarama sensörünü açmak için Arduino'ya beslendiği kontak anahtarından gelen IG iletkenidir. Parmak taraması başarılı olursa sistem röle kutusunu etkinleştirir ve marş rölesini kontrol eder. Artık arabayı çalıştırabilirsiniz. Sensör 10 saniye boyunca çalışır ve kontak başlatma döngüsünün tekrarlanmasıyla yeniden başlatılabilir. Belirlenen süre içinde sensör parmak izini tespit etmezse veya belirtilen parmak iziyle eşleşmiyorsa, çalıştırma sistemi devre dışı bırakılacak ve motor çalışmayacaktır.

Her arabanın kendi çalıştırma konfigürasyon sistemi olduğundan, motor çalıştırma sistemini değiştirmeden önce elektrik devresine bakmak gerekir.

Bu makalede, hırsızlık önleme cihazının Mitsubishi Lancer 2000 2 kapılı coupe'ye nasıl bağlanacağı açıklanmaktadır.

Malzemeler:
-Arduino Uno.
- Parmak izi sensörü.
- Güç kaynağı.
- Röle bloğu.
- NPN transistörü BC547B
- Direnç 1 kOhm










Bağlantı şeması:
Devre, kullanılan bileşenlere göre biraz değiştirilmiştir. Bunun yalnızca bu araç modeli için geçerli olduğunu lütfen unutmayın.

Adım 1 Yazılım bileşenlerini hazırlama:
Arduino IDE indirir ve ekler.
Blank.ino kütüphanesindeki dosya, sensör ile mikrodenetleyici arasında arayüz görevi görecek olan Arduino'ya yüklenir.
Program kurulur ve sensör şemada gösterildiği gibi Arduino'ya bağlanır. Daha sonra kurulu program aracılığıyla parmak izi yüklenir.


Sensör artık aşağıdaki diyagramda gösterildiği gibi bağlanmıştır. Bundan sonra yazar ana programı indirmeye devam eder. Dirençli bir LED pin 12'ye bağlanır.

Program öncelikle Adafruit Fingerprint eğitiminde çalışacak. Program koduna yalnızca 10 saniyelik sensör kapatma zamanlayıcısı eklenmiştir. Kodu yazının altından indirebilirsiniz.

Adım 3 montajı:
Bölüm 1:

Başlangıç ​​​​olarak, ön panelin altındaki vidalar sökülür. Panelin alt kısmı çıkarılır ve sensör boş alana yerleştirilebilir.



Bölüm 2:
Sensör için seçilen konumda, güvenilir kurulumu için bir bölge kesilir.





bölüm 3:
Arduino kartı parmak izi sensörünün arkasına monte edilmiştir. Arduino'nun kurulacağı yer, kartın doğru pozisyonu alabilmesi için hafifçe baltalandı.



bölüm 4:
Düzenlenmiş güç kaynağı, sürücü tarafındaki ön panelin arkasına monte edilmiştir.

bölüm 5:
Ekipmanın geri kalan bileşenleri, makalenin başındaki şemaya göre bağlanır.







Adım 4 kurulumu:
Gerekli kablolar bağlanır ve cihaz ön panelin altına monte edilir. Yazar kısa devre olmadığından emin olur.

Arabanızı yetkisiz erişime karşı koruyacak basit bir biyometrik güvenlik sistemi oluşturmak için bir parmak izi sensörüne ve bir Arduino mikro denetleyicisine ihtiyacımız var. Bu proje Adafruit eğitimini kullanıyor. Tekrarlamayı kolaylaştırmak için, bu materyaldeki kodun tamamı, küçük değişikliklerle birlikte kullanılır.

Öncelikle aracın fırlatma sistemini değiştiriyoruz. Ana bağlantı, kontak anahtarından voltaj regülatörüne, ardından onu açıp kapatmak için Arduino mikro denetleyicisine güç sağlayan ve 10 saniye boyunca sensör üzerindeki parmağı tarayan IG kablosudur. Parmak izi eşleştiğinde sistem, marş rölesini kontrol eden bir röle kutusunu etkinleştirir. Artık motoru çalıştırabilirsiniz. 10 saniye sonra parmak izi sensörü kapanır. Kontak başlatma döngüsünü tekrarlayarak tekrar açabilirsiniz. 10 saniye içinde sensör parmak izini tespit etmezse veya parmak izi referansla eşleşmezse, çalıştırma sistemi devre dışı bırakılır ve motor çalışmaz.

Her aracın farklı bir çalıştırma konfigürasyon sistemi olduğundan, motor çalıştırma sisteminde değişiklik yapmadan önce bir araç elektrikçisine danışmalı veya kablo bağlantı şemasını gözden geçirmelisiniz.

Parmak izi sensörünün motoru çalıştırmadığını lütfen unutmayın. Yalnızca motorun çalışmasını yasaklayan veya çalıştırılmasına izin veren marş rölesini etkinleştirir ve devre dışı bırakır.

Bu projede hırsızlık önleme cihazı 2 kapılı Mitsubishi Lancer 2000 Coupe'ye kuruldu.

Adım 1: Kullanılan Bileşenler

Adım 4: Ana programın indirilmesi

Parmak izi sensörünü şemada gösterildiği gibi bağlayın ve ana programı indirin. İşlemin doğru olup olmadığını kontrol etmek için pin 12'ye bir LED ve bir direnç bağlayın.

Program Adafruit Parmak İzi eğitim materyali prensibiyle çalışmaktadır. Ancak programlama kodunu biraz değiştirdim ve yanıp sönen sensör LED'inin dikkati dağıtmasını önlemek için sensörü 10 saniye sonra kapatacak bir zamanlayıcı ekledim.

Adım 5: Montaj Bölüm 1

Gösterge panelinin altındaki vidaları sökün. Kaput mandalı serbest bırakma kolunu gevşetin. Gösterge panelinin alt kısmını çıkarın. Sensörü boş bir alana yerleştirin.

Adım 6: Montaj Bölüm 2

Sensörü güvenli bir şekilde monte etmek için gerekli mesafeyi ölçün ve küçük bir alanı kesin.

Adım 7: Montaj Bölüm 3

Arduino Uno en iyi şekilde parmak izi sensörünün arkasına yerleştirilir. Arduino Uno kartını doğru konuma getirmek için ayak izini biraz kestim.

Parmak izi sensörüyle bağlantı oluşturmak için Josh Hawley'in talimatını (doğrudan indirme talimatı) kullandım.

Parmak izi tarayıcısının çalışmasında harf ekranıyla hata ayıklamak için senkronizasyon yapmanız gerekir.

Parmak izi sensörünün taranan görüntüleri saklamak için kendi belleği vardır. Yani sensör çalışmaya başladıktan sonra bunu 0 adresindeki parmak izi veritabanına ekleyerek indirin. Bilgisayarınızdaki yönetim konsolunu açın ve talimatları izleyin.

Kodlar - Yanıp Sönme Örneği:

/* GT-511C3 Parmak İzi Tarayıcısını (FPS) kontrol etmek için kütüphane örneği */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Donanım kurulumu - FPS'ye bağlı: //digital pin 10(arduino rx, fps tx) //dijital pin 11(arduino tx - 560ohm direnç fps tx - 1000ohm direnç - toprak) //bu, 5v tx hattını yaklaşık 3,2v'ye düşürür, böylece fps'mizi kızartmayız FPS_GT511C3 fps(10, 11); void setup()( Serial.begin(9600); fps.UseSerialDebug = true; // böylece seri hata ayıklama ekranındaki mesajları görebilirsiniz fps.Open(); ) void loop()( // FPS Yanıp Sönen LED Testi fps .SetLED(true); // fps gecikmesi içindeki LED'i açın(1000); fps.SetLED(false);// fps gecikmesi içindeki LED'i kapatın(1000); )

Kodlar - Kayıt Örneği:

/* FPS_Enroll.ino - GT-511C3 Parmak İzi Tarayıcısını (FPS) kontrol etmek için kütüphane örneği */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Donanım kurulumu - FPS'ye bağlı: //digital pin 10 (arduino rx, fps tx) //dijital pin 11(arduino tx - 560ohm direnç fps tx - 1000ohm direnç - toprak) //bu 5v tx hattını yaklaşık 3,2v'ye düşürür böylece fps FPS_GT511C3 fps(10, on bir); void setup()( Serial.begin(9600); gecikme(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll()( // Kayıt testi // açık kayıt kimliğini bul int enrollid = 0; fps.EnrollStart(enrollid); // enroll Serial.print("Kayıt # için parmağa basın"); Serial.println(enrollid); while(fps.IsPressFinger() == false) gecikme(100) ; bool bret = fps.CaptureFinger(true); int iret = 0; if (bret != false) ( Serial.println("Parmağı kaldır"); fps.Enroll1(); while(fps.IsPressFinger() == true ) gecikme(100); Serial.println("Aynı parmağa tekrar basın"); while(fps.IsPressFinger() == false) gecikme(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Parmağı kaldır"); fps.Enroll2(); while(fps.IsPressFinger() == true) gecikme(100); Serial.println("Aynı parmağa bir kez daha basın"); while(fps. IsPressFinger() == false) gecikme(100); bret = fps.CaptureFinger(true); if (bret != false) ( Serial.println("Parmağını kaldır"); iret = fps.Enroll3(); if (iret == 0) ( Serial.println("Kayıt Başarılı"); ) else ( Serial.print("Hata koduyla kayıt başarısız oldu:"); Serial.println(iret); ) ) else Serial.println("Üçüncü parmak yakalanamadı"); ) else Serial.println("İkinci parmak yakalanamadı"); ) else Serial.println("İlk parmak yakalanamadı"); ) void loop()( gecikme(100000); )

Senkronizasyon dosyası:

Küçük resim kayıt dosyası:

Adım 7: ATtiny85 İşlemcinin Programlanması

ATtiny85 mikroçipi ucuzdur ve Arduino kartıyla tamamen uyumludur; muhtemelen şimdiye kadar yapılmış en iyi elektrikli parçadır!

LCD'nin çalışmasını kontrol eden ATmega328 yongasını flaşlamak için Arduino programcısına da ihtiyaç vardır.

Monte edilmiş cihazda, ATtiny işlemci çok basit komutları uygulayacaktır: ATmega'dan gelen sinyali kontrol edin ve sinyal onaylandığında garaj kapısını açın.

İşlemcinin çalışmasını programlamak için, aşağıdaki resimde gösterildiği gibi 10 uF'lik bir kapasitörle birlikte bir devre tahtası kullanılarak programlayıcıya bağlanması gerekir.

Ve sonra yükleyin son kod ve tavsiyelere uyun High-Low Tech'ten talimatlar.

Bundan sonra, LED'e bağlı Arduino kartındaki çıkış 13, ışık göstergesindeki çalışmayı takip etmek için YÜKSEK duruma ayarlanmalıdır.

için son kod ATtiny :

//fpsAttiny by Nodcah //Röleyi kapatmak için ana modülden kısa bir sinyal alır void setup()( pinMode(2,OUTPUT); //10K direnç üzerinden geçen gösterge pinMode(4,OUTPUT); //trasistor pini garajı açar pinMode(0,INPUT); //giriş gecikmesi(500); //digitalWrite'ı başlatmak için şeylere zaman verin(2, HIGH); //gösterge LED'i void loop()( if(digitalRead(0)) ( //transistör gecikmesini tetiklemek için basit desen (125); if(digitalRead(0)==false)( gecikme(55); //ATtiny'nin zamanlayıcısı mükemmel olmadığı için zamanlamalar kapalı if(digitalRead() 0))( gecikme(55); if(digitalRead(0)==false)( gecikme(55); if(digitalRead(0))( gecikme(55); if(digitalRead(0)==false)( digitalWrite (4, YÜKSEK); //transistör düğmeye "basar" gecikme(1000); digitalWrite(4,LOW); digitalWrite(2,LOW); gecikme(1000); digitalWrite(2, YÜKSEK); ) ) ) ) ))

Biyometrik kilit - son kod, kapak kesimi, garaj hazırlığı Arduino'da GPS saati Biyometrik kilit - LCD düzeni ve montajı