Sistem Kehadiran Waktu Arduino dengan RFID

Dalam proyek ini Anda akan membangun sistem waktu kehadiran dengan MFRC522 RFID Reader dan Arduino. Ketika Anda menggesek tag RFID di sebelah pembaca RFID, itu menghemat UID pengguna dan waktu dalam kartu SD. Itu juga menunjukkan apakah Anda terlambat atau dalam waktu sesuai dengan jam dan menit yang telah ditentukan sebelumnya.

Pertama, tonton video intro di bawah

Tinjauan Proyek

Sebelum memulai, penting untuk tata letak fitur-fitur utama proyek:

  • Berisi pembaca RFID yang membaca tag RFID;
  • Pengaturan kami memiliki modul jam waktu nyata untuk melacak waktu;
  • Ketika pembaca RFID membaca tag RFID, itu menghemat waktu saat ini dan UID dari tag dalam kartu SD;
  • Arduino berkomunikasi dengan kartu SD menggunakan modul kartu SD;
  • Anda dapat mengatur waktu check-in untuk membandingkan apakah Anda tepat waktu atau terlambat ;
  • Jika Anda tepat waktu, LED hijau menyala, jika Anda terlambat, LED merah menyala;
  • Sistem ini juga memiliki bel yang berbunyi bip saat tag dibaca.

Bagian Diperlukan [19659004]

Berikut daftar komponen yang diperlukan untuk proyek ini:

Anda dapat menggunakan tautan sebelumnya atau langsung ke MakerAdvisor.com/tools untuk menemukan semua bagian untuk proyek Anda dengan harga terbaik!

Pembaca RFID MFRC522

Dalam proyek ini kami menggunakan pembaca RFID MFRC522 dan itulah yang kami sarankan untuk Anda untuk mendapatkan (walaupun proyek ini mungkin juga kompatibel dengan pembaca RFID lainnya).

RFID berarti r adio- f permintaan id entifikasi. RFID menggunakan bidang elektromagnetik untuk mentransfer data jarak pendek dan berguna untuk mengidentifikasi orang, melakukan transaksi, dll.

Sistem RFID membutuhkan tag dan pembaca:

  • Tag dilampirkan pada objek untuk diidentifikasi, dalam contoh ini kita memiliki gantungan kunci dan kartu elektromagnetik. Beberapa toko juga menggunakan tag RFID di label produk mereka untuk mengidentifikasi mereka. Setiap tag memiliki identifikasi uniknya sendiri (UID).

  • Pembaca adalah penerima radio pemancar dua arah yang mengirimkan sinyal ke tag dan membaca responsnya.

Pembaca RFID MFRC522 bekerja pada 3.3V dan dapat menggunakan komunikasi SPI atau I2C. Perpustakaan yang akan kita gunakan untuk mengontrol pembaca RFID hanya mendukung SPI, jadi itulah protokol komunikasi yang akan kita gunakan.

Untuk mempelajari lebih lanjut tentang pembaca RFID dengan Arduino baca: Akses Keamanan menggunakan Pembaca RFID MFRC522 dengan Arduino

Menginstal perpustakaan MFRC522

Proyek ini menggunakan perpustakaan MFRC522.h untuk mengontrol pembaca RFID. Pustaka ini tidak terpasang secara default di Arduino IDE, jadi Anda harus menginstalnya. Pergi ke Sketsa > Sertakan perpustakaan > Kelola perpustakaan dan cari MFRC522 atau ikuti langkah-langkah berikut:

  1. Klik di sini untuk mengunduh perpustakaan MFRC522 . Anda harus memiliki folder .zip di folder Unduhan Anda.
  2. Buka zip folder .zip dan Anda akan mendapatkan folder RFID-master
  3. Ganti nama folder Anda dari RFID-master ke RFID
  4. Pindahkan folder RFID ke folder pustaka instalasi IDE Arduino Anda
  5. Akhirnya, buka kembali IDE Arduino Anda

MFRC522 PIN reader pinout

The tabel berikut memperlihatkan pinout pembaca untuk referensi di masa mendatang:

