Cara mengecek id kartu frid arduino
Teknologi.
Assalamu’alaikum.
Pada artikel kali ini
kita akan mambahas tentang cara dasar penggunaan dari sensor RFID, menurut
Wikipedia sensor RFID atau Pengenal Frekuensi Radio adalah sebuah
metode identifikasi dengan menggunakan sarana yang disebut label RFID
atau transponder untuk menyimpan dan mengambil data jarak jauh. Label atau
kartu RFID adalah sebuah benda yang bisa dipasang atau dimasukkan di dalam
sebuah produk, hewan atau bahkan manusia dengan tujuan
untuk identifikasi menggunakan gelombang radio. Label RFID
berisi informasi yang disimpan secara elektronik dan dapat dibaca hingga
beberapa meter jauhnya. Sistem pembaca RFID tidak memerlukan kontak
langsung seperti sistem pembaca kode batang (bahasa Inggris: barcode).
Nah itulah yang apa yang di
maksud dengan RFID, untuk tidak memperpanjang kata mukodimah lagi mari kita
langsung saja pada tutorial kali ini yaitu “Cara
mengecek id kartu frid arduino”.
baca juga
Bagian 1 Alat dan bahan
1. Arduino (Beli disini)
2. Sensor
RFID (Beli disini)
3. Papan
Percobaan (Beli disini)
* Ini adalah tautan afiliasi. mohon dukung kami dengan cara belanja dengan tautan yang tertera di atas, setiap kalai teman-teman belanja dengan tautan diatas itu sangat berarti bagi kami dan kami sangat menghargai setiap dukungan yang teman-teman berikan*
Bagian 3 Coding Program
Sebelum masuk pada
coding program sebaiknya kita download dulu library tambahan yaitu library RFID
bisa download di sini.
#include
#include
#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++) {
#include
#include
#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);
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
}
}
|
Nah setelah teman-teman
mengcopy coding di atas dan mengupload ke arduino maka kita tinggal melihat ID
RFID pada serial monitor. Semoga artikel kali ini bermanfaat untuk kita semua
seperti biasa saya akhiri dengan salam teknologi dan wasalam.
EmoticonEmoticon