Membaca Data RFID RC522 Mifare dengan Arduino

RFID, sesuai namanya Radio Frequency Identitification, adalah identitas unik yang dapat dibaca melalui frekuensi radio. Karena melalui gelombang radio (RF), maka data ditransfer secara wireless, artinya antara RFID tag/card dengan RFID reader tidak perlu bersinggungan/menempel. Cukup didekatkan sekitar 1-5 cm, maka kartu RFID dapat dibaca oleh RFID reader.

RFID yang kita bicarakan adalah RFID yang bertipe pasif. Artinya kartu RFID tidak memiliki catu daya sendiri. Kartu RFID model ini mendapatkan catu daya dari RFID reader yang didekatkan padanya secara wireless. Dengan demikian RFID tipe pasif hanya dapat digunakan untuk jarak pendek (maksimal 5 cm). [AdSense-A]

Catatan: dalam perkembangannya, muncul RFID tag/card bertipe aktif yang memiliki catu daya sendiri. Untuk tipe RFID seperti ini dapat dibaca lebih jauh jaraknya (> 1 m), tergantung dari power level dan frekuensi yang digunakan.

Sekilas RFID RC522 Mifare

RFID RC522 adalah modul RFID produk dari NXP. Modul ini bekerja di frekuensi 13,56 MHz. Harganya relatif murah, di bawah 25 ribu. Bisa di beli di toko online RAFTECH. Modul ini memiliki beberapa pilihan komunikasi dengan controller-nya, yakni SPI, I2C maupun UART. Tinggal dipilih mana yang cocok dengan sistem Anda saat ini. Kalau misalnya pin Arduino banyak yang tidak terpakai, bisa pakai protocol SPI (setidaknya dibutuhkan 5 pin untuk bekerja dengan SPI), atau kalau ingin menghemat pin bisa pakai protokol I2C/UART (hanya butuh 2 pin). Hanya perlu diingat kalau Anda menggunakan Arduino Uno yang hanya memiliki 1 port UART, tentunya Anda harus berpikir ulang menggunakan protokol UART untuk mengendalikan modul RC522 ini (biasanya port UART Arduino Uno digunakan untuk debug program)

Catatan : SPI = Serial Peripheral Interface, I2C = Inter-Integrated Circuit, UART = Universal Asynchronous Receiver Transmitter). SPI dan I2C (atau disebut juga IIC) merupakan protokol serial sinkron, sedangkan UART merupakan serial asinkron

Spesifikasi modul RFID RC522

Tegangan : DC 3.3V
Arus : 13—26mA (idle 10-13mA, sleep : idle:80uA, Peak : 30mA)
Frequensi kerja: 13.56 MHz
Supported Cards: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
Dimensi modul : 40 mm × 60 mm
Ambient operating temperature: – 20-80 degrees centigrade
Ambient storage temperature: – 40-85 degrees centigrade
Ambient relative humidity: 5%—95%
Data Transfer Rate (SPI): Max. 10Mbit / s

Konfigurasi RFID RC522 Mifare dengan Arduino

Untuk membaca data RFID RC522 mifare dengan Arduino, koneksikan modul tersebut dengan Arduino sebagai berikut. Pada tutorial ini saya akan mencontohkan bagaimana berkomunikasi dengan modul RC522 menggunakan protokol SPI. Berikut ini konfigurasi hardware-nya.

Arduino Modul RFID RC522
9 RST
10 SDA
11 MOSI
12 MISO
13 SCK
3,3V 3,3V
GND GND

Gambar Rangkaian Arduino – RFID RC522

Berikut ini adalah rangkaian Arduino – module RFID RC522 Mifare menggunakan protokol SPI dalam berkomunikasi. Perhatikan bahwa modul ini menggunakan tegangan 3,3V ya, jangan sampai salah dikoneksikan ke 5V Arduino karena bisa menyebabkan kerusakan modul.

membaca-data-rfid-rc522-mifare-dengan-arduino

Sketch Arduino – RFID RC522 Mifare