PIN KABEL KE ARDUINO UNO
SDA Digital 10
SCK Digital 13
Digital 11 [19659038] MISO Digital 12
IRQ Jangan sambungkan
GND GND
RST Digital 9
DigitalV 3.3V 3.3V : papan Arduino yang berbeda memiliki pin SPI yang berbeda. Jika Anda menggunakan papan Arduino lain, periksa dokumentasi Arduino .

Modul kartu SD

Ketika tag dibaca, UID dan waktunya disimpan pada kartu SD sehingga Anda dapat menyimpannya melacak check in. Ada berbagai cara untuk menggunakan kartu SD dengan Arduino. Dalam proyek ini kami menggunakan modul kartu SD yang ditunjukkan pada gambar di bawah – ini bekerja dengan kartu micro SD.

Ada model yang berbeda dari pemasok yang berbeda, tetapi mereka semua bekerja dengan cara yang sama, menggunakan protokol komunikasi SPI. Untuk berkomunikasi dengan kartu SD, kita akan menggunakan perpustakaan yang disebut SD.h yang sudah terpasang di Arduino IDE secara default.

Untuk mempelajari lebih lanjut tentang modul kartu SD dengan Arduino dibaca : Panduan Modul Kartu SD dengan Arduino

pinout modul kartu SD

Tabel berikut ini menunjukkan pinout modul kartu SD untuk referensi di masa mendatang:

PIN PIN KABEL KE ARDUINO UNO
VCC 3.3V
CS Digital 4
MOSI Digital 11
CLK Digital 13
MISO Digital 12
GND
GND [19659052] Catatan : papan Arduino yang berbeda memiliki pin SPI yang berbeda. Jika Anda menggunakan papan Arduino lain, periksa dokumentasi Arduino .

Mempersiapkan kartu SD

Langkah pertama saat menggunakan modul kartu SD dengan Arduino adalah memformat kartu SD sebagai FAT16 atau FAT32 . Ikuti instruksi di bawah ini.

1) Untuk memformat kartu SD, masukkan di komputer Anda. Pergi ke My Computer dan klik kanan pada kartu SD. Pilih Format seperti yang ditunjukkan pada gambar di bawah ini.

2) Sebuah jendela baru muncul. Pilih FAT32 tekan Mulai untuk menginisialisasi proses pemformatan dan ikuti instruksi pada layar.

Menguji modul kartu SD

(Ini langkah ini opsional. Ini adalah langkah tambahan untuk memastikan modul kartu SD berfungsi dengan benar.)

Masukkan kartu SD yang diformat ke dalam modul kartu SD.

Sambungkan modul kartu SD ke Arduino sebagai ditunjukkan dalam skema sirkuit di bawah ini atau periksa tabel pinout.

Catatan: tergantung pada modul yang Anda gunakan, pin dapat ditempatkan di lokasi yang berbeda.

Mengunggah sketsa CardInfo

Untuk memastikan semuanya terhubung dengan benar dan kartu SD berfungsi dengan baik, di jendela Arduino IDE buka File > > Contoh > ] SD > CardInfo .

Unggah kode ke papan Arduino Anda. Pastikan Anda memiliki papan kanan dan port COM yang dipilih.

Buka Serial Monitor dengan kecepatan baud 9600 dan informasi kartu SD akan ditampilkan. Jika semuanya berfungsi dengan baik, Anda akan melihat pesan serupa pada monitor serial.

Modul RTC (Real Time Clock)

Untuk melacak waktu, kami menggunakan modul RTC SD1307 . Namun, proyek ini berfungsi baik dengan DS3231, yang sangat mirip. Satu perbedaan utama di antara mereka adalah akurasi. DS3231 jauh lebih akurat daripada DS1307. Gambar di bawah ini menunjukkan model SD1307.

Modul ini memiliki baterai cadangan yang terpasang. Ini memungkinkan modul untuk mempertahankan waktu, bahkan ketika tidak sedang dinyalakan.

Modul ini menggunakan komunikasi I2C dan kami akan menggunakan perpustakaan RTCLib.h untuk membaca waktu dari RTC. [19659014] Untuk mempelajari lebih lanjut tentang DS1307 real time clock dengan Arduino, baca: Panduan untuk Real Time Clock (RTC) Modul dengan Arduino (DS1307 dan DS3231)

pinout modul RTC

