Assalamu’alaikum mas & mbak
bro……. wuaduh….. lama g posting ni…. buanyak tugas kuliah soalnya…hehehe, ni saya share
tugas-tugas kuliah enyong yo……… monggo……..semoga bermanfaat,,, :D
A.
PENDAHULUAN
RFID (Radio
Frequency Identification)
Ada beberapa tipe
dari RFID card antara lain yaitu RFID card dapat bersifat aktif atau pasif.
RFID card yang pasif tidak memiliki
catu daya sendiri. Dengan hanya menggunakan catu daya yang ada pada antena yang
disebabkan oleh adanya frekuensi radio scanning yang masuk, telah cukup untuk
memberi kekuatan yang cukup bagi RFID card
untuk mengirimkan respon balik. Sehubungan dengan catu daya dan biaya, maka
respon dari suatu RFID card yang
pasif biasanya hanya berupa nomor-nomor identitas atau ID saja.
Dengan tidak adanya
catu daya pada kartu RFID card yang
pasif maka akan menyebabkan semakin kecil ukuran dari RFID card yang akan dibuat. Beberapa RFID komersial yang saat ini telah
beredar dipasaran ada yang dapat diletakan di bawah kulit. Pada tahun 2005
tercatat bahwa RFID card terkecil
berukuran 0,4 mm x 0,4 mm dan lebih tipis daripada selembar kertas. Dengan
ukuran seperti itu maka secara praktis benda tersebut tidak akan terlihat oleh
mata. RFID card yang pasif ini
memiliki jarak jangkauan yang berbeda mulai dari 10 mm sampai dengan 6 meter.
RFID card yang aktif, disisi lain harus
memiliki catu daya sendiri dan memiliki jarak jangkauan yang lebih jauh. Memori
yang dimilikinya juga lebih besar sehingga dapat menampung berbagai macam
informasi didalamnya. Ukuran terkecil dari RFID card yang aktif ada yang sebesar koin. Jarak jangkauan dari RFID card yang aktif ini dapat sampai 10
meter dan dengan umur baterai yang dapat mencapai beberapa tahun lamanya.
Ada empat macam
RFID card yang sering digunakan bila
dikategorikan berdasarkan frekuensi radio, yaitu :
·
Low frequency card (antara 125 ke 134 kHz)
·
High frequency card (13.56 MHz)
·
UHF card (868 sampai 956
MHz)
·
Microwave card (2.45 GHz)
UHF card tidak dapat digunakan secara
global, karena tidak sesuai peraturan global yang mengatur penggunaanya. RFID Low frequecy card banyak digunakan untuk
identifikasi pada binatang, keylock
pada mobil dan juga sistem anti pencurian. Binatang peliharaan seringkali
ditempeli dengan chip yang kecil sehingga mereka dapat dikembalikan pada
pemiliknya jika hilang. Di Amerika serikat, RFID yang digunakan ada dua yaitu
125 kHz (standar aslinya) dan 134.5 kHz (yang merupakan standar internasional).
RFID High-frequency card sering digunakan pada perpustakaan atau toko buku, akses
kontrol pada gedung, pelacakan pada bagasi pesawat terbang dan apparel item tracking, serta mengganti
keberadaan kartu magnetik sebelumnya. Lencana ini hanya perlu dipegang dalam
suatu jarak tertentu dan readernya langsung dapat mengenali siapa pemegang
lencana tersebut. Kartu kredit American
Express Blue saat ini telah mengandung RFID card dengan high-frequency.
Gambar
1. Reader RFID
B. RANGKAIAN
Skematik Sistem
Minimum ATMega16
Skematik Rangkaian RFID ID-12
C. PERALATAN DAN BAHAN
Untuk Rangkaian
RFID:
1.
RFID Tag 2
buah
2.
RFID reader 1
reader
3.
Buzzer 1
buah
4.
Led 1
buah
5.
Resistor 1 Kohm dan 100 ohm 4
buah
6.
Transistor 2n3904 1 buah
7.
PCB Matrix 1
buah
8.
Konektor Serial 1
buah
9.
Kabel jumper secukupnya
D. TAHAP-TAHAP KERJA
1.
Perancangan dan Pembuatan Rangkaian (Pekan Pertama)
2.
Pemrograman Sistem (Pekan kedua dan Ketiga)
3.
Pengujian system (Pekan Keempat)
E. PRINSIP KERJA
DAN PROGRESS
Cara kerja dari
alat ini yaitu sangat sederhana, intinya adalah sebuah obyek akan dideteksi
keberadaannya menggunakan rfid. Tiap-tiap obyek memiliki kode yang unik
sehingga satu dengan yang lainnya tak mungkin sama. Stok di dalam rak dapat
diketahui dengan cara menghitung jumlah obyek yang terdeteksi. Sedangkan untuk
mengetahui kadaluarsa yaitu dengan cara mencocokkan data tanggal yang ada pada
masing-masing ID.
Rangkaian di atas
berfungsi untuk memeriksa data dari tag rfid yang digunakan. Cara kerjanya
yaitu buka hyperterminal : Start à All Programs àAccessories à Communications à Hyperterminal, dengan pengaturan: Bits Per Second 9600,
Data Bits 8, Parity None, Stop Bits 1, dan Flow Control None.
Apabila tag RFID
didekatkan, LED akan menyala dan buzzer akan berbunyi. Kemudian data tag akan
muncul di layar hyperterminal. Pada percobaan yang dilakukan yaitu buzzer dan
LED telah aktif saat tag RFID didekatkan ke reader, dan data identitas yang ada
pada RFID tag terlihat pada hyperterminal.
Dalam kasus ini di
misalkan kapasitas maksimal dari rak obat adalah 3. Dalam hal ini rak tidak
boleh dibiarkan kosong, sehingga apabila jumlah obat dalam rak menunjukan satu
maka itu dianggap minimum dan tidak bisa berkurang lagi. Setiap obat yang
keluar atau masuk akan terdeteksi oleh rfid.
Untuk jumlah yang tersedia di rak obat di tampilkan di lcd secara
realtime.
E. LAMPIRAN
Program
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 6/28/2012
Author : diy4n
Company : Taman Hati Shop
Comments:
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
#define obat_masuk PINA.0
#define obat_keluar PINA.1
#define LED_ID1 PORTC.0
#define LED_ID2 PORTC.1
char i;
char k[30];
// USART Receiver buffer
#define RX_BUFFER_SIZE 16
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index ==
RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter ==
RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
// Standard Input/Output functions
#include <stdio.h>
void task_run2()
{
lcd_gotoxy(0,0);lcd_putsf("Data ID");
lcd_gotoxy(0,1);lcd_puts(rx_buffer);
// sprintf(k,"ID
Tag=%c",rx_buffer,13);
// puts(k);
}
void task_run()
{ int jml=2;
lcd_gotoxy(0,0);lcd_putsf("OBAT TERSEDIA");
lcd_gotoxy(7,1);
sprintf(k,"%d",jml,13);lcd_puts(k);
/*
if(obat_keluar==0){
if(rx_buffer[12]=='F' ||
rx_buffer[12]=='5'){
jml--;
lcd_gotoxy(1,0);lcd_putsf("OBAT TERSEDIA");
lcd_gotoxy(7,1);
sprintf(k,"%d",jml,13);lcd_puts(k);
}
}
*/
if(rx_buffer[12]=='F') {
if(obat_masuk==0){
LED_ID1=0;
jml++;
if(jml==3 &&
(rx_buffer[12]=='0' || rx_buffer[12]=='3'))
{
lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("RAK PENUH!!!");
}
else {
lcd_gotoxy(0,0);lcd_putsf("OBAT TERSEDIA");
lcd_gotoxy(7,1); sprintf(k,"%d",jml);lcd_puts(k);
}
}
if(obat_keluar==0){
LED_ID1=0;
jml--;
if(jml==1 &&
(rx_buffer[12]=='0' || rx_buffer[12]=='3'))
{
lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("RAK KOSONG!!!");
}
else{
lcd_gotoxy(0,0);lcd_putsf("OBAT TERSEDIA");
lcd_gotoxy(7,1); sprintf(k,"%d",jml);lcd_puts(k);
}
}
}
if(rx_buffer[12]=='5')
{
if(obat_masuk==0){
LED_ID2=0;
jml++;
if(jml==3 &&
(rx_buffer[12]=='0' || rx_buffer[12]=='3'))
{
lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("RAK PENUH!!!");
}
else {
lcd_gotoxy(0,0);lcd_putsf("OBAT
TERSEDIA");
lcd_gotoxy(7,1); sprintf(k,"%d",jml);lcd_puts(k);
}
}
if(obat_keluar==0){
LED_ID2=0;
jml--;
if(jml==1 &&
(rx_buffer[12]=='0' || rx_buffer[12]=='3'))
{
lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("RAK KOSONG!!!");
}
else{
lcd_gotoxy(0,0);lcd_putsf("OBAT
TERSEDIA");
lcd_gotoxy(7,1); sprintf(k,"%d",jml);lcd_puts(k);
}
}
}
}
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
task_run();
}
// Declare your global variables here
void SCH_init(unsigned int periode)
{
TCNT1=0; // reset counter
OCR1A=(unsigned long) periode*1000/64;
// delayms
TCCR1B=0x0D; //mode ctc
TIMSK=0x10;
}
void main(void)
{
PORTA=0xff;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0xff;
DDRC=0xff;
PORTD=0x00;
DDRD=0x00;
SCH_init(10);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
i=getchar();
sprintf(k,"ID
Tag=%c",i,16);
puts(k);
};
}
mas bisa minta file skematik nya ,,, kebetulan ane juga punya tugas kuliah ini... mohon bantuanya
BalasHapuskirim ke vens_id@yahoo.com