SMART LOCK DOOR DENGAN MENGGUNAKAN PASSWORD BERBASIS ARDUINO

 

LABORATORIUM MIKROKONTROLLER II

SMART LOCK DOOR DENGAN MENGGUNAKAN PASSWORD

BERBASIS ARDUINO

 


 

 

Dosen Pengampu:

Dr. Samuel Beta K., Ing. Tech., M.T.

 

Disusun Oleh :

1. Aryananda Labib K.M         (4.34.22.1.06)

2. M.Arya saputra                  (4.34.22.1.14)

3. Restu danu kuncoro           (4.34.22.1.20)

 

 

PROGRAM STUDI TEKNOGI REKAYASA ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO 
POLITEKNIK NEGERI SEMARANG 
2023/2024

 

 

 

1.     LATAR BELAKANG

Latar belakang penggunaan smartdoor dengan sistem password adalah penggunaan kunci manual kurang praktis pada zaman sekarang, karena harus membawa kunci ketika akan bepergian dan bahkan sering kali lupa dan kehilangan kunci. Sehingga diperlukan kunci yang lebih praktis dan efisien untuk membuka dan menutup pintu. Dengan demikian, penggunaan smartdoor dengan sistem password tidak hanya meningkatkan keamanan dan kenyamanan, tetapi juga mengintegrasikan teknologi modern ke dalam pengalaman sehari-hari penghuni rumah atau pengguna kantor

 

2.     RUMUSAN MASALAH

Smart Door Lock adalah teknologi canggih yang bisa meningkatkan keamanan pintu rumahmu dengan cara yang lebih mudah dan praktis. Dengan menggunakan Smart Door, kamu bisa merasa lebih tenang dan nyaman ketika meninggalkan rumah karena pintu akan terkunci dan hanya bisa dibuka dengan password yang sudah kita setting . Selain itu juga memberikan kemudahan manajemen akses dan tingkat keamanan yang lebih tinggi dari kunci fisik

 

3.     SOLUSI PERMASALAHAN

Dengan menggunakan smart lock door dengan password diyakini dapat mengatasi beberapa masalah yang ada. Dengan menggunakan smart lock door ini anda dapat pergi meninggalkan rumah dengan nyaman tanpa khawatir karena dengan menggunakan smart lock door ini hanya orang yang mengetahui password yang akan bisa masuk dan jika ada seseorang yang ingin masuk, tapi salah memasukkan password 3 kali maka buzzer akan menyala karena smart lock door kami sudah dilengkapi dengan alarm.

4.     DASAR TEORI

·       Arduino Uno

Papan mikorokontroller berbasis ATmega 328p yang memiliki 14 pin input / output digital (6 di antaranya dapat digunakan sebagai output PWM), 6 input analog, dan koneksi USB untuk memprogram papan serta menyediakan daya. Papan Arduino Uno diprogram menggunakan bahasa pemrograman C/C++ melalui lingkungan pengembangan Arduino IDE. Program yang dibuat kemudian diunggah ke papan melalui koneksi USB. Arduino IDE menyediakan berbagai pustaka (library) yang memudahkan integrasi dengan sensor dan modul lain.

Kelebihan Arduino Uno: mudah digunakan, kompatibel dengan banyak sensor dan modul, harga yang relatif terjangkauu

Kekurangan Arduino Uno: kinerjaterbatas untuk aplikasi pemroses memori besar, tidak cocok untuk aplikasi indutri.


·       MOTOR SERVO

Motor servo dikendalikan dengan memberikan Pulse Wide Modulation / PWM melalui kabel kontrol. Durasi "denyut" (pulse) yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Poros motor servo akan bergerak dan bertahan di posisi yang telah diperintahkan ketika durasi "denyut"nya telah diberikan. Motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya apabila ada yang mencoba memutar atau mengubah posisi tersebut. Posisi motor servo tidak akan seterusnya diam saja karena sinyal "denyut"nya harus diulang setiap 20 ms (mili second) untuk menginstruksikan agar tetap pada posisinya.

Motor servo merupakan perangkat yang terdiri dari :

