Jumat, 21 Februari 2020

Project Arduino: RFID

Identifikasi Frekuensi Radio  lebih dikenal dengan RFID (Radio Frequency Identifiction) adalah sebuah metode identifikasi dengan menggunakan sarana yang disebut label / tag RFID.  Label atau Tag ini berisi informasi yang disimpan secara elektronik,  merupakan transponder untuk menyimpan dan mengambil data jarak jauh. Label atau tag ini bisa dipasang atau dimasukkan di dalam suatu produk, hewan atau bahkan manusia dengan tujuan untuk identifikasi menggunakan gelombang radio.
RFID merupakan suatu teknologi yang memanfaatkan frekuensi radio sebagai peng-identifikasi-an terhadap suatu objek. RFID mempunyai 2 bagian komponen utama yang tak dapat dipisahkan, yaitu :
a. RFID Tag / Label
Merupakan sebuah perangkat yang akan diidentifikasi oleh RFID reader yang dapat berupa perangkat pasif maupun aktif yang berisi suatu data atau informasi elektronik. Informasi elektronik ini biasanya merupakan kombinasi angka 0-9 dalam 4 x 4 bit atau 3 x 5 bit. Perangkat pasif tidak menggunakan catu daya, sedangkan perangkat aktif wajib menggunakan catudaya. Dipasaran yang paling banyak digunakan yaitu tipe perangkat RFID reader yang pasif dikarenakan harganya yang relatif murah. RFID Tag/ Label terdapat 2 jenis yaitu Read-Write dan Only Read. komponen utama dalam RFID tag antara lain:
IC (Integrated Circuit) : berfungsi sebagai pemproses informasi, modulasi serta demodulasi sinyal RF, yang beroperasi dengan catudaya DC.
ANTENNA : mempunyai fungsi untuk mengirim maupun menerima sinyal RF.
b. RFID Reader
Berfungsi untuk membaca data dari RFID Tag. RFID Reader dibedakan menjadi 2 macam, antara lain :
Pasif : hanya bisa membaca data dari RFID tag aktif. Range penerimaan dapat menjangkau sampai 600 m.
Aktif : dapat membaca data RFID tag pasif
RFID Reader yang banyak dijual di pasaran yaitu tipe RC522 yang merupakan RFID Reader aktif, untuk membaca RFID tag pasif dan harganya cukup murah. RFID ini bekerja menggunakan frekuensi 27,120 MHZ. Ada juga yang menggunakan frekuensi 13, 560 MHZ. Namun harus diingat bahwa RFID tag dan RFID Reader merupakan sepasang RFID (berpasangan)
Untuk mengetahui seperti apa dan bagaimana RFID bekerja, kita akan membuat 2 program dalam sebuah rangkaian menggunakan Modul RFID RC522 lewat project Arduino kali ini.
Alat dan Bahan
  1. Board Arduino UNO dengan software IDE
  2. LCD / Liquid Crystal Display 16×2 dengan protocol serial I2C
  3. Module RFID RC522 (RFID Reader)
  4. Blank card, Keychain, e-toll card, ID card, e-KTP, e-Money (sebagai RFID tag / label)
  5. Buzzer
  6. Resistor 100Ω (2 buah)
  7. LED warna merah dan biru (masing-masing 1 buah)
  8. Batterai kotak 9V
  9. Kabel jumper secukupnya
  10. Papan rangkaian / Breadboard
  11. Komputer / laptop
  12. Kabel USB
Sepasang RFID
 rfid
Pin Out RFID RC522 Reader
RC522
Skema Rangkaian
Skematik  dirangkaikan seperti gambar dibawah ini :
RFID Reader
Rangkaian
  1. LCD 16×2 lewat protocol I2C ke Arduino: SCL pin → A5 / SCL Arduino, SDA pin → A4 / SDA Arduino
  2. Module RFID ke Arduino: SDA → pin 10, SCK → pin 13, MOSI  → pin 11, MISO → pin 12, RST → pin 9, VCC → pin 3,3V, untuk pin IRQ tidak digunakan.
  3. Indikator Output ke Arduino: Buzzer → pin 6, LED Biru → pin 7, LED Merah → pin 8.
  4. Pin yang lain dan Ground menyesuiakan.
  5. Rangkaian ini untuk Program-1 dan Program-2.
Untuk menunjang pemrograman dalam project RFID ini, diperlukan library secara khusus. Search google & download library-nya ya..…
1. LCD.h
2. LiquidCrystal_I2C.h
3. Wire.h
4. RFID.h
5. SPI.h
6. MFRC522.h
Program 1
Program ini digunakan untuk membaca RFID tag dan menampilkannya pada Serial Monitor di layar computer / Laptop. Dari hasil pembacaan lewat RFID Reader kita bisa mengetahui data elektronik yang tersimpan dalam RFID tag. Cobalah untuk membaca data dari Blank card, Keychain, e-toll card, ID card, e-KTP, e-Money. Data apa yang anda lihat? Mungkin tidak semuanya bisa terbaca, karena antara Reader dan Tag RFID merupakan pasangan.
Berikut listing program / sketch-nya:
// Test RFID by JZ10QPS
// Gunakan Serial Monitor Komputer untuk pembacaan
// 23 Agustus 2017
#include <MFRC522.h>
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
int led = 7;
int power = 8;
int serNum[5];
int cards[][5] = {
{48,168,87,126,177}
};
bool access = false;
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.init();
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]);
Serial.print(” “);
Serial.print(rfid.serNum[1]);
Serial.print(” “);
Serial.print(rfid.serNum[2]);
Serial.print(” “);
Serial.print(rfid.serNum[3]);
Serial.print(” “);
Serial.print(rfid.serNum[4]);
Serial.println(“”);
for(int x = 0; x < sizeof(cards); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != cards[x][i]) {
access = false;
break;
} else {
access = true;
}
}
if(access) break;
}
}
if(access){
Serial.println(“SILAHKAN MASUK !”);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
} else {
Serial.println(“TIDAK TERDAFTAR!”);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(1500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(1500);
digitalWrite(led, LOW);
}
}
rfid.halt();
}
Program 2
Ini kelanjutan dari Program-1 , dengan sedikit perubahan. Melalui program ini kita akan lanjutkan dengan suatu tindakan; “ datanya mau diapakan?”
Dalam proyek sederhana ini kita akan menggunakan kartu / key untuk menyalakan lampu, buzzer dan tampilan LCD
Berikut listing program atau sketchnya:
//RFID akses key/card/e-money
//Gunakan LCD 16×2
//23 Agustus 2017
#include <MFRC522.h>
#include <Wire.h>
#include  <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F ,2,1,0,4,5,6,7,3, POSITIVE);
#include  <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
#define Buzzer 6
RFID rfid(SS_PIN,RST_PIN);
int led = 7;
int power = 8;
int serNum[5];
int cards[][5] = {
//{48, 168, 87, 126, 177}, //card
{0,177,130,21,38}, //key
{47,193,99,38,171}, //e-money
};
bool access = false;
void setup(){
SPI.begin();
rfid.init();
pinMode (power, OUTPUT);
digitalWrite(power, HIGH);
lcd.begin(16,2);
lcd.print(“Loading ndisit..”);
delay(1000);
lcd.setCursor(0, 1);
lcd.print(“RFID by JZ10QPS”);
delay(2000);
lcd.backlight();
delay(250);
lcd.noBacklight();
lcd.print(“Selamat Datang..”);
lcd.setCursor(0, 1);
lcd.print(“Tempelkan IDCard”);
pinMode(led, OUTPUT);
pinMode(Buzzer, OUTPUT);
digitalWrite(led, LOW);
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
for(int x = 0; x < sizeof(cards); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != cards[x][i]) {
access = false;
break;
} else {
access = true;
}
}
if(access) break;
}
}
if(access){
lcd.setCursor(0, 0);
lcd.print(“ID: “);
lcd.print(rfid.serNum[0]);
lcd.print(rfid.serNum[1]);
lcd.print(rfid.serNum[2]);
lcd.print(rfid.serNum[3]);
lcd.print(rfid.serNum[4]);
lcd.println(” “);
lcd.setCursor(0, 1);
lcd.print(“SILAHKAN MASUK ! “);
digitalWrite(power, LOW);
digitalWrite(Buzzer, HIGH);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(Buzzer, LOW);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
} else {
lcd.setCursor(0, 0);
lcd.print(“upss..; maaf…….”);
lcd.setCursor(0, 1);
lcd.print(“TIDAK TERDAFTAR! “);
digitalWrite(Buzzer, HIGH);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(Buzzer, LOW);
digitalWrite(led, LOW);
delay(500);
digitalWrite(Buzzer, HIGH);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(Buzzer, LOW);
digitalWrite(led, LOW);
delay(500);
digitalWrite(Buzzer, HIGH);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
digitalWrite(Buzzer, LOW);
}
}
digitalWrite(power, HIGH);
delay(1000);
lcd.begin(16,2);
lcd.print(“Selamat Datang..”);
lcd.setCursor(0, 1);
lcd.print(“Tempelkan IDCard”);
rfid.halt();
}
Mengintegrasikan  kedua program dengan jaringan internet menjadi makin akrab dengan kehidupan dunia modern sekarang ini.
Dalam kehidupan nyata, RFID ini banyak digunakan contohnya: akses masuk gerbang toll dan pembayarannya, akses masuk bus Trans Jakarta dan pembayarannya berikut akses koridor dan halte-nya, akses gerbang suatu cluster / perumahan

Tidak ada komentar:

Posting Komentar

menangkap apel