Setelah koneksi hardware sudah dirangkai, sekarang tinggal meng-upload sketch handler untuk modul RFID RC522. Untuk mudahnya Anda dapat men-download library khusus untuk modul ini disini. Tambahkan library ini ke Arduino IDE Anda. Caranya bisa disimak di sini. Di dalam library tersebut juga ada contoh source code-nya, jadi bisa dipelajari untuk kebutuhan custom Anda. Untuk mencoba module RFID Anda, silahkan di-upload sketch ‘ReadNUID.ino’ di menu File-examples-MFRC522-ReadNUID. Sketch-nya adalah sbb :

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

#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;

byte nuidPICC[4];

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("Kode NUID RFID"));
  printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
}

void loop() {
  // cek kartu RFID baru
  if ( ! rfid.PICC_IsNewCardPresent())
    return;
  // kalo sudah pernah terbaca …
  if ( ! rfid.PICC_ReadCardSerial())
    return;

  Serial.print(F("Tipe PICC : "));
  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  Serial.println(rfid.PICC_GetTypeName(piccType));
  // cek PICC
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && 
    piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
    piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println(F("kartu Anda bukan 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("kartu RFID baru terdeteksi"));
    // 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();
}

// print kode RFID dalam bentu heksa
void printHex(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

// print kode RFID dalam bentuk desimal
void printDec(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], DEC);
  }
}

Coba upload script di atas, dan aktifkan jendela Serial Monitor Anda untuk mencoba melihat data-data RFID dalam kartu RFID Mifare classic yang diikutkan dalam paket pembelian. Teknologi RFID ini biasanya digunakan akses gedung perkantoran yang hanya mengijinkan karyawan yang terdaftar atau untuk tracking asset management. Selamat mencoba. Jika membutuhkan RFID module ini bisa dibeli di toko saya : https://www.tokopedia.com/raftech/rfid-mifare-rc522-readerwriter-module-untuk-arduino-raspberry-pi. Hanya 23.500 🙂 [AdSense-A]

0 0 votes
Article Rating

Leave a Reply

120 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Muhammad Alfhian

Bang bisa bantu, bagaimana caranya ngisi data pada RFID Mifare RC522???

Anisa Natasari

mas, saya ada error di line ke 55.
‘rfid’ was not declared in this scope

Fjar

Mas saya sudh download libry nya tapi tetep gak. Bisa gan

Bagas Marsya

Mas saya sudah mencoba semuanya sesuai contoh diatas, tidak ada error dalam sketch maupun wiring.. Namun pada saat di serial monitor tidak keluar apa-apa mas hanya keluar “Kode NUID Rfid” sajaa. mohon bantuannya mas

mklrul

saya punya juga begitu mas

Khusnulloh

Mas saya sudah scan E-KTP kok gak bisa ya?
Mohon pencerahannya!
Trims

Estu bintang

Tipe kartunya ada yang bisa ada yang enggak apa tergantung dari frekuensi modul / chip di kartu?

kidung

mas saya udah copas skecth diatas, tapi kok alarm 302 ya ?

kidung

oke pak, sudah terkendali, terimakasih tutorialnya.

ikzir

for (byte i = 0; i < mfrc522.uid.size;i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mrfc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}

mas, itu code untuk mendapatkan uid RFID sama seperti code mas print kode rfid dalam bentuk hexa. boleh dijelaskan secara detail ngga mas? tolong ya mas, teriamkasih.

surya

mas, saya muter muter blog manapun gak ketemu yg bisa login pakai 2 kartu, istilah mudah masuk pintu punya 2 kunci. ini kan hanya satu kartu, bisa gak jika untuk 2 kartu. mohon bantuanya yg mana yg perlu di edit

David Dwi Panuntun

contoh lengkapnya dong bang, saya belum bisa bisa nih

memen

Coding RFID more one card atau lebih dari 7 kartu

David Dwi Panuntun

contoh lengkap penggunaan logika AND nya dong bang buat yang lebih dari 1 kunci

Rhamest

Saya mau bertanya mas… kalo rfid card yg frekuensi.a 13,56 mhz itu awal.a kosong atau sudah ada id bawaan dari pabrik mas ? Soal.a saya punya projek mengenai rfid, tapi pas saya dekatkan ke reader.a di serial monitor tidak menampilkan apa” mas ? Mohon pencerahan.a mas… maaf mengganggu mas.