1. Motor DC

2. Serangkaian gear (melekat pada poros motor DC) yang akan memperlambat putaran poros dan meningkatkan torsi motor servo

3. Rangkaian kontrol

4. Potensiometer berfungsi sebagai penentu batas posisi putaran poros motor servo (dengan perubahan resistansinya saat motor berputar) 

 Motor servo memiliki sistem kontrol loop tertutup yang digunakan untuk mengontrol gerakan dan posisi akhir dari poros motor servo. Secara sederhana, posisi poros output akan dibaca oleh sensor untuk mengetahui posisi poros sudah sesuai yang diinginkan atau belum. Jika belum, kontrol input akan mengirim sinyal kontrol untuk membuat posisi poros tersebut tepat pada posisi yang diinginkan. Bukan kecepatan yang menentukan posisi dari poros servo melainkan durasi pulsa positif.  

Nilai pulsa netral yang bergantung pada motor servo menjaga poros motor servo di posisi tengah. Meningkatkan nilai pulsa akan membuat servo berputar searah jarum jam dan pulsa yang lebih pendek akan memutar poros berlawanan arah jarum jam. Pulsa kendali servo biasanya diulang setiap 20ms (tergantung dari motor servo). Kita harus selalu  memberi tahu servo ke mana harus bergerak (posisi). Ada beberapa jenis motor servo, yang kita pakai di sini adalah positional micro servo. Dibandingkan dengan motor DC, servo biasanya memiliki 3 kabel (power, ground, control). Kabel control pada servo berfungsi menarik arus untuk menggerakkan motor.



·       KEYPAD

Keypad adalah perangkat input atau panel kontrol yang terdiri dari sejumlah tombol yang biasanya berbentuk persegi panjang atau kotak kecil. Keypad digunakan untuk memasukkan data atau perintah dengan cara menekan tombol-tombol yang tersedia. Keypad umumnya terbuat dari bahan plastik atau logam ringan dan dirancang untuk kegunaan yang mudah dan nyaman. Fungsinya bervariasi tergantung pada konteks penggunaannya, tetapi prinsip dasarnya adalah sebagai perangkat input yang memungkinkan pengguna untuk berinteraksi dengan perangkat elektronik atau sistem tertentu dengan cara memasukkan kombinasi angka, huruf, atau simbol.



·       LCD

LCD adalah penampil kristal cair. Sesuai namanya layar bertipe LCD menggunakan kristal cair sebagai penampil utamanya. Mengutip Nextip.com, LCD adalah layar yang menggunakan susunan kristal cair dengan diterangi oleh lampu latar untuk menghasilkan gambar. Pada dasarnya, perangkat elektronik seperti laptop dan ponsel yang memakai layar LCD memiliki tampilan gambar serta keakuratan warna yang cukup baik. Selain itu, LCD adalah salah satu jenis layar yang memiliki performa lumayan bagus saat digunakan di bawah sinar matahari langsung. Alasannya karena gambar yang dihasilkan berasal dari lampu latar yang diterangi dari belakang. Meskipun punya kinerja cukup bagus di bawah sinar matahari, tetapi layar seperti LCD memiliki representasi warna yang berpotensi kurang akurat. Pada tahun 2011 ke atas, LCD adalah layar yang sangat populer diterapkan pada ponsel pintar. Hal ini tidak lain karena pemakaian LCD memakan biaya yang relatif rendah, namun tetap menghasilkan gambar bagus. Sayangnya, ketenaran LCD perlahan surut saat teknologi layar OLED atau organic light-emitting diode diperkenalkan. Layar OLED sendiri memakai panel kaca atau plastik tunggal. Ini tentu sangat berbeda bila dibandingkan dengan LCD yang menggunakan dua. Dalam pengoperasiannya, layar OLED tidak memerlukan lampu latar seperti LCD. Perangkat seperti televisi yang menggunakan panel OLED biasanya jauh lebih tipis, serta memiliki warna hitam yang jauh lebih dalam. Sebab setiap piksel dalam layar OLED menyala secara individual. Kendati demikian, ada satu hal yang harus dipahami terkait layar LCD adalah, layar ini masih digunakan dan menjadi opsi alternatif bagi produsen perangkat elektronik. Dengan kata lain, layar LCD masih bisa kita temukan hingga sekarang.



