İçindekiler:

Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi: 4 Adım (Resimli)
Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi: 4 Adım (Resimli)

Video: Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi: 4 Adım (Resimli)

Video: Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi: 4 Adım (Resimli)
Video: S10 - AK10 Standalone Parmak İzi Okuyucu Parmak İzi ve Kart Kaydı Nasıl Yapılır ? 2024, Temmuz
Anonim
Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi
Arduino Kullanan Parmak İzi Tabanlı Biyometrik Oylama Makinesi

Kullanıcının oy kullanmak için bir düğmeye basması gereken mevcut elektronik oylama makinesinin hepimiz farkındayız. Ancak bu makineler başından beri tavlama nedeniyle eleştiriliyor. Bu nedenle hükümet, kullanıcıların parmak izi izlenimine göre oy kullanabilecekleri parmak izi tabanlı bir oylama makinesi sunmayı planlıyor. Bu sistem sadece mükerrer oy olasılığını ortadan kaldırmakla kalmayacak, aynı zamanda her türlü manipülasyonu da önleyecektir.

Bu projede, Arduino Uno, TFT ekran ve Parmak İzi Sensörünü kullanarak bir Biyometrik oylama makinesinin prototipini oluşturacağız. Daha önce Biyometrik tabanlı bir Katılım Sistemi oluşturmak için NodeMCU ile R305 Parmak İzi Sensörünü kullandık ancak burada Arduino ile gelişmiş GT-511C3 parmak izi sensörünü kullanacağız.

Adım 1: Biyometrik Oylama Makinesini Oluşturmak için Gerekli Bileşenler

  • Arduino Uno'su
  • 2.4” TFT LCD Ekran Kalkanı
  • GT-511C3 Parmak İzi Sensörü

Bu 2,4 inç TFT ekran, daha önce IoT Tabanlı Restoran Menü Sipariş Sistemi oluşturmak için Arduino ile birlikte kullanılıyordu.

Adım 2: Arduino Kullanan Biyometrik Oylama Makinesi için Devre Şeması

Arduino Kullanan Biyometrik Oylama Makinesi için Devre Şeması
Arduino Kullanan Biyometrik Oylama Makinesi için Devre Şeması

Bu proje için Devre Şeması, Arduino Uno ile sadece TFT ekran ve parmak izi sensör modülünü bağladığımız için çok basittir. Parmak izi sensörünün VCC ve GND pinleri Arduino'nun 5V ve GND pinlerine, TX ve RX pinleri ise Arduino Uno'nun dijital pin 11 & 12'sine bağlanır.

2.4” TFT LCD ekran bir Arduino Shield'dir ve aşağıdaki resimde gösterildiği gibi doğrudan Arduino Uno'ya monte edilebilir. TFT ekranın Arduino Uno'ya mükemmel şekilde uyan 28 pini var, bu yüzden Arduino'nun arka tarafındaki parmak izi sensörünü lehimlemek zorunda kaldım.

Adım 3: Kaynak Kodu ve Adım Adım Kod Açıklaması

Arduino kullanan bu Parmak İzi Oylama Sistemi Projesinin tam kodu makalenin sonunda verilmiştir; burada kodun bazı önemli fonksiyonlarını açıklıyoruz.

Kod SPFD5408, Software Serial ve FPS_GT511C3 kitaplıklarını kullanır. SPFD5408 kütüphanesi, orijinal Adafruit Kütüphanesinin değiştirilmiş versiyonudur. Bu kütüphane dosyaları aşağıda verilen bağlantılardan indirilebilir:

  • SPFD5408 Kitaplığı
  • Yazılım Seri
  • FPS_GT511C3

Kütüphaneleri ekledikten ve bazı önemli parametreleri tanımladıktan sonra programlama kısmına geçebiliriz. Bu programda yer alan üç bölüm vardır. Biri bir oylama makinesinin UI'sini oluşturmak, ikincisi düğmeler için temas noktalarını almak ve dokunmaya dayalı düğmeleri algılamak ve son olarak sonuçları hesaplayıp Arduino'nun belleğine kaydetmek.

1. Kullanıcı Arayüzü Oluşturma:

Üç düğme ve projenin adı ile basit bir kullanıcı arayüzü oluşturdum. TFT ekran kitaplığı, Çizgiler, Dikdörtgen, Daireler, Karakterler, Dizeler ve tercih edilen herhangi bir renk ve boyuttan çok daha fazlasını çizmenize olanak tanır. Burada fillRoundRect ve drawRoundRect işlevleri kullanılarak iki dikdörtgen düğme oluşturulur. tft.drawRoundRect işlevinin sözdizimi aşağıda verilmiştir:

tft.drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t yarıçap, uint16_t renk)

Nereye:

x0= Dikdörtgenin başlangıç noktasının X koordinatı

y0= Dikdörtgenin başlangıç noktasının Y koordinatı

w = Dikdörtgenin genişliği