Rhamest

saya punya masalah yang sama mas kidung … yaitu 302…. itu penyelesaiannya gimana ya mas ?

Rhamest

ga jadi kak… hehehe.. udah clear

Rhamest

ga jadi kak… hehehe.. udah clear… 302 itu gara” copas… heheh

Rhamest

kak saya mau tanya, kodingan diatas udah jalan… tapi kok pas rfid card nya didekatkan ke rfid reader ga muncul apa” ya kak ? di serial monitornya. apa yang salah kak ? rfid card nya jelek atau rfid reader.a yang jelek kak ?

Syifa

Selamat pagi, mau nanya mas RFID Reader mengirimkan gelombang radio dari antenna yang ada pada RFID reader secara terus menerus kan? Sampai chip yang ada pada RFID tag menerima gelombang tersebut. Dan jika frekuensi yang terdapat pada chip dalam RFID Tag sama dengan frekuensi yang di pancarkan oleh RFID Reader, maka chip akan aktif dan mengirimkan datanya kan? Yang mau saya tanyan data yang dikirimkan berupa data analog atau digital yah? Mohon jawabannya mas. Terimakasih

Syifa

Jadi dihubungkan ke arduino menggunakan pin arduino yang digital kan mas?

Syifa

Dan juga saya masih belum mengerti tentang modulasi lewat carrier frekuensi rfid itu seperti apa. Bisa di jelaskan secara rinci gak mas? Saya butuh penjelasan itu untuk sidang nanti. Terimakasih

Syifa

Terimakasih mas atas penjelasannya. Sangat membantu.

Syifa

Maaf mas mau bertanya lagi data yang dikirim kan berupa data digital lalu di modulasi menjadi analog, setelah itu akan di demodulasi lagi untuk di kirim ke mikrokontroller, apa bener? Terimakasih

Syifa

Jadi yang untuk modulasi itu rfid tag nya bukan? Di ubah ke data analog? Maaf mas nanya mulu, saya bingung soalnya

Syifa

Terimakasih mas.. Tapi entah kenapa saya masih bingung. Data digital yang dimaksud ini data yang berisi ID uniknya bukan mas? Asal data itu adanya pada chip yang ada pada tag kan mas? Si RFID Reader hanya untuk membaca data yang di kirimkan dari chip tersebut lewat sinyal carrier analog. Data nya memang tetap data digital kan mas? Keluarannya? Maaf masih sedikit bingung mas

Syifa

Oh gitu.. Oke saya udah paham mas.. Terimakasih banyak mas.. Semoga kebaikan mas di balas oleh Allah SWT. Terimakasih banget sudah membantu saya.

Adi

mas, kalo scetchnya error di “MIFARE_Key” itu maksudnya gimana yaa? maaf baru belajar rfid

muhammad Riyansyah

mas saya mau bertanya kalau serial monitornya tidak muncul apa2, itu pengaruh dari mana ya? RFID nya atau arduino? saya sudah 2 kali ganti RFID masih tidak bisa juga. mohon bantuanya mas 🙂

Amin

Mas ajie aku mau tanya. Codingan diatas kan misalnya ditap pertama kali kebaca pas kedua dst ga kebaca, tpi klo tapnya gantian sama tag lain. ditap bergantian masih bisa ke baca ya?
ada solusi biar ga kebaca lagi walaupun di tap bergantian?
Terima kasih 🙂

Amin

diapain mas? gagal paham
codingan diatas dah saya praktikan dan hasilnya seperti diatas. Supaya ga kebaca lagi walaupun bergantian dengan tag lain gimana??

Amin

mas? baris yg 28-30 aja atau yg mana yg harus dihapus?

Amin

baris ke 28-30 aja yg dihapus?
malah ga jelas mas outputnya….

Rendra Stanfordi

Tutorial untuk menulis data rfid sudah tersedia ya mas?

Dehl berty

Bagaimana jika id cardnya yg hilang yah mas?
Apakahid card type rc522 sama semua? Atau ada pengenalan id card lagi?