Tabel berikut menunjukkan RTC modul pinout untuk referensi di masa mendatang:

PIN KABEL KE ARDUINO UNO
SCL A5
SDA A4
VCC 5V (periksa datasheet modul Anda)
] GND GND

Catatan : papan Arduino yang berbeda memiliki pin I2C yang berbeda. Jika Anda menggunakan papan Arduino lain, periksa dokumentasi Arduino .

Memasang perpustakaan RTCLib

Untuk menginstal RTCLib.h buka Sketsa ]> Sertakan perpustakaan > Kelola perpustakaan dan cari RTCLib atau ikuti langkah-langkah selanjutnya:

  1. Klik di sini untuk mengunduh perpustakaan RTCLib . Anda harus memiliki folder .zip di folder Unduhan Anda.
  2. Buka zip folder .zip dan Anda akan mendapatkan folder RTCLib-master
  3. Ubah nama folder Anda dari RTCLib-master ke RTCLib
  4. Pindahkan folder RTCLib ke folder pustaka instalasi IDE Arduino Anda
  5. Akhirnya, buka kembali Arduino IDE

Skema untuk sirkuit ini proyek ditunjukkan dalam skema rangkaian di bawah ini.

Di sirkuit ini ada perangkat 3.3V dan 5V, pastikan Anda memasang dengan benar. Selain itu, jika Anda menggunakan modul yang berbeda, periksa voltase yang disarankan sebelum menyalakan sirkuit. Kawat satu modul pada satu waktu dan ikuti tabel pinout jika diperlukan.

Begini cara sirkuit Anda akan terlihat setelah dirakit.

Kode

Unggah kode berikut ke Arduino Anda. Pastikan Anda telah memilih Board dan COM Port yang tepat.

Catatan: periksa ulang apakah Anda telah menginstal perpustakaan yang diperlukan.

Mengimpor perpustakaan

Kode dimulai dengan mengimpor perpustakaan yang diperlukan . The MFRC522 untuk pembaca RFID, SD untuk modul kartu SD dan RTClib untuk RTC. Anda juga menyertakan perpustakaan SPI untuk komunikasi SPI dengan modul RFID dan kartu SD.

 #include  // untuk RFID
#include  // untuk modul RFID dan kartu SD
#include  // untuk kartu SD
#include  // untuk RTC 

Mempersiapkan pembaca RFID, kartu SD dan RTC

Kemudian, Anda menentukan pin untuk pembaca RFID dan modul kartu SD. Untuk RFID, pin SCK ( CS_RFID ) terhubung ke pin 10 dan pin RST ( RST_RFID ) terhubung ke pin 9. Untuk modul kartu SD, pin Pilih Chip ( CS_SD ) terhubung ke pin 4.

 // tentukan pin untuk RFID
#define CS_RFID 10
#define RST_RFID 9
// tentukan pin pilih chip untuk modul kartu SD
#define CS_SD 4 

Anda membuat File bernama myFile untuk menyimpan data Anda.

 File myFile; 

Kemudian, Anda membuat instance untuk RFID dan untuk RTC:

 // Contoh kelas untuk RFID
MFRC522 rfid (CS_RFID, RST_RFID);

// Contoh kelas untuk RTC
RTC_DS1307 rtc; 

Variabel

Anda membuat variabel string uidString yang berisi tag UID.

 String uidString; 

Baris berikut membuat variabel untuk menentukan waktu dan jam cek dan waktu menit. Dalam hal ini, kami mendefinisikan waktu check-in hingga pukul 09:00 pagi. Anda dapat mengubah waktu check-in dengan mengubah nilai-nilai ini:

 // Tentukan waktu check-in
const int checkInHour = 9;
const int checkInMinute = 5; 

Anda juga perlu membuat variabel untuk menahan waktu check-in pengguna. Variabel-variabel ini akan menghemat waktu tag UID tertentu dibaca. Variabel-variabel berikut ini menahan jam check in dan menit check in.

 // Variabel untuk menahan check-in pengguna
int userCheckInHour;
int userCheckInMinute; 

Akhirnya Anda mengaitkan nomor pin dengan LED dan buzzer.

 // Pin untuk LED dan buzzer
