Melanjutkan topik sebelumnya, penulis masih ingin melanjutkan
pembahasan tentang pengendalian keluaran ON/OFF tapi untuk kali ini menggunakan
sebuah pembaca kartu RFID dengan format keluaran Wiegand 26 Bit.
Seperti pernah dibahas pada tulisan sebelumnya beberapa waktu
lalu, bahwa sebuah perangkat pembaca kartu RFID dengan format Wiegand 26 Bit
memiliki 2 keluaran yang merepresentasikan logika datanya yaitu D0
dan D1. Penulis tidak akan membahas lebih jauh lagi mengenai hal ini
tapi Sobat bisa lihat pada tulisan yang berkenaan dengan hal tersebut. Namun
saat membuat dan menguji rangkaian yang akan dibuat penulis menggunakan jenis
pembaca RFID seperti gambar berikut:
Perangkat yang akan dibuat sebagai kendali keluaran ON/OFF
menggunakan relay masih berbasis mikrokontroler AT98S2051 atau AT89C2051.
Untuk rangkaiannya dapat Sobat lihat berikut ini:
Untuk masukan D0 dan D1 yang berasal dari
perangkat pembaca RFID, penulis menggunakan penyemat gerbang P3.4 untuk D0
dan P3.5 untui D1. Sementara untuk keluaran penggerak relaynya
menggunakan P1.0. Gerbang p1.1 digunakan untuk indikator dan sakelar tekan S1
untuk PROGRAM. Data kartu atau tag (semacam gantungan kunci) akan disimpan pada
memori AT93C46 yang diorganisir dalam 8 bit.
Untuk program aplikasi yang harus dibuat untuk dioperasikan oleh
mikrokontroler dapat dilihat berikut ini:
$mod51
PinRelay bit p1.0
PinProg bit p1.1
DIO bit p1.2
CLK bit p1.3
RST bit p1.4
WiegandData0 bit p3.4
WiegandData1 bit p3.5
BufferData data 08h
RegBit data 20h
Fail bit RegBit.0
RegStack data 30h
Seperti biasanya, pada penulisan di atas, diawali dengan
menetapkan konfigurasi penyemat dan alokasi memori RAM yang akan digunakan.
Setelah itu baru kita memulai penulisan perintah-perintah yang dimulai pada
alamat 0000H. Aplikasi pertama kali akan memeriksa kondisi S1 untuk
PROGRAM. Jika pada saat pertama dihidupkan atau setelah RESET S1
ditekan maka aplikasi akan menunggu sampai kurang lebih 5 detik untuk memasuki
pemrograman data kartu RFID yang ditandai dengan aktifnya keluaran relay. Sobat
bisa membacakan data kartu RFID dengan mendekatkannya pada pembaca RFID. Namun
apabila S1 tidak ditekan atau ditekan kurang dari 5 detik maka aplikasi akan
dilanjutkan ke rutin bernama Masukan.
org 0h
mov sp,
RegStack-1
mov r5,
#18
Ini1: mov r6,
#255
Ini2: mov r7,
#255
Inisialisasi:
jb PinProg,
Masukan
djnz r7,
Inisialisasi
djnz r6,
Ini2
djnz r5,
Ini1
clr PinRelay
jnb PinProg,
$
mov r0,
#BufferData
IniWiegand:
jnb WiegandData0,
IniProgram
jb WiegandData1,
IniWiegand
IniProgram:
acall Wiegand
acall AT93C46_EWEN
mov dptr,
#0
mov r7,
#3
Setelah data RFID diterima maka selanjutnya aplikasi akan
menyimpan data tersebut ke dalam memori AT93C46 pada alamat 00H.
SimpanRFID:
mov a,
@r0
inc r0
acall AT93C46_WRITE
djnz r7,
SimpanRFID
acall AT93C46_EWDS
setb PinRelay
Setelah data disimpan maka aplikasi kembali menon-aktifkan
relay. Di sini Sobat bisa menambahkan perintah untuk verifikasi data jika mau
yaitu memasukkan kembali data RFID dan membandingkannya dengan data pada
memori. Penulis tidak memasukkan rutin ini dan langsung menuju ke rutin Masukan
seperti berikut ini:
Masukan:
mov r0,
#BufferData
WiegandMasuk:
jnb WiegandData0,
BacaRFID
jb WiegandData1,
WiegandMasuk
BacaRFID:
acall Wiegand
mov dptr,
#0
mov r7,
#3
Pada rutin WiegandMasuk, status masukan dari perangkat pembaca
RFID diperiksa. Jika ada data yang masuk maka data akan disimpan sementara pada
BufferData kemudian akan diperiksa dengan membandingkannya pada data dalam
memori AT93C46. Jika data sama maka keluaran relay maupun indikator akan
berubah kondisi dengan perintah CPL. Jika semula rendah akan menjadi tinggi
atau sebaliknya.
PeriksaRFID:
mov b,
@r0
inc r0
acall AT93C46_READ
inc dptr
xrl a,
b
jnz Masukan
djnz r7,
PeriksaRFID
cpl PinRelay
cpl PinProg
ajmp Masukan
$include
(c:\tesasm\Wiegand.txt)
$include
(c:\tesasm \93C46_8.txt)
end
Program aplikasi
mikrokontroler di atas masih membutuhkan 2 modul lainnya yaitu modul untuk
antarmuka perangkat pembaca Wiegand 26 Bit bernama WIEGAND.TXT dan modul
antarmuka dengan AT93C46 yang bernama 93C46_8.TXT yang ada dan bisa Sobat lihat
pada tulisanku sebelumnya.
Setelah file di
atas dikompilasi dan diprogramkan ke mikrokontroler AT89C2051 maka perangkat
sudah dapat melaksanakan fungsinya. Penulis sudah mengkompilasi dan hasilnya
adalah 455 byte saja.
Desain rangkaian di
atas memang sederhana begitu pun dengan aplikasi program yang dibuat. Namun
meskipun sederhana yang penting hidup bisa lebih mudah, itu intinya.
Bagaimanapun, sebuah desain harus memiliki kegunaan untuk dapat
diimplementasikan pada kehidupan kita. Sesuai dengan tulisan pada paragraf
awal, maka desain di atas sudah aku implementasikan kebeberapa fungsi
perangkat, antara lain:
- Pintu akses. Dengan atau tanpa modifikasi, rangkaian di atas jelas bisa dimanfaatkan sebagai sebuah perangkat pintu akses. Tapi saran penulis tentu harus dimodifikasi terutama dalam jumlah data kartu yang dapat disimpan agar setiap orang di rumah atau di kantor (jika diimplementasikan untuk kantor) bisa memiliki masing-masing sebuah kartu. Atau Sobat bisa kembali melihat tulisanku yang terdahulu tentang Pintu Akses Sederhana Untuk Rumah Atau Kantor Kecil.
- Kunci pengaman kendaraan bermotor atau alarm kendaraan. Bayangkan, kendaraan Sobat dilengkapi dengan kunci dengan teknologi RFID, tentu senang bukan?
- Implementasi lain silahkan Sobat cari. Pokoknya selama ada hal yang membutuhkan sakelar maka rangkaian kita bisa menggantikannya dan semua berteknologi RFID.
Udah ya, makasih udah baca postingan aku. Semoga bisa
bermanfaat dan jika mungkin bisa diterapkan oleh sobat semua.
Salam....
trima kasih pak, sangat bermanfaat sekali
BalasHapusSama-sama Pak Rio. Ditunggu komentar lainnya
BalasHapus