Suprayitno

Mas mau tanya boleh ya.
Itu tegangan MFRC kan 3,3V.
Terus saya lihat untuk IO kok tidak pakai IO konverter(5 to 3,3V).
Apa untuk IO nya RFID tetap menggunakan level TTL? (5V).
Terimakasih sebelumnya.
Semoga Mas senantiasa mendapatkan kesehatan sekeluarga. Amin.

Suprayitno

Oke mas siap. Berarti untuk RFID RC522 IO nya acceptable 5 Volt ya. Ini mau nyoba tapi saya pastikan dulu dari pada rusak.
Terimakasih infonya Mas.

Suprayitno

Betul mas. Saya paham, tapi IO seperti En, Miso atau rst yg dari Arduino ke RFID, atau output yg dari Arduino kan 5V. Saya cari di data spec rc522 soalnya tidak dijelaskan.
Yg saya khawatirkan bukan Arduinonya. Tapi apakah RC522 tidak rusak jika IO nya langsung di konek ke Arduino yg Ouput levelnya 5V. Tapi ya jelas ndak lah. Lha wong sampeyan sudah melakukan. Hehehe..
Matur tenkiyu mas penjelasannya.

reva

Maaf mas, saya masih pemula dan ingin mengetahui mengenai RFID. saya menggunakan 2 buah RFID reader, untuk masuk dan keluar. apakah dengan 2 buah RFID reader ini dapat menggerakkan 1 solenoid dan sistem buka pintu dapat berlangsung? mohon penjelasannya. terima kasih sebelumnya.

Budi

Saya mau tanya mas.. Saya punya sensor suhu.. Misal pada jam 10 suhunya misalnya 10 derajat.. Lalu pada jam sekarang suhunya 15.. Lalu saya mau membandingkan data suhu jam sekarang dengan data suhu jam 10.. Kira2 gmana ya mas,, untuk menyimpan sementara data suhu jam 10 nya mas ?

Budi

Kaloo data yg disimpan ituu datanyaa continue nya mas ?? Selalu berubah setiap waktu.. Apakah kalo di simpan pada suatu variabel data nya juga bisaa direfesh jga mas ??

Reva

Selamat pagi, maaf mas saya mau nanya. Saya pakai mfrc522, tapi pada serial monitornya COMnya ada bacaan
“Firmware Version: 0 x FF = unknwon”
WARNING: Communication failure, is the MFRC522 properly connected?
Scan PICC to see UID, SAK, type and data blocks.

reva

Iya Mas, terima kasih banyak

azkal

Mas yg komunikasi failure itu udah ada solusinya belum ? Saya juga monitornya keluar begitu

Imam maghribi

Untuk e-KTP pakai reader yg type apa?

jan aryo

gan bisa buat tutorial implementasi RFId untutuk informasi absensi siswa kepada orang tua berbasis sms menggunakan mikrokontroler?
mohon bantuanya ya gan
maksudnya kalu si siswa absebsi di sekolah maka orang tua menerima sms bahwa anaknya masuk sekolah dan mengikuti proses belajar

thera

saya mau tanya mas.
saya sudah menulis tanggal pada kartu RFID dalam bentuk heksa di sektor 5
lalu saya ingin memangilny dengan di concat UID
bagaimana caranya ya mas?apakah bisa di bantu?

jian

mas yang saya masih error stray ‘\302’ in program saya gx ngerti apa maksudnya..masih baru dalam menggunakan arduino dan rfid mohon bantuannya mas, udh di download kok rfid librarynya n udh dimasukkan ke folder arduino library n udh ditambahkan ke arduino softwarnya.. tapi masih erorr..

gena

hallo mas mau nanya kalo IDnya ga kebaca itu kenapa ya mas? Ga mungkin kan beli sepaket frekuensinya ga sama? makasiihh

gena

wiringnya sudah benarrr yg terlihat disermon hanya FF FF FF FF FF FF gitu

Ghozalli Mashan

Mas, mau nanya kalau Tag RFID yg berbentuk kertas biasa dipakai di perpustakaan itu kenapa tidak bisa dibaca pakai reader RC522. Apanya yang berbeda ya? Thanks

