Cara Menghubungkan RFID RC522 ke Arduino dan Penggunaanya

Temen-temen dapat tugas seputar RFID?

atau yang inigin mempelajari RFID dan cara penggunaanya?

Oke saya mulai dari definisi RFID dulu ya.

RFID mempunyai kepanjangan Radio Frequency Identification, nah dari sini sudah dapat diketahui bahwa RFID ini adalah suatu sistem yang dapat mengidentifikasi objek/benda menggunakan frekuensi radio. Dengan kata lain si RFID pastinya tanpa kabel dan penggunaanya tanpa harus ditempelkan. Ya dengan jarak 1 sampai 5 cm sebuah ID sudah bisa terbaca.

Cara Menghungkan RFID

Terdapat 2 komponen utama pada RFID yaitu sebuah tag dan pembaca tagnya (RFID reader). Tag ini berisi antena dan microchip yang ditanamkan pada sebuah objek seperti kartu dan gantungan kunci. Silahkan temen-temen yang sudah punya kartu dan gantungan kunci (biru) dilihat, diraba dan diterawang untuk lebih jelasnya. hee...pasti ada chip-chip gitu ya... Untuk RFID reader sendiri terdiri dari modul frekuensi radio, unit kontrol dan kumparan antena yang menghasilkan medan elektromagnetik.

RFID dapat digunakan menggunakan kontroler salah satunya Arduino dan RFID yang banyak dijual di pasaran yaitu RC522. Yaps.. RFID ini sangat cocok digunakan untuk pembelajaran karena harganya yang relatif murah tapi secara fungsi sama. Untuk pembeliannya sudah satu paket dengan tag kartu dan gantunganya. Namun pada modulnya kondisinya belum tersolder dengan pin header. Sedikit tips jika membeli silahkan sertakan catatan untuk meminta disolderkan dulu(jika yg belum bsa nyolder ya)...biar gampang aja. Tapi kalau beli satu aja ya...klo beli banyak minta solder...beuh...harus ngasih ongkos soldernya pastinya. Perlu diperhatikan juga RFID ini menggunakan supply tegangan 3.3V ya, jadi jangan sekali-kali menghubungkan 5V Arduino ke modulnya. Siip.

Pemanfaatan RFID terbilang sering kita jumpai pada kehidupan sehari-hari. Contohnya pada e-KTP, e-Toll, kartu absensi dan sebagainya. Sedikit info tidak semua jenis RFID dapat membaca ID dari e-KTP. Jika temen-temen mencari yang bisa membaca e-KTP silahkan cari di online shop dengan keyword RFID e-KTP. Untuk pembacaan e-KTP tidak termasuk membaca nama, nik, tanggal lahir dll melainkan hanya ID-nya saja.

Oke langsung saja untuk menghubungkan RFID ke Arduino dibutuhkan beberapa komponen sebagai berikut :

Software :

- Arduino IDE
- Library rfid-master, silahkan download.

Hardware :

- Arduino Uno R3
- Kabel USB downloader
- RFID MF RC522
- Tag kartu/gantungan kunci
- Kabel jumper male to female

Konsep :

Sebagai langkah awal, akan menampilkan ID dari tag kartu dan gantungan pada Serial Monitor

Rangkaian :
Cara Menghubungkan RFID ke Arduino
Keterangan :

- Pin 3.3V dihubungkan ke 3.3V Arduino
- Pin GND dihubungkan ke GND Arduino
- Pin RST dihubungkan ke pin 9 Arduino
- Pin MISO dihubungkan ke pin 12 Arduino
- Pin MOSI dihubungkan ke pin 11 Arduino
- Pin SCK dihubungkan ke pin 13 Arduino
- Pin SDA dihubungkan ke pin 10 Arduino

Rangkai sesuai gambar dan keterangan pin-pin di atas ya.

Persiapan Arduino IDE

==> Buka Arduino IDE
==> Tancapkan Arduno ke PC/laptop
==> Masuk ke menu Tools> pilih Board : Arduino Genuino/Uno dan jangan lupa pada Port ceklis ya, misal COM10
==> Masukkan library rfid-master yang sudah di download sebelumnya
==> Saatnya eksekusi manteman.

Eksekusi

Program di bawah merupakan program dari Example library rfid-master.
Silahkan upload programnya :

#include <SPI.h>
#include <MFRC522.h>

#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);
}
}

Jika sudah diupload, selanjutnya buka Serial monitornya dan dekatkan tag pada RFID, maka ID akan tampil pada Serial Monitor.

Demikian pembahasan kali ini, semoga bermanfaat.

0 Response to "Cara Menghubungkan RFID RC522 ke Arduino dan Penggunaanya"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel

Iklan Bawah Artikel