5.     PRINSIP KERJA

cara kerja smart lock door ini yaitu menggunakan pasword yang perlu dimasukan pada keypad yang sudah ada di pintu, jika password benar maka pengunci pintu akan terbuka jika salah memasukan password maka buzzer akan menyala.

6.     ALAT DAN BAHAN

·       ARDUINO UNO

·       SERVO

·       LCD 16X2

·       KEYPAD 4X4

·       BUZZER

·       LED 2X

·       KABEL JUMPER SECUKUPNYA


 DIAGRAM BLOK

 


7.     GAMBAR PENGAWATAN


8.     GAMBAR RANGKAIAN


9.     FLOWCHART


10 PROGRAM ARDUINO

#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Password.h>

#define hijau 10
#define merah 12
#define buzzer 13

Servo servo;
LiquidCrystal_I2C lcd(0x27, 16, 2);

String newPasswordString; //hold the new password
char newPassword[6]; //charater string of newPasswordString
byte a = 5;
bool value = true;

Password password = Password("9999"); //Enter your password

byte maxPasswordLength = 6;
byte currentPasswordLength = 0;
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns


char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'},
};


byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


void setup() {
  Serial.begin(9600);
  pinMode(buzzer, OUTPUT);
  pinMode(hijau, OUTPUT);
  pinMode(merah, OUTPUT);
  servo.attach(11);
  servo.write(50);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(3, 0);
  lcd.print("WELCOME TO");
  lcd.setCursor(0, 1);
  lcd.print("DOOR LOCK SYSTEM");
  delay(3000);
  lcd.clear();
}

void loop() {
  lcd.setCursor(1, 0);
  lcd.print("ENTER PASSWORD");

  char key = keypad.getKey();
  if (key != NO_KEY) {
    delay(60);
    if (key == 'C') {
      resetPassword();
    } else if (key == 'D') {
      if (value == true) {
        doorlocked();
        value = false;
      } else if (value == false) {
        dooropen();
        value = true;
      }
    } else {
      processNumberKey(key);
    }
  }
}

void processNumberKey(char key) {
  lcd.setCursor(a, 1);
  lcd.print(key);
  a++;
  if (a == 11) {
    a = 5;
  }
  currentPasswordLength++;
  password.append(key);

  if (currentPasswordLength == maxPasswordLength) {
    doorlocked();
    dooropen();

  }
}

void dooropen() {
  if (password.evaluate()) {
    digitalWrite(buzzer, HIGH);
    digitalWrite(hijau, HIGH);
    delay(300);
    digitalWrite(buzzer, LOW);
    digitalWrite(hijau, LOW);
    servo.write(50);
    delay(100);
    lcd.setCursor(0, 0);
    lcd.print("CORRECT PASSWORD");
    lcd.setCursor(0, 1);
    lcd.print("OPEN THE DOOR...");
    delay(2000);
    lcd.clear();
    a = 5;
  } else {
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    lcd.setCursor(0, 0);
    lcd.print("WRONG PASSWORD!");
    lcd.setCursor(0, 1);
    lcd.print("PLEASE TRY AGAIN");
    delay(2000);
    lcd.clear();
    a = 5;
  }
  resetPassword();
}

void resetPassword() {
  password.reset();
  currentPasswordLength = 0;
  lcd.clear();
  a = 5;
}

void changePassword() {
  newPasswordString = "1234";
  newPasswordString.toCharArray(newPassword, newPasswordString.length() + 1); //convert string to char array
  password.set(newPassword);
  resetPassword();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Password changed");
  delay(1000);
  lcd.clear();
}

void doorlocked() {
  if (password.evaluate()) {
    digitalWrite(buzzer, HIGH);
    digitalWrite(hijau, HIGH);
    servo.write(160);
    delay(300);
    digitalWrite(buzzer, LOW);
    digitalWrite(hijau, LOW);
    delay(100);
    lcd.setCursor(0, 0);
    lcd.print("CORRECT PASSWORD");
    lcd.setCursor(2, 1);
    lcd.print("DOOR LOCKED");
    delay(2000);
    lcd.clear();
    a = 5;
  } else {
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    digitalWrite(buzzer, HIGH);
    digitalWrite(merah, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    digitalWrite(merah, LOW);
    delay(200);
    lcd.setCursor(0, 0);
    lcd.print("WRONG PASSWORD!");
    lcd.setCursor(0, 1);
    lcd.print("PLEASE TRY AGAIN");
    delay(2000);
    lcd.clear();
    a = 5;
  }
  resetPassword();
}

VIDEO ALAT



11.  KESIMPULAN

    Pembuatan prototype Sistem Password Smart Lock Door merupakan langkah kritis dalam mengembangkan solusi yang efisien dan efektif untuk mengelola keamanan dari setiap pintu yang menggunakanya. Melalui proses perancangan dan implementasi prototype ini, berbagai tujuan utama telah tercapai, yang meliputi:

  1. Keamanan yang Meningkat: Penggunaan smartdoor dengan sistem password memberikan tingkat keamanan yang lebih tinggi dibandingkan kunci konvensional. Password dapat dirancang untuk memiliki kompleksitas tertentu dan mudah diubah secara berkala, menjadikannya sulit untuk diretas atau ditebak oleh pihak yang tidak berwenang.
  2. Kemudahan Akses: Penggunaan smartdoor memungkinkan penghuni atau pengguna untuk membuka pintu hanya dengan memasukkan kode yang benar, tanpa perlu membawa kunci fisik. Ini sangat berguna dalam situasi di mana seseorang tidak ingin atau tidak bisa membawa kunci fisik, seperti saat berolahraga atau berbelanja.
  3. Integrasi dengan Sistem Smart Home: Smartdoor sering kali terintegrasi dengan sistem smart home lainnya, seperti perangkat keamanan, pencahayaan, atau pengaturan suhu. Hal ini memungkinkan pengguna untuk mengontrol semua aspek rumah mereka dari satu platform, meningkatkan kenyamanan dan efisiensi.
  4. Audit dan Pelacakan Akses: Sistem smartdoor dengan password sering dilengkapi dengan fitur audit yang memungkinkan pemilik rumah atau administrator untuk melacak siapa saja yang membuka pintu dan pada jam berapa. Ini dapat menjadi alat yang berguna untuk keamanan dan manajemen akses.
  5. Fleksibilitas dalam Manajemen Akses: Password pada smartdoor dapat diatur ulang atau dibagikan kepada orang lain dengan mudah melalui aplikasi atau antarmuka yang terhubung. Ini memungkinkan pemilik untuk memberikan akses sementara kepada tamu atau layanan pengiriman, yang kemudian dapat diubah atau dicabut setelah penggunaan selesai.
  6. Responsif terhadap Perkembangan Teknologi: Dengan semakin majunya teknologi, smartdoor dengan password dapat diperbarui dengan fitur keamanan baru atau integrasi dengan teknologi baru, seperti pengenalan wajah atau verifikasi dua faktor, untuk meningkatkan keamanan dan kenyamanan lebih lanjut.
  7. Penurunan Ketergantungan pada Kunci Fisik: Menggunakan smartdoor dengan password dapat mengurangi risiko kehilangan kunci fisik dan biaya penggantian kunci yang hilang atau rusak. Ini juga mengurangi kerumitan dalam mengelola banyak kunci untuk berbagai pintu atau ruangan.

 

Comments

Popular posts from this blog

TEMPAT SAMPAH OTOMATIS BERBASIS ARDUINO UNO

SISTEM MANAJEMEN PARKIR DENGAN PALANG OTOMATIS DAN PEMANTAUAN JUMLAH KENDARAAN BERBASIS ARDUINO IDE

TRACKING SOLAR PANEL DENGAN MOTOR SERVO BERBASIS ARDUINO UNO