- Komponen yang Diperlukan
- Huraian Projek:
- Modul FingerPrint:
- Mengendalikan Sistem Kehadiran Berasaskan Jari Jari
- Diagram dan Penerangan Litar untuk Projek Sistem Kehadiran Cap Jari
- Penjelasan Kod:
Sistem kehadiran adalah sistem yang biasa digunakan untuk menandakan kehadiran di pejabat dan sekolah. Dari penandaan kehadiran dalam daftar kehadiran secara manual hingga penggunaan aplikasi berteknologi tinggi dan sistem biometrik, sistem ini telah bertambah baik. Dalam projek sebelumnya, kami telah merangkumi beberapa projek sistem kehadiran elektronik lain yang menggunakan mikrokontroler RFID dan AVR, 8051 dan raspberry Pi. Dalam projek ini, kami menggunakan Modul cap jari dan Arduino untuk mengambil dan menyimpan data dan rekod kehadiran. Dengan menggunakan sensor cap jari, sistem akan menjadi lebih selamat untuk pengguna. Bahagian berikut menerangkan perincian teknikal membuat sistem kehadiran biometrik berdasarkan cap jari menggunakan Arduino.
Komponen yang Diperlukan
- Arduino -1
- Modul cap jari -1
- Butang Tekan - 4
- LED -1
- Perintang 1K -2
- Perintang 2.2K -1
- Kuasa
- Menyambung wayar
- Kotak
- Buzzer -1
- 16x2 LCD -1
- Papan Roti -1
- Modul RTC -1
Huraian Projek:
Dalam rangkaian sistem kehadiran cap jari ini, kami menggunakan modul Fingerprint Sensoruntuk mengesahkan orang atau pekerja sejati dengan memasukkan input jari ke dalam sistem. Di sini kita menggunakan 4 butang tekan untuk mendaftar, Padam, Naik / Turun. Kekunci ENROLL dan DEL mempunyai tiga ciri. Kunci ENROLL digunakan untuk pendaftaran orang baru ke dalam sistem. Oleh itu, apabila pengguna ingin mendaftarkan jari baru maka dia perlu menekan kekunci ENROLL kemudian LCD meminta ID, di mana pengguna ingin menyimpan gambar cap jari. Jika pada masa ini pengguna tidak mahu melangkah lebih jauh maka dia boleh menekan kembali ENROLL untuk kembali. Kali ini kunci ENROLL berperanan sebagai kekunci Kembali, iaitu kunci ENROLL mempunyai fungsi pendaftaran dan belakang. Selain itu, kunci pendaftaran juga digunakan untuk memuat turun data kehadiran melalui monitor bersiri. Begitu juga, kunci DEL / OK juga mempunyai fungsi ganda yang sama seperti ketika pengguna mendaftarkan jari baru,maka dia perlu memilih ID jari dengan menggunakan dua kekunci lain iaitu ATAS dan BAWAH. Sekarang pengguna perlu menekan butang DEL / OK (kali ini kunci berkelakuan seperti OK) untuk meneruskan ID yang dipilih. Dan kekunci Del digunakan untuk menetapkan semula atau menghapus data dari EEPROM dari Arduino.
Modul FingerPrint:
Modul sensor cap jari menangkap gambar cetakan jari dan kemudian mengubahnya menjadi templat yang setara dan menyimpannya ke dalam ingatannya mengikut ID yang dipilih oleh Arduino. Semua proses diperintahkan oleh Arduino seperti mengambil gambar cetakan jari, menukarnya menjadi templat dan menyimpannya sebagai ID dll. Anda boleh menyemak beberapa lagi projek menggunakan modul cap jari:
Sistem keselamatan berasaskan cap jari
Mesin mengundi biometrik berasaskan cap jari
Di sini kami telah menambahkan LED Kuning yang menunjukkan bahawa modul cap jari siap mengambil gambar jari. Bel juga digunakan untuk pelbagai petunjuk. Arduino adalah komponen utama sistem ini yang bertanggungjawab untuk mengawal keseluruhan sistem.
Mengendalikan Sistem Kehadiran Berasaskan Jari Jari
Mengendalikan projek sistem kehadiran cap jari inicukup sederhana. Pertama sekali, pengguna perlu mendaftarkan cap jari pengguna dengan bantuan butang tekan. Untuk melakukan ini, pengguna perlu menekan ENROLL dan kemudian LCD meminta memasukkan ID untuk cap jari untuk menyimpannya dalam memori dengan nama ID. Jadi sekarang pengguna perlu memasukkan ID dengan menggunakan kekunci UP / BAWAH. Setelah memilih ID, pengguna perlu menekan kekunci OK (kekunci DEL). Sekarang LCD akan meminta meletakkan jari di atas modul cap jari. Sekarang pengguna perlu meletakkan jarinya di atas modul cap jari dan kemudian modul mengambil gambar jari. Sekarang LCD akan mengeluarkan jari dari modul cap jari, dan sekali lagi meminta untuk meletakkan jari lagi. Sekarang pengguna perlu meletakkan jarinya lagi dan modul mengambil gambar dan menukarnya menjadi templat dan menyimpannya dengan ID yang dipilih ke dalam memori modul cap jari.Sekarang pengguna akan didaftarkan dan dia dapat memberi makan kehadiran dengan meletakkan jari mereka di atas modul cap jari. Dengan kaedah yang sama, semua pengguna akan didaftarkan ke dalam sistem.
Sekarang jika pengguna ingin membuang atau menghapus salah satu ID atau cap jari yang tersimpan, maka dia perlu menekan kekunci DEL. Setelah kekunci hapus ditekan LCD akan meminta untuk memilih ID yang perlu dihapus. Sekarang pengguna perlu memilih ID dan tekan kekunci OK (kekunci DEL yang sama). Kini LCD akan memberitahu anda bahawa cap jari berjaya dihapuskan.
Bagaimana Kehadiran berfungsi dalam Projek Sistem Kehadiran Jari Jari ini:
Setiap kali pengguna meletakkan jarinya di atas modul cap jari maka modul sidik jari menangkap gambar jari, dan mencari jika ada ID yang dikaitkan dengan cap jari ini dalam sistem. Sekiranya ID cap jari dikesan maka LCD akan menunjukkan Kehadiran didaftarkan dan pada masa yang sama buzzer akan berbunyi bip sekali dan LED akan mati sehingga sistem siap untuk mengambil input lagi.
Bersama dengan modul cap jari, kami juga telah menggunakan modul RTC untuk Waktu dan tarikh. Masa dan tarikh berjalan berterusan dalam sistem. Oleh itu, Arduino mengambil masa dan tarikh setiap kali pengguna benar meletakkan jarinya di atas cap jari dan menyimpannya di EEPROM di slot memori yang diperuntukkan.
Di sini kami telah mencipta 5 ruang pengguna dalam sistem ini selama 30 hari. Dengan menekan butang RESET di Arduino dan kemudian segera mendaftar kunci akan bertanggungjawab memuat turun data kehadiran melalui monitor bersiri dari Memori EEPROM Arduino.
Pengurusan Memori:
Kami mempunyai memori 1023 bait di Arduino UNO di mana kami mempunyai 1018 bait untuk menyimpan data dan kami telah mengambil 5 data kehadiran pengguna selama 30 hari. Dan setiap kehadiran akan mencatatkan masa dan tarikh sehingga ini menjadi data 7-bait.
Jadi jumlah memori yang diperlukan adalah
5 * 30 * 7 = 1050 jadi di sini kita memerlukan lebih banyak 32 bait
Tetapi jika kita akan menggunakan 4 pengguna maka kita memerlukannya
4 * 30 * 7 = 840
Di sini kami telah melakukan demonstrasi projek ini dengan mengambil memori pengguna 5. Dengan ini, kita tidak akan dapat menyimpan 32 byte atau 5 rekod kehadiran pengguna ke- 5.
Anda boleh mencubanya oleh 4 pengguna dengan menukar beberapa baris dalam kod. Saya telah membuat komen dalam kod di mana perubahan diperlukan.
Diagram dan Penerangan Litar untuk Projek Sistem Kehadiran Cap Jari
Litar projek sistem kehadiran berdasarkan cap jari ini, seperti yang ditunjukkan dalam rajah di atas agak mudah. Ini memiliki Arduino untuk mengendalikan semua proses projek, tekan butang untuk mendaftar, menghapus, memilih ID dan untuk kehadiran, sebuah buzzer untuk memberi amaran, LED untuk petunjuk dan LCD untuk memberi petunjuk kepada pengguna dan menunjukkan mesej yang dihasilkan.
Seperti yang ditunjukkan dalam rajah litar, butang tekan disambungkan secara langsung ke pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) Arduino berkenaan dengan tanah Dan LED Kuning disambungkan pada Digital pin D7 Arduino berkenaan dengan tanah melalui perintang 1k. Rx dan Tx modul cap jari disambungkan secara langsung di pin Serial D2 dan D3 (Serial Perisian) Arduino. Bekalan 5v digunakan untuk menghidupkan modul cap jari yang diambil dari papan Arduino. Buzzer juga disambungkan pada pin A5. LCD 16x2 dikonfigurasikan dalam mod 4-bit dan RS, EN, D4, D5, D6, dan D7 disambungkan secara langsung di Digital pin D13, D12, D11, D10, D9, dan D8 dari Arduino.
Penjelasan Kod:
The kod sistem kehadiran cap jari untuk arduino diberikan dalam bahagian-bahagian berikutnya. Walaupun kodnya dijelaskan dengan baik dengan komen, kami membincangkan di sini beberapa bahagian penting kod tersebut. Kami menggunakan perpustakaan cap jari untuk menghubungkan modul cap jari dengan papan Arduino.
Pertama sekali, kami menyertakan fail tajuk dan menentukan pin input dan output serta menentukan makro dan deklarasi pemboleh ubah. Setelah ini, dalam fungsi persediaan, kami memberikan arahan pada pin yang ditentukan dan memulakan modul LCD dan cap jari
Selepas itu, kita harus menulis kod untuk memuat turun data kehadiran.
kekosongan persediaan () {kelewatan (1000); lcd.begin (16,2); Serial.begin (9600); pinMode (mendaftar, INPUT_PULLUP); pinMode (naik, INPUT_PULLUP); pinMode (turun, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (padanan, INPUT_PULLUP); pinMode (buzzer, OUTPUT); pinMode (indFinger, OUTPUT); digitalWrite (buzzer, RENDAH); if (digitalRead (register) == 0) {digitalWrite (buzzer, TINGGI); kelewatan (500); digitalWrite (buzzer, RENDAH); lcd.clear (); lcd.print ("Sila tunggu"); lcd.setCursor (0,1); lcd.print ("Data Downloding");
Selepas itu, kita harus menulis kod untuk membersihkan data kehadiran dari EEPROM.
jika (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Tolong Tunggu"); lcd.setCursor (0,1); lcd.print ("Menetapkan semula….."); untuk (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); untuk (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("Reset Sistem"); kelewatan (1000); }
Selepas itu, kami memulakan modul sidik jari, menunjukkan mesej selamat datang melalui LCD dan juga modul RTC yang diinvestasikan.
Selepas itu, dalam fungsi gelung, kita telah membaca waktu RTC dan memaparkannya di LCD
gelung kosong () {now = rtc.now (); lcd.setCursor (0,0); lcd.print ("Masa->"); lcd.print (now.hour (), DEC); lcd.print (':'); lcd.print (now.minute (), DEC); lcd.print (':'); lcd.print (sekarang.second (), DEC); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Tarikh->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (sekarang.tahun (), DEC);
Selepas itu, menunggu cap jari mengambil input dan membandingkan ID gambar yang ditangkap dengan ID yang disimpan. Sekiranya amatch berlaku, teruskan dengan langkah seterusnya. Dan memeriksa kunci del juga
hasil int = getFingerprintIDez (); jika (hasil> 0) {digitalWrite (indFinger, LOW); digitalWrite (buzzer, TINGGI); kelewatan (100); digitalWrite (buzzer, RENDAH); lcd.clear (); lcd.print ("ID:"); lcd.print (hasil); lcd.setCursor (0,1); lcd.print ("Tolong Tunggu…."); kelewatan (1000); kehadiran (hasil); lcd.clear (); lcd.print ("Kehadiran"); lcd.setCursor (0,1); lcd.print ("Terdaftar"); kelewatan (1000); digitalWrite (indFinger, TINGGI); kembali; }
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.
fungsi void delet () digunakan untuk memasukkan ID yang akan dihapus dan memanggil fungsi uint8_t deleteFingerprint (uint8_t id) yang akan menghapus jari dari rekod.
Fungsi Diberi digunakan untuk mengambil gambar cap jari dan mengubahnya menjadi templat dan simpan juga 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 menyimpan masa dan tarikh kehadiran di slot EEPROM yang diperuntukkan
kekosongan kehadiran (int id) {int user = 0, eepLoc = 0; jika (id == 1) {eepLoc = 0; pengguna = pengguna1 ++; } lain jika (id == 2) {eepLoc = 210; pengguna = pengguna2 ++; } lain jika (id == 3)………….
Fungsi yang diberikan digunakan untuk mengambil data dari EEPROM dan mengirim ke monitor bersiri
batal muat turun (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); jika (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++)); Cetakan bersiri (':'); jika (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++));………….