Randy Orton

Maksimum data yang dapat tersimpan di EEPROM berapa RFID mas ?

reva

Maaf Mas, mau numpang tanya lagi, saya menggunakan arduino Mega, 2 buah RFID reader, modul RTC dan Modul SD Card dan Solenoid doorlock. untuk mekanisme 2 buah RFID reader dan solenoid door lock sudah berjalan, namun pada saat menggunakan modul RTC dan SD card saya mengalami kesulitian. Kira-kira ada tidak mas untuk penjelasan lebih jauh mengenai hal ini? mohon maaf apabila saya merepotkan dan terima kasih sebelumnya.

kudsi

selamat malam mas. mau tanya nih. apakah masnya mempunyai manual rfid mrc522 yang didalamnya terdapat program dan rangkaiannya terdapat di 3 cara yaitu menggunakan uart, i2c dan spi pada mrc 522?

terima kasih

Eiscell

Pertanyaanyg belum terjawab dan belum.ada solusi hingga sekarang. ..
Di serial monigor hanya tertampil software unknown .
Dan tidak ada respon apa apa saat kartu didekatkan.

Kkneksi sudah dicek berkali2 oke bahkan double cek pake multimeter terhubung.. Rfid disolder sedangkan uno pake konektor.

Apakah uno KW ada perlakuan khusus untuk komunikasi dg rfid rc522 .

Note uno kw sudah berjalan normal untuk test LED atau konttol i/o

dendy

Mas saya punya kartu Mifare 1k yg tidak bisa di gunakan di hotel teman, ternyata kartunya baru bisa di isi kalau sudah di encryp.
Nah apakah bisa mas untuk buka encryp ?

Fahrudin

Gan bagaimana caranya agar RFID rc522 dapat scan e-KTP..?
Mohon bantuannnya

daffa rizky wahyudi

kak.. saya mau nanya nih.. ini sketchny udah di coba dan berhasil..
dan contoh hasinya kayak gini
A1 B2 C3 D4 (HEX)
tapi klo hasilnya mau kayak gini A1B2C3D4 gimana yak? jadi si spasinya itu ga ada dan hasilnya nyatu ga ada yg pisah2

Rizal Sabillah

bang kalo mau nampilin data giman aya ? bukan kode nya , atau id , tapi data pribadi yang udah kesimpen , dulunya di program pakek delphi kartuya itu , apa bisa ?

Muhammad Syaiful

bang yang saya langsung muncul FF FF FF FF FF FF padahal belum scan kartu , itu salahnya di sensor atau gimana?

irvan syahroni

mas, mau tanya kan waktu beli rfid adaz dua yang kartu amaa yg gantungan, caranya buat clone biar sama gmana ya mas dari kartu ke gantungan atau dari kartu ke kartu

Ahmad

Mohon bantuannya mas,,,
Setelah RFID Tag di scan ke RFID Reader, Data yang dikirim oleh RFID Reader ke mikrokontroler data apa mas ?
Bit kah atau yg lain ?
Mohon penjelasannya mas

bangun

bang mau nanya kan kalau mau nampilin serial card id nya di dumpinfo muncul tp saya ingin menampilkan(print) serial card id nya di notepad atau di inputan gmna ya bg ?

haris

Bang, pakai smart ring kok gak bisa ya ? Padahal frekwensi sama. 13.56 Mhz

mklrul

kenapa dia langsung muncul FF FF FF FF FF FF. apa masalahnya ka?

Agus nugroho

Mas bagaimana cara perbaiki rfid yg sudah tidak terbaca…..minta info dan klu ada tempatnya dimana ya

ahmad kafabi

mau tanya kak, gimana caranya akses rfid lewat data UID yang di simpan di database, jadi bisa multi user tanpa harus masukan data UID pada program arduino..

minta tolong dengan sangat atas bantuannya….

heru subekti

Mas Ajie
saya nyoba upload sketch readnuid tapi tagnya tetap nggak keluar apa yang salh ya?

120
0
Would love your thoughts, please comment.x
()
x