Kunci Pintu Otomatis Berbasis Arduino Da
Kunci Pintu Otomatis Berbasis Arduino Da
by : AJI PRAKOSO
Pernahkah anda pergi ke hotel yang jika kita ingin membuka kunci pintunya kita harus menempelkan
atau mendekatkan sebuah kartu? Tahukah anda teknologi apa yang digunakan pada pintu tersebut?
Teknologi yang digunakan pada kunci pintu tersebut adalah teknologi bernama RFID atau Radio
Frequency Identification. Setiap pintu kamar di hotel yang menggunakan teknologi RFID dipasangi
sebuah alat pembaca RFID (RFID reader), alat pembaca tersebut sudah diprogram untuk hanya
membuka kunci pintu jika kartu RFID yang discan (dengan cara didekatkan) sesuai dengan nomor
kamar, misalnya untuk kamar nomor 23, alat pembaca RFID di kamar tersebut hanya akan membuka
kuncinya jika kartu RFID nomor 23 didekatkan pada alat pembaca RFID dan tidak akan membuka
kunci jika yang digunakan adalah kartu RFID yang lainnya. Kartu yang digunakan disebut dengan
PICC (Proximity Integrated Circuit Card).
Terinspirasi dari teknologi yang digunakan di pintu kamar hotel tersebut, saya terfikir untuk membuat
alat serupa menggunakan board mikrokontroler yang saya miliki, Arduino Uno. Setelah Googling
sana-sini untuk mencari alat dan referensi, akhirnya saya menemukan alat pembaca RFID dengan tipe
RC522 dengan harga yang sangat bersahabat untuk kantong mahasiswa. Akhirnya saya membeli alat
tersebut dengan harga 75.000 Rupiah (Sudah termasuk satu buah kartu PICC).
Nah, kali ini saya akan membagikan tutorial untuk membuat alat pembaca RFID dengan
menggunakan mikrokontroler AT328P-PU pada Arduino Uno dan pembaca RFID tipe RC522.
Pengguna menscan kartu PICC dengan cara mendekatkan kartu ke alat pembaca RFID,
Alat pembaca RFID akan mendeteksi nomor identitas kartu PICC yang disebut UID, jika UID
sesuai, maka lampu akan berubah menjadi warna hijau dan kunci pintu (menggunakan servo)
akan terbuka, sedangkan jika kartu PICC yang discan tidak sesuai dengan yang kita program,
lampu akan berubah merah, buzzer akan berbunyi kencang dan kunci tidak akan terbuka.
Setelah delay selama 2500ms (2,5 detik), pengunci akan ke posisi semula, kunci akan kembali
ke posisi terkunci dan lampu akan berubah menjadi warna biru.
BAGIAN 2 : ALAT-ALAT YANG DIBUTUHKAN
RC522 Memiliki 8 buah pin, yaitu SDA, SCK, MOSI, MISO, IRQ, GND, RST dan 3,3v
untuk catu daya. Yang kita gunakan hanya 7 pin saja, pin IRQ tidak kita gunakan.
Servo memiliki 3 buah pin, yaitu VCC (5v), GND dan data.
LED RGB memiliki 4 buah pin yaitu R, G, B dan GND.
Buzzer hanya memiliki 2 buah pin yaitu pin VCC yang akan kita koneksikan ke port pin
digital di Arduino dan port pin GND.
Agar lebih mudah menghubungkan kabel-kabel antara Arduino dan alat-alat lainnya, saya buatkan
tabel koneksi dibawah ini :
SERVO
SERVO ARDUINO UNO
DATA Digital 6
GND GND
VCC 5V
LED RGB
LED RGB ARDUINO UNO
R Digital 4
G Digital 3
B Digital 2
Common GND
BUZZER
BUZZER ARDUINO UNO
VCC Digital 5
GND GND
RC522 RFID READER
RC522 ARDUINO UNO
SDA Digital 10
SCK Digital 13
MOSI Digital 11
MISO Digital 12
IRQ -
GND GND
RST Digital 9
3.3v 3.3V
BAGIAN 4 : KODING PROGRAM
Setelah semua alat terkoneksi dengan Arduino, langkah terakhir adalah memprogam si
Mikrokontroler agar dapat mengerjakan tugasnya sebagai otak dari alat kunci otomatis berbasis RFID
ini. Berikut ini adalah kode program Arduino yang saya gunakan untuk membuat project kunci pintu
otomatis ini :
* https://github.com/miguelbalboa/rfid
*/
byte storedCard[4];
byte readCard[4];
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
Serial.println("");
Serial.println("");
pinMode(buzz, OUTPUT);
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
servo1.attach(6);
digitalWrite(b, HIGH);
servo1.write(20);
void loop ()
int successRead;
do
successRead = getID();
while (!successRead);
Serial.println("===================================================");
Serial.println("");
digitalWrite(b, LOW); // LED Yang tadinya berwarna biru (stand by) dimatikan, berubah menjadi
servo1.write(90); // Posisi servo akan berubah menjadi 90 derajat (posisi buka kunci)
digitalWrite(b, HIGH); // Lampu LED akan berubah kembali menjadi berwarna biru, dan
digitalWrite(g, LOW);
else // Jika kartu yang didekatkan ke pembaca BUKAN MasterCard (EC9FE97) Maka akan muncul :
Serial.println("");
Serial.println("===================================================");
Serial.println("");
digitalWrite(b, LOW);
beep2(buzz); // Buzzer akan mengeluarkan bunyi beep panjang, setelah beep selesai,
digitalWrite(r, LOW);
int getID()
if ( ! mfrc522.PICC_IsNewCardPresent())
return 0;
}
if ( ! mfrc522.PICC_ReadCardSerial())
return 0;
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i], HEX);
Serial.println("");
Serial.println("");
mfrc522.PICC_HaltA();
return 1;
storedCard[i] = EEPROM.read(start+i);
if ( a[0] != NULL )
match = true;
if ( a[k] != b[k] )
match = false;
if ( match ) {
return true;
else {
return false;
return true;
else
return false;
void beep2(int x) // Program untuk beep panjang (jika kartu yang discan tidak sesuai)
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
delay(500);
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
delay(500);
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
delay(500);
digitalWrite(x, HIGH);
delay(1000);
digitalWrite(x, LOW);
delay(500);
}
void beep3(int x) // Program untuk beep pendek (jika kartu yang di scan sesuai)
digitalWrite(x, HIGH);
delay(50);
digitalWrite(x, LOW);
delay(50);
digitalWrite(x, HIGH);
delay(50);
digitalWrite(x, LOW);
delay(50);
digitalWrite(x, HIGH);
delay(50);
digitalWrite(x, LOW);
delay(50);
digitalWrite(x, HIGH);
delay(50);
digitalWrite(x, LOW);
delay(50);
Kode program yang saya buat diatas juga bisa diunduh di http://bit.ly/KunciRFID, di file tersebut
juga saya masukkan library MFRC522 buatan Miguel Balboa. Sebelum memprogram Arduino,
jangan lupa tambahkan library MFRC522 ke folder library aplikasi IDE Arduino anda. Ada dua cara
untuk menambahkan library ke aplikasi IDE Arduino anda, cara pertama adalah dengan mengimpor
secara otomatis dari file berekstensi zip, caranya dengan memilih menu “Sketch >> Import Library >>
Add Library” lalu pilih file zip yang berisi library yang ingin ada impor. perhatikan gambar berikut ini
:
Cara kedua adalah cara manual dengan cara meng-copy folder library yang anda unduh ke folder
libraries Arduino yang ada di “My Documents\Arduino\libraries\”, biasanya didalam folder library
minimal ada file dengan ekstensi .cpp dan .h.
Berikut ini adalah “penampakan” kunci pintu otomatis berbasis Arduino dan RFID yang saya buat :
Untuk lebih jelasnya, saya juga sudah membuat video demonstrasi yang saya unggah ke YouTube.
Berikut link nya : https://www.youtube.com/watch?v=vYeILRLas9E
Project kunci pintu otomatis yang saya buat ini masih dalam bentuk prototipe, karena untuk pengunci
pintunya hanya menggunakan sebuah servo, untuk pengaplikasian dalam dunia nyata, bisa
menggunakan Electrical Solenoid Door Lock seperti pada gambar dibawah ini
Dengan menggunakan Electrical Solenoid Door Lock tersebut, dapat menggantikan servo sebagai
pengunci pintu yang lebih kuat dan lebih aman.
Jika untuk pengunci sudah diganti dengan Electrical Solenoid Door Lock, maka alat pengunci
otomatis yang dibuat sudah bisa berfungsi sebagai alat pengunci otomatis pada pintu ruangan di
rumah anda. Anda tidak perlu lagi membuka kunci secara manual, tinggal dekatkan kartu PICC anda
ke alat pembaca RFID, lalu kunci pintu ruangan anda akan otomatis terbuka. Selain praktis, juga
canggih.
BAGIAN 6 : PENGEMBANGAN
Selain kunci pintu otomatis, masih banyak hal yang bisa kita lakukan dengan menggunakan teknologi
RFID ini, misalnya untuk sistem pembayaran di restoran (sudah banyak digunakan di food court
mall), pembayaran di gerbang tol, bisa juga digunakan sebagai kartu mahasiswa yang multi-fungsi.
Alat RFID yang terbilang murah bisa menjadi alasan kuat digunakannya teknologi RFID, apalagi jika
dibandingkan dengan teknologi magnetic card (biasa digunakan di kartu ATM) yang alatnya terbilang
mahal.