Isi kandungan:

Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: 4 Langkah (dengan Gambar)
Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: 4 Langkah (dengan Gambar)

Video: Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: 4 Langkah (dengan Gambar)

Video: Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: 4 Langkah (dengan Gambar)
Video: Tatanan Dunia Baru OpenAI: Bagaimana 3 Platform AI Mengidentifikasi Seluruh Internet (Worldcoin) 2024, Julai
Anonim
Mesin Pengundian Biometrik Berasaskan Jari Jari Menggunakan Arduino
Mesin Pengundian Biometrik Berasaskan Jari Jari Menggunakan Arduino

Kita semua menyedari mesin pengundian elektronik yang ada di mana pengguna harus menekan butang untuk memberikan suara. Tetapi mesin ini telah dikritik kerana marah sejak awal. Jadi pemerintah berencana untuk memperkenalkan mesin pemungut suara berdasarkan sidik jari di mana pengguna dapat memberikan suara berdasarkan kesan sidik jarinya. Sistem ini bukan sahaja akan menghilangkan kemungkinan undian pendua tetapi juga mencegah sebarang manipulasi.

Oleh itu, dalam projek ini, kita akan membina prototaip mesin pengundian Biometrik menggunakan Arduino Uno, TFT display, dan Fingerprint Sensor. Kami sebelumnya menggunakan R305 Fingerprint Sensor dengan NodeMCU untuk membina Sistem Kehadiran berasaskan Biometrik tetapi di sini kita akan menggunakan sensor cap jari GT-511C3 yang canggih dengan Arduino.

Langkah 1: Komponen yang Diperlukan untuk Membangun Mesin Pengundian Biometrik

  • Arduino Uno
  • Perisai Paparan LCD TFT 2.4"
  • Sensor Cap Jari GT-511C3

Paparan TFT 2,4 inci ini sebelumnya digunakan dengan Arduino untuk membina Sistem Pesanan Menu Restoran Berasaskan IoT.

Langkah 2: Diagram Litar untuk Mesin Pengundian Biometrik Menggunakan Arduino

Diagram Litar untuk Mesin Pengundian Biometrik Menggunakan Arduino
Diagram Litar untuk Mesin Pengundian Biometrik Menggunakan Arduino

Circuit Diagram untuk projek ini sangat mudah kerana kami hanya menghubungkan modul TFT display dan sensor cap jari dengan Arduino Uno. Pin VCC dan GND dari sensor cap jari disambungkan ke pin Arduino 5V dan GND sementara pin TX dan RX disambungkan ke pin digital 11 & 12 dari Arduino Uno.

Layar TFT LCD 2,4 adalah Arduino Shield dan dapat dipasang langsung di Arduino Uno, seperti yang ditunjukkan pada gambar di bawah. Paparan TFT mempunyai 28 pin yang sangat sesuai dengan Arduino Uno, jadi saya harus menyolder sensor cap jari di bahagian belakang Arduino.

Langkah 3: Kod Sumber dan Penjelasan Kod Langkah demi Langkah

Kod lengkap untuk Projek Sistem Pengundian Jari Jari ini menggunakan Arduino diberikan pada akhir artikel; di sini kami menerangkan beberapa fungsi penting kod tersebut.

Kod menggunakan perpustakaan SPFD5408, Serial Perisian, dan FPS_GT511C3. Perpustakaan SPFD5408 adalah versi yang diubahsuai dari Perpustakaan Adafruit yang asal. Fail perpustakaan ini boleh dimuat turun dari pautan yang diberikan di bawah:

  • Perpustakaan SPFD5408
  • Siri Perisian
  • FPS_GT511C3

Setelah memasukkan perpustakaan dan menentukan beberapa parameter penting, kita dapat masuk ke bahagian pengaturcaraan. Terdapat tiga bahagian yang terlibat dalam program ini. Salah satunya ialah membuat UI mesin pengundian, yang kedua adalah mendapatkan titik sentuh untuk butang & mengesan butang berdasarkan sentuhan dan akhirnya mengira hasilnya dan menyimpannya ke dalam ingatan Arduino.

1. Membuat UI:

Saya telah membuat UI ringkas dengan tiga butang dan nama projek. Perpustakaan paparan TFT membolehkan anda melukis Garisan, Segi Empat, Lingkaran, Huruf, String dan banyak lagi warna dan saiz yang disukai. Di sini dua butang segi empat tepat dibuat menggunakan fungsi fillRoundRect dan drawRoundRect. Fungsi sintaks untuk tft.drawRoundRect diberikan di bawah:

tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, jejari int16_t, warna uint16_t)

Di mana:

x0 = X koordinat titik permulaan segi empat tepat

y0 = Y koordinat titik permulaan segi empat tepat

w = Lebar segi empat tepat

h = Tinggi Segi Empat

jejari = Radius sudut bulat

warna = Warna Bilangan.

undian tidak sahHome ()

{

tft.fillScreen (PUTIH);

tft.drawRoundRect (0, 0, 319, 240, 8, PUTIH); // Sempadan halaman

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

tft.drawRoundRect (10, 70, 220, 50, 8, PUTIH); // Undi

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

tft.drawRoundRect (10, 160, 220, 50, 8, PUTIH); // Daftar

tft.fillRoundRect (10, 250, 220, 50, 8, EMAS); // Keputusan

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

tft.setCursor (65, 5);

tft.setTextSize (3);

tft.setTextColor (CYAN);

tft.print ("Mengundi");

tft.setCursor (57, 29);

tft.print ("Mesin");

tft.setTextSize (3);

tft.setTextColor (PUTIH);

tft.setCursor (25, 82);

tft.print ("Calon 1");

tft.setCursor (25, 172);

tft.print ("Calon 2");

tft.setCursor (25, 262);

tft.print ("Calon 3");

}

2. Mendapatkan Titik Sentuh dan Butang Mengesan:

Sekarang di bahagian kedua kod, kita akan mengesan titik sentuh butang dan kemudian menggunakan titik ini untuk meramalkan butang. Fungsi ts.getPoint () digunakan untuk mengesan sentuhan pengguna pada paparan TFT. ts.getPoint memberikan nilai ADC Raw untuk kawasan yang disentuh. Nilai RAW ADC ini kemudian ditukar menjadi Koordinat Pixel menggunakan fungsi peta.

TSPoint p = ts.getPoint ();

jika (p.z> ts.pressureThreshhold)

{

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

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

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

//Serial.print(p.x);

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

//Serial.print(p.y);

Sekarang, kerana kita mengetahui koordinat X dan Y untuk setiap butang, kita dapat meramalkan di mana pengguna menyentuh dengan menggunakan pernyataan ‘if’.

jika (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)

{

Serial.println ("Calon 1");

Apabila pemilih menekan butang calon, dia akan diminta untuk mengimbas jari pada sensor cap jari. Sekiranya ID jari dibenarkan, pemilih dibenarkan untuk memilih. Sekiranya ada pengguna Bukan berdaftar yang ingin memilih, modul cap jari tidak akan mengesan IDnya ke dalam sistem dan paparan akan menunjukkan 'Maaf Anda Tidak Dapat Mengundi'.

jika (fps. IsPressFinger ())

{

fps. CaptureFinger (palsu);

int id = fps. Identify1_N ();

jika (id <200)

{

msg = "Calon 1";

undi1 ++;

EEPROM.write (0, vote1);

tft.setCursor (42, 170);

tft.print ("Terima Kasih");

kelewatan (3000);

drawHome ();

3. Keputusan:

Langkah terakhir adalah mendapatkan kiraan undi dari memori EEPROM dan membandingkan undi ketiga-tiga calon. Calon dengan undian tertinggi menang. Hasilnya hanya dapat diakses dari monitor bersiri dan tidak akan ditampilkan di layar TFT.

vote1 = EEPROM.baca (0);

vote2 = EEPROM.baca (1);

vote3 = EEPROM.baca (2);

jika (undi)

{

jika ((vote1> vote2 && vote1> vote3))

{

Serial.print ("Can1 Wins");

kelewatan (2000);

}

Langkah 4: Menguji Sistem Pengundian Cap Jari Menggunakan Arduino

Untuk menguji projek, sambungkan Arduino Uno ke komputer riba dan muat naik kod yang diberikan. Setelah kod dimuat, paparan TFT akan memaparkan nama calon. Apabila seseorang mengetuk nama calon, mesin akan meminta untuk mengimbas pengimbas cap jari. Sekiranya cap jari adalah sah, maka undian pengguna akan dihitung, tetapi sekiranya corak tersebut tidak sesuai dengan catatan pangkalan data, akses untuk memberikan suara akan ditolak. Jumlah suara untuk setiap calon akan disimpan di EEPROM dan calon yang mempunyai jumlah undi tertinggi akan menang.

Saya harap anda menikmati tutorial dan mempelajari sesuatu yang berguna. Sekiranya anda mempunyai pertanyaan, sila beritahu kami di bahagian komen di bawah, dan juga ikuti kami di Instructable untuk lebih banyak projek menarik.

Disyorkan: