- Komponen yang Diperlukan:
- Modul Sensor Finger Print di Mesin Voting:
- Penjelasan Kerja:
- Penjelasan Sirkuit:
- Penjelasan Program:
Kita semua sudah cukup familiar dengan Electronic Voting Machines, dimana suara Anda didaftarkan secara elektronik dan Anda tidak perlu menggunakan kertas suara untuk memberikan suara dalam pemilihan. Saat ini keamanan menjadi perhatian utama dan juga perlu dipastikan bahwa seseorang tidak dapat memilih dua kali, sehingga masalah ini dapat diselesaikan dengan memperkenalkan Pemungutan Suara Berbasis Sidik Jari, di mana seseorang dapat diberi wewenang berdasarkan Sidik jarinya. Ini juga akan menghentikan pemungutan suara palsu. Jadi hari ini kami sedang membangun Mesin Voting Biometrik Berbasis FingerPrint menggunakan Arduino.
Juga periksa Proyek Mesin Voting Elektronik kami sebelumnya menggunakan Mikrokontroler yang berbeda:
- Mesin Voting Elektronik menggunakan Raspberry Pi
- Mesin Voting Berbasis RFID
- Proyek Mesin Pemungutan Suara Elektronik Berbasis Mikrokontroler AVR
- Mesin Voting Elektronik menggunakan Arduino
Komponen yang Diperlukan:
- Arduino Uno
- Modul Sensor Sidik Jari
- Tekan tombol
- LED -2
- 1K Resistor -3
- 2.2K resistor
- Kekuasaan
- Menghubungkan kabel
- Bel
- LCD 16x2
- Papan Roti
Modul Sensor Finger Print di Mesin Voting:
Finger Print Sensor Module atau Finger Print Scanner adalah modul yang menangkap gambar sidik jari dan kemudian mengubahnya menjadi template yang setara dan menyimpannya ke dalam memori pada ID yang dipilih (lokasi) oleh Arduino. Di sini semua proses diperintahkan oleh Arduino seperti mengambil gambar sidik jari, mengubahnya menjadi templat dan menyimpan lokasi dll.
Dalam Rangkaian Mesin Pemungutan Suara FingerPrint ini, kami telah menggunakan Modul Sensor Sidik Jari untuk mengotentikasi pemilih yang benar dengan mengambil input jari mereka dalam sistem. Di sini kami menggunakan 5 tombol tekan untuk Mencocokkan, Mendaftar / mundur, Hapus / OK, ATAS dan Bawah. Daftar dan tombol Del memiliki fitur ganda di sini. Tombol daftar digunakan untuk mendaftarkan jejak jari baru ke dalam sistem dan fungsi punggung juga. Berarti ketika pengguna ingin mendaftarkan jari baru maka dia perlu menekan tombol register kemudian LCD menanyakan ID atau Lokasi tempat pengguna ingin menyimpan hasil sidik jari. Sekarang jika saat ini pengguna tidak ingin melanjutkan lebih jauh maka dia dapat menekan tombol daftar lagi untuk kembali (kali ini kunci pendaftaran berfungsi sebagai tombol Kembali). Berarti kunci pendaftaran memiliki fungsi pendaftaran dan kembali. DEL / tombol OK juga memiliki fungsi ganda yang sama seperti ketika pengguna mendaftarkan jari baru maka dia harus memilih ID jari atau Lokasi dengan menggunakan dua tombol lain yaitu ATAS DAN BAWAH sekarang pengguna perlu menekan tombol DEL / OK (kali ini tombol ini berperilaku seperti OK) untuk lanjutkan dengan ID atau Lokasi yang dipilih. Kunci korek api digunakan untuk setiap kali pemilih ingin memilih maka dia harus melakukan otentikasi terlebih dahulu untuk pemilih yang sebenarnya dengan tetap menempelkan jari pada Finger Print Sensor, jika dia lolos dalam otentikasi ini maka dia dapat memilih.
Untuk mempelajari lebih lanjut tentang mendaftarkan sidik jari dan hal-hal lainnya, Periksa tutorial kami sebelumnya tentang menghubungkan Sensor Sidik Jari dengan Arduino, dan juga memeriksa Video Demo kami di akhir tutorial ini.
Penjelasan Kerja:
Pengerjaan Sistem Pemungutan Suara Biometrik untuk Pemilu ini agak rumit untuk pemula. Pertama-tama, pengguna perlu mendaftarkan jari atau pemilih (dalam kode ini batas maksimal pemilih adalah 25) dengan bantuan tombol / tombol. Untuk melakukan ini pengguna perlu menekan tombol ENROLL dan kemudian LCD meminta untuk memasukkan lokasi / ID dimana jari akan menjadi tempat penyimpanan. Jadi sekarang pengguna perlu memasukkan ID (Lokasi) dengan menggunakan tombol ATAS / BAWAH. Setelah memilih Lokasi / ID pengguna perlu menekan tombol OK (tombol DEL). Sekarang LCD akan meminta untuk menempatkan jari di atas modul sidik jari. Sekarang pengguna perlu meletakkan jarinya di atas modul sidik jari. Kemudian LCD akan meminta untuk melepaskan jari dari modul sidik jari dan sekali lagi meminta untuk menempatkan jari tersebut. Sekarang pengguna perlu meletakkan jarinya lagi di atas modul sidik jari. Sekarang modul sidik jari mengambil gambar dan mengubahnya menjadi template dan menyimpannya dengan ID yang dipilih ke dalam memori modul sidik jari.Sekarang pemilih akan terdaftar dan dia dapat memilih. Dengan metode yang sama semua pemilih dapat didaftarkan ke dalam sistem.
Sekarang jika pengguna ingin menghapus atau menghapus ID yang disimpan maka dia perlu menekan tombol DEL, setelah menekan tombol DEL, LCD akan meminta lokasi pilih berarti pilih ID yang akan dihapus. Sekarang pengguna perlu memilih ID dan tekan tombol OK (tombol DEL yang sama). Sekarang LCD akan memberi tahu Anda bahwa jari telah berhasil dihapus.
Proses Voting:
Sekarang ketika pengguna ingin memilih maka dia perlu menekan tombol korek api dan kemudian bel akan berbunyi bip dan LED juga akan menyala dan LCD akan meminta tempatkan jari di atas modul sidik jari. Sekarang Arduino akan memberi Anda tiga upaya untuk meletakkan jari Anda. Setelah meletakkan jari di atas modul sidik jari modul sidik jari menangkap gambar jari menemukan ID-nya ada di sistem. Jika ID jari terdeteksi maka LCD akan menunjukkan Pemilih yang berwenang. Artinya, pengguna berwenang untuk memilih. Dan kemudian sistem bergerak ke tahap berikutnya untuk pemungutan suara. Sekarang LED Hijau akan menyala artinya sekarang pemilih dapat memilih calon mereka dengan menekan tombol terkait (dari papan roti RED dalam demonstrasi ini). Sekarang jika pemilih yang sama ingin memilih lagi maka sistem akan menampilkannya 'Sudah Memilih' . Berarti pemilih yang sama tidak dapat memilih lagi dan buzzer akan berbunyi bip selama 5 detik. Jika ada pengguna Non-terdaftar yang ingin memilih maka modul sidik jari tidak akan mendeteksi ID-nya ke dalam sistem dan LCD akan menampilkan ' Tidak Ditemukan Sidik Jari' .
CAN1, CAN2, CAN3 disini mewakili Kandidat 1, Kandidat 2 dan Kandidat 3, yang telah mencalonkan diri dalam pemilu.
Penjelasan Sirkuit:
Rangkaian Proyek Mesin Voting Berbasis FingerPrint ini sangat sederhana yang berisi Arduino untuk mengontrol seluruh proses proyek, tombol tekan untuk pendaftaran, penghapusan, pemilihan ID dan tujuan pemungutan suara, bel untuk peringatan, LED untuk indikasi dan LCD 16x2 untuk instruksi Pilih dan tunjukkan hasilnya juga. LED kuning menunjukkan modul sidik jari siap mengambil gambar jari dan LED hijau menunjukkan bahwa sistem siap untuk melakukan pemungutan suara atau melihat hasil.
Push button terhubung langsung ke pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) and A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Hasil) dari Arduino sehubungan dengan tanah. LED Kuning terhubung ke pin Digital D7 Arduino sehubungan dengan ground melalui resistor 1k dan LED Hijau terhubung ke D6 Arduino dengan metode yang sama. Modul Sidik Jari Rx dan Tx terhubung langsung pada pin Serial Tx dan Rx Arduino. Pasokan 5v digunakan untuk menyalakan modul sidik jari yang diambil dari papan Arduino. Bel juga terhubung ke A5. LCD 16x2 dikonfigurasi dalam mode 4-bit dan RS, EN, D4, D5, D6, dan D7-nya langsung terhubung ke pin Digital D13, D12, D11, D10, D9, dan D8 dari Arduino.
Penjelasan Program:
Dalam sebuah program, kami telah menggunakan Perpustakaan Sensor Sidik Jari Adafruit untuk menghubungkan modul sidik jari dengan papan Arduino. Anda dapat memeriksa Kode lengkap di bawah ini. Di sini kami menjelaskan fungsi utama Program Arduino.
Dalam fungsi pengaturan, kami telah memberikan arahan ke pin yang ditentukan dan telah memulai modul LCD dan Sidik Jari.
Setelah itu, pada fungsi void loop () , kita menunggu tombol centang dan tekan tombol Match untuk memulai sidik jari untuk mengambil input dan membandingkan id gambar yang diambil dengan ID yang disimpan. Jika terjadi kecocokan, lanjutkan ke langkah berikutnya.
void loop () {lcd.setCursor (0,0); lcd.print ("Tekan Tombol Pencocokan"); lcd.setCursor (0,1); lcd.print ("untuk memulai sistem"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); penundaan (200); digitalWrite (buzzer, LOW); digitalWrite (indFinger, HIGH); untuk (int i = 0; i <3; i ++)…………………
Diberikan void checkKeys () fungsi digunakan untuk memeriksa Enroll atau tombol DEL ditekan atau tidak dan apa yang harus dilakukan jika ditekan. Jika tombol ENROLL ditekan, fungsi Enroll () dipanggil dan tombol DEL ditekan maka fungsi delete () dipanggil.
void checkKeys () {if (digitalRead (daftarkan) == 0) {lcd.clear (); lcd.print ("Harap Tunggu"); penundaan (1000); while (digitalRead (daftarkan) == 0); Mendaftar(); } lain jika (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Harap Tunggu"); penundaan (1000); delet (); }}
Fungsi yang diberikan digunakan untuk memasukkan ID yang akan dihapus dan memanggil fungsi uint8_t deleteFingerprint (uint8_t id) yang akan menghapus jari dari catatan.
batal delet () {int count = 0; lcd.clear (); lcd.print ("Hapus Jari"); lcd.setCursor (0,1); lcd.print ("Lokasi:"); sementara (1) {lcd.setCursor (9,1); lcd.print (hitungan); if (digitalRead (up) == 0) {count ++; jika (hitung> 25) hitung = 0; penundaan (500); }……………….
Fungsi yang diberikan digunakan untuk menghapus sidik jari dari rekaman ID yang dipilih.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Harap tunggu"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Dihapus!"); lcd.clear (); lcd.print ("Figer Dihapus"); lcd.setCursor (0,1); lcd.print ("Berhasil"); penundaan (1000); } lain {Serial.print ("Something Wrong"); lcd.clear (); lcd.print ("Sesuatu yang Salah"); lcd.setCursor (0,1); lcd.print ("Coba Lagi Nanti"); penundaan (2000); kembali p; }}
Diberikan Fungsi digunakan untuk mengambil gambar sidik jari dan mengubahnya menjadi template dan menyimpannya dengan ID yang dipilih ke dalam memori modul sidik jari.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID jari:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Letakkan Jari"); penundaan (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Fungsi yang diberikan digunakan untuk Voting dan menampilkan hasil:
void Vote () {lcd.clear (); lcd.print ("Harap Tempatkan"); lcd.setCursor (0,1); lcd.print ("Suara Anda"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); penundaan (500); digitalWrite (buzzer, LOW); penundaan (1000); sementara (1) {if (digitalRead (sw1) == 0)…………………
Lihat Kode Lengkap dan Video Demonstrasi Di Bawah Ini.