const int redLED = 6;
const int greenLED = 7;
const int buzzer = 5; 

setup ()

Selanjutnya, dalam pengaturan () Anda mengatur LED dan buzzer sebagai output.

 // Tetapkan LED dan buzzer sebagai output.
pinMode (redLED, OUTPUT);
pinMode (hijau LED, OUTPUT);
pinMode (buzzer, OUTPUT); 

Setelah itu, setiap modul diinisialisasi.

Fungsi

Dalam kode ini Anda membuat 3 fungsi: readRFID () logCard () dan memverifikasiCheckIn ().

Fungsi readRFID () membaca tag UID, menyimpannya dalam variabel uidString dan menampilkannya pada monitor serial. Juga, ketika membaca tag, buzzer mengeluarkan bunyi bip.

Fungsi logCard () membuat file di kartu SD Anda yang disebut DATA.txt . Anda dapat mengedit nama file, jika Anda mau, pada baris berikut.

 myFile = SD.open (" DATA.txt ", FILE_WRITE); 

Kemudian, ia menyimpan uidString (yang memegang UID tag) pada kartu SD dan waktu saat ini.

 myFile.print (uidString); 
 // Hemat waktu pada kartu SD
DateTime sekarang = rtc.now ();
myFile.print (now.year (), DEC);
myFile.print ('/');
myFile.print (now.month (), DEC);
myFile.print ('/');
myFile.print (now.day (), DEC);
myFile.print (',');
myFile.print (now.hour (), DEC);
myFile.print (':');
myFile.print (now.minute (), DEC); 

Ini juga menyimpan cek pengguna dalam jam dan menit dalam variabel berikut untuk perbandingan lebih lanjut dengan waktu check-in yang telah ditentukan sebelumnya.

 userCheckInHour = now.hour () ;
userCheckInMinute = now.minute (); 

The memverifikasiCheckIn () fungsi hanya membandingkan pengguna memeriksa waktu dengan waktu yang telah ditentukan dalam jam dan memberikan umpan balik sesuai. Jika pengguna terlambat, LED merah menyala; jika pengguna tepat waktu, LED hijau menyala.

loop ()

Setelah mempelajari fungsi yang dibuat, loop () cukup mudah dipahami.

Pertama, kode memeriksa apakah tag RFID digesek. Jika ya, itu akan membaca UID RFID, mencatat UID dan waktu ke kartu SD, dan kemudian akan memberikan umpan balik kepada pengguna dengan menyalakan salah satu LED.

Meraih data Kartu SD

Ke periksa data yang disimpan pada kartu SD, lepaskan dari modul kartu SD dan masukkan di komputer Anda.

Buka folder kartu SD dan Anda harus memiliki file bernama DATA.txt.

[19456569]

] Buka file menggunakan editor teks. Anda akan memiliki sesuatu sebagai berikut:

Perhatikan bahwa setiap nilai dipisahkan oleh koma. Ini membuatnya lebih mudah jika Anda ingin mengimpor data ini ke Excel, Google Sheets, atau perangkat lunak pemrosesan data lainnya.

Membungkus

Dalam proyek ini, Anda telah belajar cara menggunakan pembaca kartu RFID dan modul kartu SD. dengan Arduino. Anda dapat memodifikasi proyek ini untuk kebutuhan Anda sendiri atau Anda dapat menggunakan fungsi-fungsi yang dibuat di sini di proyek-proyek lain yang membutuhkan pencatatan data atau membaca tag RFID.

Anda dapat mengambil proyek ini lebih jauh dan menambahkan tampilan untuk memberikan umpan balik tambahan kepada pengguna. Anda dapat mengaitkan nama dengan masing-masing UID dan menampilkan nama pengguna saat tag dibaca. Anda mungkin ingin melihat beberapa tutorial dengan Arduino menggunakan display:

Ini adalah kutipan dari kursus kami “ Proyek Langkah-demi-Langkah Arduino “. Jika Anda menyukai Arduino dan Anda ingin membuat lebih banyak proyek, kami sarankan untuk mengunduh kursus kami: Proyek Langkah-demi-Langkah Arduino .


Sumber Daya yang Disarankan

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright © All rights reserved. | Magazine 7 by AF themes.