Pada artikel ini akan membahas tentang cara membaca RFID TAG pada
Modul RFID dengan Arduino UNO
RFID
Adalah :
RFID
adalah singkatan dari Radio Frequency Identification. RFID Card adalah sebuah
kartu untuk pengenalan di mesin akses elektronik seperti mesin akses kontrol
dan mesin absensi. Untuk penggunaan RFID Card juga sudah sangat bervariasi dan
bisa digunakan untuk keperluan apa saja yang membutuhkan pengenalan mulai dari
absensi atau member dll.
- RFID menggunakan sistem identifikasi dengan gelombang radio. Untuk itu minimal dibutuhkan dua buah perangkat, yaitu yang disebut TAG dan READER. Saat pemindaian data, READER membaca sinyal yang diberikan oleh RFID TAG.
- RFID TAG merupakan alat yang menempel pada objek yang akan di gunakan sebagai identifikasi oleh RFID READER
- RFID READER yaitu alat yang digunakan untuk membaca RFID TAG supaya keduanya saling tehubung
Untuk mengakses Modul RFID dengan arduino uno maka dibutuhkan :
- Modul RFID
- Arduino UNO
- Kabel Jumper
Keterangan :
Pin Arduino UNO
Pin Modul RFID
- Pin 3V3 3.3V
- GND GND
- Pin 10 SDA
- Pin 11 MOSI
- Pin 12 MISO
- Pin 13 SCK
- Pin 5 RST
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
MFRC522::MIFARE_Key key;
// Init array that will store new NUID
byte nuidPICC[3];
void setup() {
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
Serial.println(F("This code scan the MIFARE Classsic NUID."));
Serial.print(F("Using the following key:"));
printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
}
void loop() {
// Look for new cards
if ( ! rfid.PICC_IsNewCardPresent())
return;
// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;
Serial.print(F("PICC type: "));
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
Serial.println(rfid.PICC_GetTypeName(piccType));
// Check is the PICC of Classic MIFARE type
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F("Your tag is not of type MIFARE Classic."));
return;
}
if (rfid.uid.uidByte[0] != nuidPICC[0] ||
rfid.uid.uidByte[1] != nuidPICC[1] ||
rfid.uid.uidByte[2] != nuidPICC[2] ||
rfid.uid.uidByte[3] != nuidPICC[3] ) {
Serial.println(F("A new card has been detected."));
// Store NUID into nuidPICC array
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i];
}
Serial.println(F("The NUID tag is:"));
Serial.print(F("In hex: "));
printHex(rfid.uid.uidByte, rfid.uid.size);
Serial.println();
Serial.print(F("In dec: "));
printDec(rfid.uid.uidByte, rfid.uid.size);
Serial.println();
}
else Serial.println(F("Card read previously."));
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
}
/**
* Helper routine to dump a byte array as hex values to Serial.
*/
void printHex(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
/**
* Helper routine to dump a byte array as dec values to Serial.
*/
void printDec(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], DEC);
}
}
Cara
kerja program diatas yaitu buka serial monitor pada arduino ide dan dekatkan
RFID TAG ke RFID Reader, lihat di serial monitor akan keluar serial number dari
RFID TAG yang didekatkan tadi, ini merupakan program untuk mengetahui
frekuensi kartu yang terbaca oleh modul yang akan digukana sebagai nomor atau
kode dalam mengakses modul rfid reader yang mana nomer tersebut nantinya akan
dimasukkan kedalam program pembacaan rfid, misalnya pada absen karyawan,hanya kartu rfid yang telah terdaftar saja yang
dapat melakukan absensi, jadi kesimpulannya program diatas hanya sebagai
pembaca frekuensi atau untuk mengetahui nomor dari kartu yang di tap ke modul
rfid reader, sekian dari pembahasan pada artikel kali ini, kita lanjut pada
artikel berikutnya, semoga bermanfaat dan selamat mencoba...