Lompat ke konten Lompat ke sidebar Lompat ke footer

PINTU OTOMATIS DENGAN KARTU RFID

Keamanan rumah adalah hal yang penting. Dengan arduino maka kita bisa membuat suatu pintu rumah otomatis yang hanya bisa dibuka dengan menggunakan kartu RFID.

Sistem keamanan pintu sudah mulai diterapkan seperti pada gedung, rumah, sekolah, perkantoran dan lain-lain. Hal ini karena sudah sering terjadi aksi pencurian dan pembobolan rumah karena tidak terproteksi dengan baik. Pembobolan tersebut umumnya melalui pintu rumah. Pintu rumah yang masih menggunakan kunci konvensional maka akan cukup rentan untuk dibobol pencuri.

Dalam kesempatan ini penulis akan membahas tentang kunci otomatis menggunakan kartu RFID (Radio Frequency Identification) seperti pada KTP. Kartu RFID sudah tertanam chip di dalamnya. Setiap chip kartu RFID akan memiliki nomor identitas tertentu yang berbeda satu sama lainnya. Dengan adanya nomor yang berbeda-beda setiap kartu RFID maka kartu RFID bisa dimanfaatkan sebagai pengaman pintu otomatis. Jadi pintu nanti akan bisa terbuka oleh kartu RFID yang nomor ID nya sudah dimasukkan dalam program Arduino. Jika nomor ID pada kartu RFID sama dengan nomor ID yang tersimpan pada program Arduino maka bisa membuka pintu, dan jika nomor ID RFID belum terdaftar atau belum tersimpan pada program arduino maka pintu tidak akan bisa dibuka.

Dalam pembuatan pintu otomatis ini baru dalam bentuk miniature hal ini hanya ingin membuktikan dan menjelaskan bahwa penggunaan kartu RFID memang bisa dapat digunakan untuk membuat pintu otomatis. Bentuk miniatur dari pintu otomatis bisa di lihat pada gambar di bawah ini:

 

pintu otomatis kartu RFID

Untuk membuat pintu otomatis kita membutuhkan alat dan bahan , antara lain:

1.    Miniatur pintu

2.    Arduino uno R3

3.    MFRC522

4.    Kartu RFID

5.    Motor Servo

6.    Selenoid  door lock

7.    Modul Relay

8.    Buzzer

9.    Power Suplly

10.  Kabel jumper

Miniatur Pintu

Miniatur pintu yang digunakan penulis dari bahan kayu, hal ini guna memudahkan penulis dalam membuatnya. Pada bagian bawah miniatur pintu kita buatkan tempat untuk meletakkan power suplly dan rangkaian kontrolnya. Pada bagian kusen pintu kita letakkan Selenoid  door lock.

Arduino uno R3

Untuk mengontrol pintu otomatis, penulis menggunakan mikrokontroller Arduino Uno R3. Jika pembaca ingin menggunakan mikrokontroller jenis lainnya seperti AVR, MCS, dll maka bisa saja yang penting telah menguasai sketch programnya.

MFRC522

Untuk membaca nomor ID kartu RFID maka kita harus memiliki alat RFID Reader. Alat yang kita gunakan adalah type MFRC522. Bentuk nya bisa dilihat pada gambar di bawah ini :

 



Ada 8 pin yang disiapkan pada MFRC522 dan untuk menghubungkannya nanti bisa di lihat pada gambar skema rangkaian. Dan yang sangat perlu diperhatikan adalah penggunaan tegangan catu dayanya. Tegangan catu daya untuk MFRC522 menggunakan 3,3 Volt. Jadi jangan menghubungkannya ke 5 Volt karena bisa merusak chip pada MFRC522

Agar MFRC522 dapat terhubung dengan arduino maka pada program Arduino IDE perlu ada penambahan library khusus MRFC55.

Cara untuk menambah librarynya yaitu :

Downloadlah File Library Ardunino untuk RFID model MFRC522. Setelah selesai download maka letakkan file tersebut pada folder Documents > Arduino > Library.

Lalu install library tersebut pada aplikasi Arduino IDE dengan cara :

1.    Buka Aplikasi Arduino IDE

2.    Pilih Menu Sketch

3.    Sorot ke Bawah dan pilih Include Library

4.    Maka Menu akan bergeser ke kanan, pilih Add.Zip Library.

5.    Pilih File Library yg sudah di download tadi, lalu  klik "Open"

Kartu RFID

Bentuk kartu RFID mirip seperti bentuk kartu umumnya seperti kartu nama, e-KTP, ATM, kartu pelajar, dll. Hanya saja ada kartu yang sudah disematkan mikro chip RFID da nada kartu yang tidak ada mikro chipnya. Kartu yang memiliki microchip seperti kartu ATM, KTP, kartu e-money, dll.

Kartu RFID yang digunakan pada proyek ini adalah kartu RFID kosong. Kartu RFID tidak membutuhkan catu daya khusus. Jadi  kartu RFID ini bisa aktif memancarkan gelombang frekuensi radio hanya pada saat ditempelkan pada RFID reader (MFRC522). Pada saat ditempelkan maka nomor ID kartu RFID akan terbaca. Pengganti kartu RFID pada proyek ini bisa juga menggunakan e-KTP atau kartu lainnya. Perlu diketahui alat ini dibuat tidak akan mampu membaca database e-KTP seperti nama, NIK, dll. Jadi alat ini hanya sekedar membaca nomor ID kartu e-KTP saja. Jadi jangan berharap banyak karena kita pun tidak punya hak dan wewenang untuk membaca dan mengubah isi data e-KTP.

Selain berbentuk kartu RFID maka bisa juga kartu RFID berbentuk gantungan kunci seperti gambar di bawah ini.

 

pintu otomatis kartu RFID

Setiap kartu RFID akan memiliki nomor ID yang berbeda-beda. Sehingga nomor ID ini bisa dijadikan pengaman. Hanya kartu tertentu saja yang nomor IDnya sudah didaftarkan yang dapat digunakan, jadi mirip seperti pada kunci konvensional. Jika nanti alat ini mau digunakan beberapa kartu RFID maka semua nomor ID kartu harus dimasukkan ke dalam program.

Jika suatu saat kartu RFID hilang atau rusak kita bisa menggantinya dengan kartu RFID yang baru. Agar kartu RFID baru bisa digunakan maka langkah awalnya adalah membaca nomor IDnya setelah itu masukkan nomor ID kartu yang baru tadi ke dalam program. Jika tidak ada kesalahan dalam mengisikan ID maka kartu baru tersebut sudah dapat digunakan.

Motor Servo

Untuk mengerakkan miniatur pintu maka penulis menggunakan motor servo. Motor servo merupakan motor listrik yang dapat digerakkan atau diputar pada sudut tertentu sesuai dengan keinginan. Kalau ingin mengetahui banyak tentang pengendalian pada motor servo bisa baca Mengontrol motor servo menggunakan Arduino

Bagian-bagian di dalam motor servo adalah :

·      Motor DC 

·      Roda gigi yang berguna untuk mengubah putaran motor agar torsinya menjadi baik.

·      Sistem kontrol

·      Potensiometer atau encoder.

Motor berfungsi sebagai daya penggerak yang terhubung ke roda gigi. Putaran motor ini akan  terhubung dengan potensiometer dan poros output-nya. Sehingga saat motor berputar maka akan memutar potensiometer dan memutar poros output secara bersamaan. 

Potensiometer nilainya akan berubah-ubah sesuai dengan pergerakan motor servo, perubahan posisi potensiometer ini akan menjadi encoder yang difungsikan  untuk sensor. Potensiometer bisa memberikan sinyal umpan balik ke sistem pengendali untuk menentukan posisi targetnya yang benar. Pada saat sistem pengendali motor servo mendeteksi posisi target sudah sesuai, maka putarannya secara otomatis akan berhenti. Pada saat posisi sudut yang diinginkan belum pas maka motor servo akan tetap terus bergerak dan berputar mencari posisi yang tepat sesuai programnya.

Untuk mengendalikan motor servo sesuai pergerakan sudut rotasinya maka membutuhkan sinyal gelombang PWM (Pulse Width Modulation). Pada arduino uno R3 dip sudah memiliki output khusus untuk PWM yaitu pin nomor : 3, 5,6,9,10,11.

Untuk mengaktifkan motor servo pada program Arduino IDE maka perlu menambahkan library motor servo. Caranya : Buka Program Arduino IDE, klik ke menu “Sketch”, pilih Include Libary > Manage Libraries. Pada layar Library manager ketiklah servo motor. Lalu install.

 

library motor servo

Motor servo yang digunakan pada pintu otomatis ini typenya MG996R. seperti gambar di bawah ini:

motor servo  MG996R


Bisa juga menggunakan type yang lainnya.  Untuk lebih jelas bagaimana menggerakan motor servo, kekuatan motor servo dan cara latihan membuat sketch program motor servo bisa lihat pada channel youtube “Hendry Kurniawan” yaitu : Tutorial Motor Servo

Selenoid  door lock

Untuk dapat membuka dan mengunci pintu secara otomatis maka kita membutuhkan suatu kunci yang dinamakan Selenoid  door lock. Selenoid  door lock menggunakan prinsip magnet listrik. Jadi pada saat tegangan DC 12 Volt diberikan pada solenoid maka kumparan tersebut menajadi magnet. Magnet listrik inilah yang akan menarik tuas kunci. Pada saat tidak ada tegangan maka tuas kunci akan terdorong ke depan karena ada pegasnya. Bentuk selenoid door clock ada pada gambar dibawah :


selenoid door lock

Modul Relay

Pada proyek pintu otomatis ini kita menggunakan relay. Relay merupakan saklar listrik yang menggunakan coil. Pada saat coil dialiri arus listrik maka coil akan menjadi magnet yang akan menarik lidah saklar. Modul relay yang digunakan menggunakan tegangan 5 volt. Modul relay ini digunakan untuk menghidupkan dan mematikan Selenoid  door lock. Sebenarnya jika Selenoid  door lock menggunakan tegangan 5 volt maka tidak perlu modul relay jadi bisa langsung dihubungkan dengan ouput arduino, tetapi karena Selenoid  door lock menggunakan12 Volt maka dibutukan tambahan modul relay.

Bentuk modul relaynya seperti pada gambar di bawah ini.


modul relay arduino

Untuk jelasnya tentang apa itu Relay dan prinsip keja relay  maka bisa lihat pada video youtube channel “Hendry Kurniawan” dengan judul Prinsip Kerja Relay.

Buzzer

Buzzer langsung bisa menghasilkan bunyi saat dihubungkan dengan catu daya 5 volt, hal ini karena pada buzzer arus listrik akan diubah menjadi getaran suara. Buzzer yang digunakan  berjenis Piezoelectric. Harga Buzzer ini  tidak mahal, beratnya ringan dan praktis saat memasangnya ke dalam rangkaian elektronika lainnya. Buzzer dapat juga dijadikan untuk bunyi alarm.

Bentuk buzzer bisa dilihat pada gambar di bawah ini :


buzzer arduino

Setelah alat dan bahan sudah lengkap maka rakitlah rangkaian seperti pada gambar di bawah ini :

 

pintu otomatis kartu RFID

SKETCH PROGRAM ARDUINO

Langkah berikutnya membuat sketch program. Silahkan ketik programnya seperti berikut ini :

//Pintu otomatis oleh Hendry Kurniawan
//WIRA NASEN
//RFID
#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <Servo.h>
/* ---------------------------------------------------------
 *        MFRC522                            Arduino      
 *      Reader/PCD                            Uno     
 *        SignalPin                                Pin          
 * ----------------------------------------------------------
 * RST/Reset       RST               9 (kabel biru)
 * SPI SS             SDA(SS)      10 (kabel ungu)
 * SPI MOSI         MOSI            11 (kabel Hijau)
 * SPI MISO         MISO            12 (kabel kuning)
 * SPI SCK           SCK              13 (kabel orange)
 * 3,3 Volt             3,3 Volt          (kabel merah)
 * GND                 GND              (kabel coklat)
 --------------------------------------------------------------
 LED (Kabel biru putih) pin 8
 BUZZER (Kabel ungu + merah) pin 6
 RELAY (Kabel biru)pin 2
 SERVO (kabel putih) pin 3
 Saklar 1  pin 4
 Saklar 2  pin 5
 selenoid (kabel putih ) pin 7
 */

#define SS_PIN 10
#define RST_PIN 9
const int BUZZER = 6;
const int LED = 8;
const int RELAY = 2;
const int SERVO = 3;
int a;
int b;
Servo motorServo;
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

void setup()
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  pinMode(BUZZER, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(RELAY, OUTPUT);
  pinMode(SERVO, OUTPUT);
  digitalWrite(LED, HIGH);
  digitalWrite(RELAY, HIGH);
  motorServo.attach(SERVO);
  motorServo.write(65); //TUTUP PINTU
}

void loop()
{
  //KODING PENGECEKKAN KARTU RFID
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  } 
  //MEMBACA  KARTU RFID
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //MENAMPILKAN NOMOR SERIAL KARTU RFID
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("PESAN : ");
  content.toUpperCase();
 
  //SESUAIKAN ID TAG KARTU UID RFID 13,56 Khz --> 99 9E 4B 98
  if (content.substring(1) == "99 9E 4B 98")
  {
    Serial.println("AKSES DITERIMA");
    Serial.println();
    digitalWrite(BUZZER, HIGH);
    delay(200);
    digitalWrite(BUZZER, LOW);
    digitalWrite(RELAY, LOW);
 
  for(a=65;a<=140;a++){
  motorServo.write(a);
  delay(50);
  }
  delay(1000);
  for(b=140;b>=65;b--){
  motorServo.write(b);
  delay(50);
  }
  delay(500);
  digitalWrite(RELAY, HIGH);
  }
  else
  {
    Serial.println("AKSES DITOLAK");
    Serial.println();
    digitalWrite(BUZZER, HIGH);
    delay(200);
    digitalWrite(BUZZER, LOW);
    delay(200);
    digitalWrite(BUZZER, HIGH);
    delay(200);
    digitalWrite(BUZZER, LOW);
    delay(200);
  }
  delay(500);
}

Untuk melihat hasil dari pintu otomatis ini bisa liat secara lengkap pada video youtube “Hendry Kurniawan” berikut ini :


sumber video : https://www.youtube.com/watch?v=AqDyum0Etu0&t=40s

Bagi yang belum memahami cara mengendalikan motor servo maka bisa baca materi tentang Motor Servo.

Selamat membaca.

3 komentar untuk "PINTU OTOMATIS DENGAN KARTU RFID "