h = Dikdörtgenin Yüksekliği

yarıçap = Yuvarlak köşenin yarıçapı

color = Rect'in rengi.

geçersiz drawHome()

{

tft.fillScreen(BEYAZ);

tft.drawRoundRect(0, 0, 319, 240, 8, BEYAZ); //Sayfa kenarı

tft.fillRoundRect(10, 70, 220, 50, 8, ALTIN);

tft.drawRoundRect(10, 70, 220, 50, 8, BEYAZ); //Oy

tft.fillRoundRect(10, 160, 220, 50, 8, ALTIN);

tft.drawRoundRect(10, 160, 220, 50, 8, BEYAZ); //Kaydol

tft.fillRoundRect(10, 250, 220, 50, 8, ALTIN); //Sonuç

tft.drawRoundRect(10, 250, 220, 50, 8, BEYAZ);

tft.setCursor(65, 5);

tft.setTextSize(3);

tft.setTextColor(CYAN);

tft.print("Oylama");

tft.setCursor(57, 29);

tft.print("Makine");

tft.setTextSize(3);

tft.setTextColor(BEYAZ);

tft.setCursor(25, 82);

tft.print("Aday 1");

tft.setCursor(25, 172);

tft.print("Aday 2");

tft.setCursor(25, 262);

tft.print("Aday 3");

}

2. Temas Noktalarını Alma ve Butonları Tespit Etme:

Şimdi kodun ikinci bölümünde, buton temas noktalarını tespit edeceğiz ve ardından bu noktaları butonu tahmin etmek için kullanacağız. ts.getPoint() işlevi, kullanıcının TFT ekranındaki dokunuşunu algılamak için kullanılır. ts.getPoint, dokunulan alan için Ham ADC değerlerini verir. Bu RAW ADC değerleri daha sonra harita işlevi kullanılarak Piksel Koordinatlarına dönüştürülür.

TSPoint p = ts.getPoint();

if (p.z > ts.pressureThreshhold)

{

p.x = harita(p.x, TS_MAXX, TS_MINX, 0, 320);

p.y = harita(p.y, TS_MAXY, TS_MINY, 0, 240);

//Seri.print("X:");

//Seri.baskı(p.x);

//Seri.print("Y:");

//Seri.baskı(p.y);

Artık her bir buton için X ve Y koordinatlarını bildiğimize göre, 'if' deyimini kullanarak kullanıcının nereye dokunduğunu tahmin edebiliyoruz.

if (p.x > 70 && p.x 10 && p.y MINBASINÇ && p.z < MAX BASINÇ)

{

Serial.println("Aday 1");

Bir seçmen aday düğmesine bastığında, parmak izi sensöründeki parmağını taraması istenecek. Parmak kimliği yetkilendirilmişse, seçmenin oy kullanmasına izin verilir. Kayıtlı olmayan herhangi bir kullanıcı oy vermek isterse, parmak izi modülü sisteme kimliğini algılamaz ve ekranda 'Üzgünüm Oy Kullanamazsınız' mesajı gösterilir.

if (fps. IsPressFinger())

{

fps. CaptureFinger(yanlış);

int id = fps. Identify1_N();

eğer (kimlik <200)

{

msg = "Aday 1";

oy1++;

EEPROM.write(0, oy1);

tft.setCursor(42, 170);

tft.print("Teşekkürler");

gecikme(3000);

DrawHome();

3. Sonuç:

Son adım, EEPROM hafızasından oy sayımını almak ve her üç adayın oylarını karşılaştırmaktır. En yüksek oyu alan aday kazanır. Sonuç sadece seri monitörden erişilebilir ve TFT ekranında görüntülenmez.

oy1=EEPROM.read(0);

oy2=EEPROM.read(1);

oy3=EEPROM.read(2);

eğer(oy)

{

if((oy1 > oy2 && oy1 > oy3))

{

Serial.print("Can1 Kazandı");

gecikme(2000);

}

Adım 4: Arduino Kullanarak Parmak İzi Oylama Sistemini Test Etme

Projeyi test etmek için Arduino Uno'yu dizüstü bilgisayara bağlayın ve verilen kodu yükleyin. Kod yüklendikten sonra TFT ekranı adayın adını göstermelidir. Birisi aday adına dokunduğunda, makine parmak izi tarayıcısını taramak isteyecektir. Parmak izi geçerliyse, kullanıcı oyu sayılır, ancak desenin veritabanı kayıtlarıyla eşleşmemesi durumunda oy kullanma erişimi reddedilir. Her adayın toplam oy sayısı EEPROM'da saklanacak ve en çok oyu alan aday kazanacaktır.

Umarım öğreticiyi beğenmişsinizdir ve faydalı bir şeyler öğrenmişsinizdir. Herhangi bir sorunuz varsa, lütfen aşağıdaki yorum bölümünde bize bildirin ve bu tür ilginç projeler için Instructable'da bizi takip edin.

Önerilen: