Daftar Isi:

Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino: 4 Langkah (Dengan Gambar)
Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino: 4 Langkah (Dengan Gambar)

Video: Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino: 4 Langkah (Dengan Gambar)

Video: Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino: 4 Langkah (Dengan Gambar)
Video: Arduino - cara menggunakan fingerprint arduino (full tutorial) sistem deteksi sidik jari arduino 2024, November
Anonim
Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino
Mesin Voting Biometrik Berbasis Sidik Jari Menggunakan Arduino

Kita semua mengetahui mesin pemungutan suara elektronik yang ada di mana pengguna harus menekan tombol untuk memberikan suara. Tapi mesin ini telah dikritik karena tempering sejak awal. Oleh karena itu, pemerintah berencana untuk memperkenalkan mesin pemungutan suara berbasis sidik jari di mana pengguna dapat memberikan suara berdasarkan jejak sidik jarinya. Sistem ini tidak hanya akan menghilangkan kemungkinan suara ganda tetapi juga mencegah segala bentuk manipulasi.

Jadi dalam proyek ini, kita akan membangun prototipe mesin voting Biometrik menggunakan Arduino Uno, layar TFT, dan Sensor Sidik Jari. Kami sebelumnya menggunakan Sensor Sidik Jari R305 dengan NodeMCU untuk membangun Sistem Absensi berbasis Biometrik tetapi di sini kami akan menggunakan sensor sidik jari GT-511C3 canggih dengan Arduino.

Langkah 1: Komponen yang Diperlukan untuk Membangun Mesin Voting Biometrik

  • Arduino Uno
  • Perisai Layar LCD TFT 2,4”
  • Sensor Sidik Jari GT-511C3

Layar TFT 2,4 inci ini sebelumnya digunakan dengan Arduino untuk membangun Sistem Pemesanan Menu Restoran Berbasis IoT.

Langkah 2: Diagram Sirkuit untuk Mesin Voting Biometrik Menggunakan Arduino

Diagram Sirkuit untuk Mesin Voting Biometrik Menggunakan Arduino
Diagram Sirkuit untuk Mesin Voting Biometrik Menggunakan Arduino

Diagram Sirkuit untuk proyek ini sangat sederhana karena kami hanya menghubungkan layar TFT dan modul sensor sidik jari dengan Arduino Uno. Pin VCC dan GND dari sensor sidik jari terhubung ke pin 5V dan GND Arduino sedangkan pin TX dan RX terhubung ke pin digital 11 & 12 Arduino Uno.

Layar LCD TFT 2,4” adalah Arduino Shield dan dapat langsung dipasang pada Arduino Uno, seperti yang ditunjukkan pada gambar di bawah ini. Layar TFT memiliki 28 pin yang sangat cocok dengan Arduino Uno, jadi saya harus menyolder sensor sidik jari di bagian belakang Arduino.

Langkah 3: Kode Sumber dan Penjelasan Kode Langkah demi Langkah

Kode lengkap untuk Proyek Sistem Voting Sidik Jari ini menggunakan Arduino diberikan di akhir artikel; di sini kami menjelaskan beberapa fungsi penting dari kode.

Kode menggunakan pustaka SPFD5408, Software Serial, dan FPS_GT511C3. Pustaka SPFD5408 adalah versi modifikasi dari Pustaka Adafruit asli. File-file perpustakaan ini dapat diunduh dari tautan yang diberikan di bawah ini:

  • Perpustakaan SPFD5408
  • Serial Perangkat Lunak
  • FPS_GT511C3

Setelah memasukkan library dan mendefinisikan beberapa parameter penting, kita bisa masuk ke bagian pemrograman. Ada tiga bagian yang terlibat dalam program ini. Salah satunya adalah membuat UI mesin pemungutan suara, kedua mendapatkan titik sentuh untuk tombol & mendeteksi tombol berdasarkan sentuhan dan akhirnya menghitung hasilnya dan menyimpannya ke dalam memori Arduino.

1. Membuat UI:

Saya telah membuat UI sederhana dengan tiga tombol dan nama proyek. Pustaka tampilan TFT memungkinkan Anda menggambar Garis, Persegi Panjang, Lingkaran, Karakter, String, dan banyak lagi warna dan ukuran pilihan. Di sini dua tombol persegi panjang dibuat menggunakan fungsi fillRoundRect dan drawRoundRect. Sintaks untuk fungsi tft.drawRoundRect diberikan di bawah ini:

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

Di mana:

x0= koordinat X titik awal persegi panjang

y0= Y koordinat titik awal persegi panjang

w = Lebar persegi panjang

h = Tinggi Persegi Panjang

radius = Jari-jari sudut bulat

color = Warna Persegi Panjang.

batal drawHome()

{

tft.fillScreen(PUTIH);

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

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

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

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

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

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

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

tft.setCursor(65, 5);

tft.setTextSize(3);

tft.setTextColor(CYAN);

tft.print("Pemungutan Suara");

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 Tombol Deteksi:

Sekarang di bagian kedua kode, kami akan mendeteksi titik sentuh tombol dan kemudian menggunakan titik ini untuk memprediksi tombol. Fungsi ts.getPoint() digunakan untuk mendeteksi sentuhan pengguna pada layar TFT. ts.getPoint memberikan nilai Raw ADC untuk area yang disentuh. Nilai RAW ADC ini kemudian dikonversi ke Pixel Coordinates menggunakan fungsi peta.

TSPoint p = ts.getPoint();

if (p.z > ts.pressureThreshold)

{

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, karena kita mengetahui koordinat X dan Y untuk setiap tombol, kita dapat memprediksi di mana pengguna telah menyentuh dengan menggunakan pernyataan 'jika'.

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

{

Serial.println("Calon 1");

Ketika pemilih menekan tombol kandidat, dia akan diminta untuk memindai jari pada sensor sidik jari. Jika ID jari diotorisasi maka pemilih diperbolehkan untuk memilih. Jika ada pengguna yang tidak terdaftar ingin memilih maka modul sidik jari tidak akan mendeteksi ID-nya ke dalam sistem dan layar akan menampilkan 'Maaf Anda Tidak Dapat Memilih'.

jika (fps. IsPressFinger())

{

fps. CaptureFinger(salah);

int id = fps. Identify1_N();

jika (id <200)

{

msg = "Calon 1";

suara1++;

EEPROM.write(0, suara1);

tft.setCursor(42, 170);

tft.print("Terima Kasih");

penundaan(3000);

drawHome();

3. Hasil:

Langkah terakhir adalah mendapatkan penghitungan suara dari memori EEPROM dan membandingkan suara dari ketiga kandidat. Kandidat dengan suara terbanyak menang. Hasilnya hanya dapat diakses dari monitor serial dan tidak akan ditampilkan di layar TFT.

vote1=EEPROM.read(0);

vote2=EEPROM.read(1);

vote3=EEPROM.read(2);

jika (pilih)

{

if((suara1 > suara2 && suara1 > suara3))

{

Serial.print("Bisa1 Menang");

penundaan(2000);

}

Langkah 4: Menguji Sistem Voting Sidik Jari Menggunakan Arduino

Untuk menguji proyek, sambungkan Arduino Uno ke laptop dan unggah kode yang diberikan. Setelah kode diunggah, tampilan TFT akan menampilkan nama kandidat. Ketika seseorang mengetuk nama kandidat, mesin akan meminta untuk memindai pemindai sidik jari. Jika sidik jari valid, maka suara pengguna akan dihitung, tetapi jika polanya tidak sesuai dengan catatan database, akses untuk memberikan suara akan ditolak. Jumlah total suara untuk setiap kandidat akan disimpan di EEPROM dan kandidat yang memiliki jumlah suara terbanyak akan menang.

Saya harap Anda menikmati tutorial dan belajar sesuatu yang bermanfaat. Jika Anda memiliki pertanyaan, beri tahu kami di bagian komentar di bawah, dan juga ikuti kami di Instructable untuk proyek menarik lainnya.

Direkomendasikan: