pada pertemuan kali ini kita membahas tentang RFID dan magnetic door lock
RFID (Radio Frequency Indentification)
RFID
adalah proses identifikasi frekuensi gelombang radio. RFID menggunakan frekuensi radio untuk membaca informasi dari sebuah alat yang disebut RFID Tag Card.
RFID
merupakan
teknologi
identifikasi
yang fleksibel, mudah
digunakan dan
sangat cocok untuk oprasi otomatis.
RFID mengkombinasikan keunggulan yang
tidak tersedia pada teknologi
identifikasi yang
lain. RFID dapat
disediakan
dalam alat yang
hanya dapat dibaca
saja ( Read Only ) atau dibaca dan ditulis ( Read/Write ), tidak memerlukan kontak langsung maupun jalur
cahaya untuk dapat
beroprasi, dapat
berfungsi pada berbagai variasi kondisi lingkungan, dan menyediakan tingkat integrasi data yang tinggi.
Secara
umum RFID terdiri
dari empat bagian, yaitu:
1. RFID Reader
Alat yang
kompatibel dengan Tag Card RFID yang berkomunikasi secara wireless
dengan Tad Card.
2. RFID Tag Card
Alat yang menyimpan informasi untuk identifikasi obyek.RFID Tag Card juga sering disebut transponder.
3. Antena
Alat untuk
mentransmisikan sinyal
RF
antara RFID Reader dengan RFID Tag Card.
4. Software aplikasi
Untuk
memproses dan menampilkan
data yang dimiliki suatu RFID Tag Card yang telah dibaca oleh RFID Reader pada sebuah alat seperti misalnya sebuah
LCD.
Magnetic Switch
Prinsip kunci magnetik digital
adalah penggunaan elektromagnetis untuk mengunci pintu ketika ia memiliki
energi. Kekuatan untuk memegang harus kolinear dengan beban, dan kunci dan
pelat angker harus saling berhadapan untuk mencapai operasi yang optimal. Kunci
magnetik bergantung pada beberapa konsep dasar elektromagnetisme. Pada dasarnya
elektromagnet akan menarik konduktor dengan kekuatan cukup besar untuk mencegah
pintu terbuka.
untuk source code nya menggunakan avr studio
********************************************************
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"
#include "utils.h"
#include "spi.h"
#include "mfrc522.h"
#define BLUE 2
#define WHITE 3
void gate_action();
uint8_t SelfTestBuffer[64];
int main()
{
uint8_t byte;
uint8_t str[MAX_LEN];
uint8_t person_recognised = 0;
uint8_t Blue[5] ={0xCD,0x4B,0x16,0xCB,0x58};
uint8_t White[5] ={0xD0,0xD1,0x6F,0x85,0xEB};
// _delay_ms(50);
LCDInit(LS_BLINK);
LCDWriteStringXY(2,0,"RFID Reader");
LCDWriteStringXY(5,1,VERSION_STR);
DDRD = 0x00;
spi_init();
_delay_ms(1000);
LCDClear();
//init reader
mfrc522_init();
//check version of the reader
byte = mfrc522_read(VersionReg);
if(byte == 0x92)
{
LCDWriteStringXY(2,0,"MIFARE RC522v2");
LCDWriteStringXY(4,1,"Detected");
}else if(byte == 0x91 || byte==0x90)
{
LCDWriteStringXY(2,0,"MIFARE RC522v1");
LCDWriteStringXY(4,1,"Detected");
}else
{
LCDWriteStringXY(0,0,"No reader found");
}
byte = mfrc522_read(ComIEnReg);
mfrc522_write(ComIEnReg,byte|0x20);
byte = mfrc522_read(DivIEnReg);
mfrc522_write(DivIEnReg,byte|0x80);
_delay_ms(1500);
LCDClear();
while(1){
LCDClear();
LCDWriteStringXY(1,0,"Show Your Card");
byte = mfrc522_request(PICC_REQALL,str);
if(byte == CARD_FOUND)
{
byte = mfrc522_get_card_serial(str);
if(byte == CARD_FOUND)
{
person_recognised = 1;
for(byte=0;byte<5;byte++)
{
if(Blue[byte] != str[byte])
break;
}
if(byte == 5)
person_recognised = BLUE;
else
{
for(byte=0;byte<5;byte++)
{
if(White[byte] != str[byte])
break;
}
if(byte == 5)
person_recognised = WHITE;
}
switch(person_recognised)
{
case BLUE :
{
LCDClear();
LCDWriteStringXY(3,0,"Hello Blue");
// gate_action();
break;
}
case WHITE :
{
LCDClear();
LCDWriteStringXY(3,0," White");
LCDWriteStringXY(0,1,"Not Recognised !");
gate_action();
break;
}
default :
{
LCDClear();
LCDWriteStringXY(0,0,"Not Recognised !");
break;
}
}
}
else
{
LCDClear();
LCDWriteStringXY(5,0,"Error");
}
}
}
}
void gate_action()
{
LCDClear();
LCDWriteStringXY(0,1,"Opening Gate ...");
PORTD = 0x01;
_delay_ms(15000);
// LCDClear();
// LCDWriteStringXY(0,1,"Closing Gate ...");
// PORTD = 0x00;
}