- Komponen yang diperlukan:
- Modul Sensor Cetak Jari di Mesin Pengundian:
- Penjelasan Kerja:
- Penjelasan Litar:
- Penjelasan Program:
Kita semua cukup kenal dengan Mesin Pengundian Elektronik, di mana undian anda didaftarkan secara elektronik dan anda tidak perlu menggunakan kertas undi untuk memilih dalam pilihan raya. Keamanan hari ini menjadi perhatian utama dan juga perlu dipastikan bahawa seseorang tidak dapat memilih dua kali, jadi masalah ini dapat diselesaikan dengan memperkenalkan Pemungutan Suara Berdasarkan Jari Jari, di mana seseorang dapat diberi kuasa berdasarkan Cetakan jarinya. Ini juga akan menghentikan pengundian palsu. Jadi hari ini kami sedang membina Mesin Pengundian Biometrik Berasaskan FingerPrint menggunakan Arduino.
Periksa juga Projek Mesin Pengundian Elektronik kami sebelumnya menggunakan Pengawal Mikro yang berbeza:
- Mesin Pengundian Elektronik menggunakan Raspberry Pi
- Mesin Pengundian Berasaskan RFID
- Projek Mesin Pengundian Elektronik Berasaskan Mikrokontroler AVR
- Mesin Pengundian Elektronik menggunakan Arduino
Komponen yang diperlukan:
- Arduino Uno
- Modul Sensor Cetakan Jari
- Butang Tekan
- LED -2
- Perintang 1K -3
- Perintang 2.2K
- Kuasa
- Menyambung wayar
- Buzzer
- LCD 16x2
- Papan Roti
Modul Sensor Cetak Jari di Mesin Pengundian:
Finger Print Sensor Module atau Finger Print Scanner adalah modul yang menangkap gambar cetakan jari dan kemudian mengubahnya menjadi templat yang setara dan menyimpannya ke dalam ingatannya pada ID (lokasi) yang dipilih oleh Arduino. Di sini semua proses diperintahkan oleh Arduino seperti mengambil gambar cap jari, mengubahnya menjadi templat dan menyimpan lokasi dll.
Dalam Litar Mesin Pengundian FingerPrint ini, kami telah menggunakan Modul Sensor Cetak Jari untuk mengesahkan pemilih sejati dengan memasukkan input jari mereka dalam sistem. Di sini kita menggunakan 5 butang tekan untuk Memadankan, Mendaftar / kembali, Padam / OK, ATAS dan Bawah. Kekunci Enroll dan Del mempunyai dua ciri di sini. Kekunci pendaftaran digunakan untuk memasukkan kesan jari baru ke dalam sistem dan fungsi belakang juga. Bermakna apabila pengguna ingin mendaftarkan jari baru maka dia perlu menekan kekunci pendaftaran kemudian LCD meminta ID atau Lokasi tempat pengguna ingin menyimpan output cap jari. Sekarang jika pengguna tidak mahu melangkah lebih jauh maka dia boleh menekan butang mendaftar sekali lagi untuk kembali (kunci pendaftaran kali ini bertindak sebagai kunci Kembali). Bermakna kunci mendaftar mempunyai fungsi pendaftaran dan belakang. Kekunci DEL / OK juga mempunyai fungsi ganda yang sama seperti ketika pengguna memasukkan jari baru maka dia perlu memilih ID jari atau Lokasi dengan menggunakan dua kekunci lain iaitu KE ATAS DAN TURUN sekarang pengguna perlu menekan butang DEL / OK (kali ini kunci ini berkelakuan seperti OK) untuk teruskan dengan ID atau Lokasi yang dipilih. Kunci padanan digunakan untuk setiap kali pemilih ingin memilih maka dia perlu mengesahkannya terlebih dahulu untuk pemilih sejati dengan menyimpan jari pada Sensor Cetakan Jari, jika dia mengesahkan pengesahan ini maka dia dapat memilih.
Untuk mengetahui lebih lanjut mengenai cara mendaftarkan cap jari dan perkara-perkara lain, Periksa tutorial kami sebelumnya mengenai cara menghubungkan Sensor Cetakan Jari dengan Arduino, dan juga periksa Video Demo kami di akhir tutorial ini.
Penjelasan Kerja:
Kerja Sistem Pengundian Biometrik ini untuk Pilihan Raya agak rumit untuk pemula. Pertama sekali, pengguna perlu mendaftarkan jari atau pemilih (dalam kod ini had maksimum pemilih adalah 25) dengan bantuan butang tekan / kekunci. Untuk melakukan ini pengguna perlu menekan ENROLL dan kemudian LCD meminta untuk memasukkan lokasi / ID di mana jari akan menjadi kedai. Jadi sekarang pengguna perlu memasukkan ID (Lokasi) dengan menggunakan kekunci UP / BAWAH. Setelah memilih Lokasi / ID pengguna perlu menekan kekunci OK (kekunci DEL). Sekarang LCD akan meminta meletakkan jari di atas modul cap jari. Kini pengguna perlu meletakkan modul cap jari di atas jari. Kemudian LCD akan meminta untuk mengeluarkan jari dari modul cap jari dan sekali lagi meminta meletakkan jari. Kini pengguna perlu meletakkan jarinya lagi di atas modul cap jari. Sekarang modul cap jari mengambil gambar dan mengubahnya menjadi templat dan menyimpannya dengan ID terpilih ke memori modul cap jari.Sekarang pemilih akan didaftarkan dan dia boleh memilih. Dengan kaedah yang sama semua pemilih dapat didaftarkan ke dalam sistem.
Sekarang jika pengguna ingin membuang atau menghapus ID yang tersimpan maka dia perlu menekan butang DEL, setelah menekan tombol DEL, LCD akan meminta lokasi pilih bermaksud pilih ID yang akan dihapus. Sekarang pengguna perlu memilih ID dan tekan kekunci OK (kekunci DEL yang sama). Sekarang LCD akan memberitahu anda bahawa jari telah berjaya dipadam.
Proses Pengundian:
Sekarang apabila pengguna mahu memilih, dia perlu menekan kekunci dan kemudian buzzer akan berbunyi bip dan LED juga akan bersinar dan LCD akan meminta modul meletakkan jari di atas cap jari. Sekarang Arduino akan memberi anda tiga percubaan untuk meletakkan jari anda. Setelah meletakkan jari di atas modul cap jari modul cap jari menangkap gambar jari mendapati IDnya ada di dalam sistem. Sekiranya ID jari dikesan, maka LCD akan menunjukkan Pemilih yang sah. Ini bermaksud pengguna diberi kuasa untuk memilih. Dan kemudian sistem bergerak ke peringkat seterusnya untuk mengundi. Kini LED Hijau akan menyala maksudnya sekarang pengundi dapat memilih calon mereka dengan menekan kunci yang berkaitan (dari papan roti RED dalam demonstrasi ini). Sekarang jika pengundi yang sama ingin mengundi lagi maka sistem akan menunjukkannya 'Sudah Diundi' . Bermakna pengundi yang sama tidak dapat mengundi lagi dan buzzer akan berbunyi selama 5 saat. Sekiranya ada pengguna Bukan berdaftar yang mahu memilih, modul cap jari tidak akan mengesan IDnya ke dalam sistem dan LCD akan menunjukkan ' No Fingerprint Found' .
CAN1, CAN2, CAN3 di sini mewakili Calon 1, Calon 2 dan Calon 3, yang telah mencalonkan diri untuk pilihan raya.
Penjelasan Litar:
Litar Projek Mesin Pengundian Berasaskan FingerPrint ini sangat mudah yang mengandungi Arduino untuk mengawal keseluruhan proses projek, butang tekan untuk mendaftar, menghapus, memilih ID dan tujuan pengundian, bel untuk amaran, LED untuk petunjuk dan LCD 16x2 untuk instruksi Mengundi dan menunjukkan hasilnya juga. LED Kuning menunjukkan bahawa modul cap jari siap mengambil gambar jari dan LED Hijau menunjukkan bahawa sistem siap mengambil suara atau melihat hasilnya.
Butang tekan disambungkan secara langsung ke pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) dan A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Hasil) Arduino berkenaan dengan tanah. LED Kuning disambungkan pada pin Digital D7 dari Arduino berkenaan dengan tanah melalui perintang 1k dan LED Hijau disambungkan ke D6 dari Arduino dengan kaedah yang sama. Rx dan Tx modul cap jari disambungkan secara langsung di Serial pin Tx dan Rx of Arduino. Bekalan 5v digunakan untuk menghidupkan modul cap jari yang diambil dari papan Arduino. Bel juga disambungkan di A5. LCD 16x2 dikonfigurasi dalam mod 4-bit dan RS, EN, D4, D5, D6, dan D7 disambungkan secara langsung pada 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 boleh menyemak Kod lengkap di bawah. Di sini kami menerangkan fungsi utama Program Arduino.
Dalam fungsi persediaan, kami telah memberikan petunjuk pada pin yang ditentukan dan telah memulai modul LCD dan Sidik Jari.
Setelah itu, dalam fungsi loop kosong () , kami telah menunggu kunci periksa dan tekan kekunci Match untuk memulakan cap jari untuk mengambil input dan membandingkan id gambar yang ditangkap dengan ID yang disimpan. Sekiranya perlawanan berlaku, teruskan dengan langkah seterusnya.
gelung kosong () {lcd.setCursor (0,0); lcd.print ("Tekan Kekunci Padanan"); lcd.setCursor (0,1); lcd.print ("untuk memulakan sistem"); digitalWrite (indVote, RENDAH); digitalWrite (indFinger, RENDAH); if (digitalRead (match) == 0) {digitalWrite (buzzer, TINGGI); kelewatan (200); digitalWrite (buzzer, RENDAH); digitalWrite (indFinger, TINGGI); untuk (int i = 0; i <3; i ++)…………………
Fungsi checkKeys ( void check) digunakan untuk memeriksa kekunci Enroll atau DEL ditekan atau tidak dan apa yang harus dilakukan jika ditekan. Sekiranya kekunci ENROLL ditekan fungsi Enroll () dipanggil dan kekunci DEL tekan maka fungsi delete () dipanggil.
batal checkKeys () {if (digitalRead (register) == 0) {lcd.clear (); lcd.print ("Tolong Tunggu"); kelewatan (1000); sementara (digitalRead (mendaftar) == 0); Mendaftar (); } lain jika (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Tolong Tunggu"); kelewatan (1000); padam (); }}
Fungsi yang diberikan digunakan untuk memasukkan ID yang akan dihapus dan memanggil fungsi uint8_t deleteFingerprint (uint8_t id) yang akan menghapus jari dari rekod.
penghapusan kekosongan () {int count = 0; lcd.clear (); lcd.print ("Padam Jari"); lcd.setCursor (0,1); lcd.print ("Lokasi:"); sementara (1) {lcd.setCursor (9,1); lcd.print (kiraan); jika (digitalRead (atas) == 0) {hitung ++; jika (kiraan> 25) kiraan = 0; kelewatan (500); }…………..
Fungsi yang diberikan digunakan untuk menghapus cap jari dari rekod ID yang dipilih.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Sila tunggu"); p = finger.deleteModel (id); jika (p == FINGERPRINT_OK) {Serial.println ("Dihapus!"); lcd.clear (); lcd.print ("Figer Dihapus"); lcd.setCursor (0,1); lcd.print ("Berjaya"); kelewatan (1000); } yang lain {Serial.print ("Something Wrong"); lcd.clear (); lcd.print ("Sesuatu Yang Salah"); lcd.setCursor (0,1); lcd.print ("Cuba Lagi Nanti"); kelewatan (2000); pulangan p; }}
Fungsi Diberi digunakan untuk mengambil gambar cap jari dan mengubahnya menjadi templat dan menyimpannya dengan ID yang dipilih ke dalam memori modul cap jari.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID jari:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Tempat Jari"); kelewatan (2000); sambil (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Fungsi yang diberikan digunakan untuk mengundi dan menampilkan hasil:
batal Undi () {lcd.clear (); lcd.print ("Sila Letakkan"); lcd.setCursor (0,1); lcd.print ("Undi Anda"); digitalWrite (indVote, TINGGI); digitalWrite (indFinger, RENDAH); digitalWrite (buzzer, TINGGI); kelewatan (500); digitalWrite (buzzer, RENDAH); kelewatan (1000); sementara (1) {if (digitalRead (sw1) == 0)…………………
Lihat Kod Penuh dan Video demonstrasi di Bawah.