Sistem Keamanan dengan Password

LAPORAN PRAKTIKUM

LABORATORIUM MIKROKONTROLER I 

SISTEM KEAMANAN DENGAN PASSWORD

 


 

Dosen Pengampu:

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

 

Disusun Oleh :

Kelompok 5

1.      Arief Rahman Hakim

RE-2A

(4.34.22.0.05)

2.      Elva Puspita Wardani

RE-2A

(4.34.22.0.08)

3.      M. Nur Afiq Pradana

RE-2A

(4.34.22.0.17)

 

 

PROGRAM STUDI TEKNOLOGI REKAYASA ELEKTRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2023


BAB I
PENDAHULUAN

1.1.   Latar Belakang

Keamanan pintu merupakan hal yang paling utama dalam merancang keamanan ruangan, untuk menciptakan keamananan yang baik. Ada beberapa percobaan yang dapat dikerjakan salah satunya yaitu dengan memanfaatkan teknologi untuk merancang alat keamanan yang baik. Banyak sekali terjadi kasus-kasus pencurian di rumah-rumah atau pun di berbagai instansi karena banyak factor, salah satunya adalah pada sistem keamanan pintu yang tidak terproteksi dengan baik. Salah satu solusi yang bisa diterapkan untuk mengatasi permaslahan tersebut yaitu penggunaan sistem keamanan pintu dengan kata sandi.

1.2.   Tujuan

Tujuan dari perancangan alat ini, yaitu:

1.     Menciptakan sistem keamanan pintu dengan menggunakan konsep teknologi terkini.

2.     Mengurangi dampak yang ditimbulkan akibat kerugian dalam terjadinya tindakan kriminal.

1.3.   Rumusan Masalah

Berdasarkan uraian di atas, maka ada beberapa rumusan masalah yang harus diperhatikan, yaitu:

1.     Bagaimana cara kita menjaga ruangan agar tetap aman?

2.     Bagaimana merancang sistem keamanan dengan password berbasis ATMega 8535?

3.     Bagaiaman acara mengganti password pada sistem kemananan tersebut?

 

 

BAB II
TINJAUAN PUSTAKA

2.1.   Mikrokontroler ATMega8535

Mikrokontroler merupakan keseluruhan sistem computer yang dikemas menjadi sebuah chip dimana di dalamnya sudah terdapat mikroprosesor, I/O, memori bahkan ADC. Berbeda dengan mikroprosesor yang berfungsi sebagai pemroses data.

Mikrokontroler AVR (Alf and Vegard Risc processor) memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit. Di sisi lain. sebagian besar instruksi dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced Instruction Set Computing). Secara umum, AVR bisa dikelompokkan ke dalam 4 kelas, yaitu keluarga ATMega, keluarga AT90Sxx dan AT86RFxx. Pada dasarnya yang membedakan masing-masing adalah peripheral, kapasitas memori dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. 

Gambar 2.1 ATMega8535

 

Konfigurasi Pin ATMega8535

Berikut ini konfigurasi dan fungsi pin ATMega8535 :

1.     VCC digunakan sebagai input sumber tegangan positif (+)

2.     GND digunakan sebagai sumber tegangan negatif ground (-)

3.     Port A (PA7 - PA0) berfungsi sebagai input analog dari ADC (Analog to Digital Converter) dan juga sebagai port I/O dua arah, jika ADC tidak digunakan

4.     Port B (PB7 - PB0) berfungsi sebagai port I/O dua arah. Port PB5, PB6 dan PB7 berfungsi sebagai MOSI, MISO dan SCK yang digunakan pada proses downloading 

5.     Port C (PC7 - PC0) berfungsi sebagai port I/O dua arah 

6.     Port D (PD7 - PD0) berfungsi sebagai port I/O dua arah. Selain itu, port PD0 dan PD1 juga berfungsi sebagai RXD dan TXD yang digunakan untuk komunikasi serial

7.     RESET digunakan sebagai input reset

8.     XTAL1 digunakan sebagai input ke amplifier inverting osilator dan input ke sirkuit clock internal

9.     XTAL2 digunakan sebagai output dari amplifier inverting osilator

10.  AVCC digunakan sebagai input tegangan untuk Port A dan ADC

11.  AREF digunakan sebagai tegangan referensi untuk ADC

 

Arsitektur ATMega8535

Gambar 2.2 Blok Diagram ATMega8535

 

Berdasarkan blok diagram di atas bisa dilihat bahwa ATMega8535 memiliki bagian-bagian sebagai berikut:

1.     Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D

2.     ADC 8 channel 10 bit

3.     Tiga buah timer/counter dengan kemampuan pembanding

4.     CPU yang terdiri dari 32 buah register

5.     Watchdog timer dengan osilator internal

6.     SRAM 512 byte

7.     Memori Flash sebesar 8KB dengan kemampuan Read While Write

8.     Interrupt internal dan eksternal

9.     Port antarmuka SPI (Serial Peripheral Interface)

10.  EEPROM 512 byte yang bisa diprogram ketika operasi

11.  Antarmuka komparator analog

12.  Port USART untuk komunikasi serial

2.2.   Keypad

Keypad numerik hanya berisi tombol karakter angka, dari 0 – 9, sedangkan keypad alfanumerik sama dengan keypad numeric dengan ditambahi karakter alphabet A – D. Kedua tipe keypad ini dilengkapi dengan spesial karakter ‘*’ dan ‘#’. 

Dengan demikian, sebuah keypad numerik akan berisi 12 karakter (12 tombol), sedangkan keypad alfanumerik terdiri dari 16 karakter (16 tombol). Inilah yang membedakannya dengan keyboard, yakni sekumpulan tombol dengan karakter alfanumerik (plus spesial karakter) yang lebih banyak variasinya sesuai dengan standar ASCII.

Gambar 2.3 Modul Keypad 3x4

 

Cara kerja rangkaian Keypad 3x4:

1.     Apabila Kolom 1 diberi logika ‘0’, kolom kedua dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 1, 4, 7, dan *, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.

2.     Apabila Kolom 2 diberi logika ‘0’, kolom pertama dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 2, 5, 8, dan 0, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.

3.     Apabila Kolom 3 diberi logika ‘0’, kolom pertama dan kolom kedua diberi logika ‘1’ maka program akan mengecek tombol 3, 6, 9, dan #, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.

4.     Kemudian kembali ke semula, artinya program looping terus mendeteksi data kolom dan data baris, cara ini disebut scaning atau penyapuan keypad untuk mendapatkan saklar mana yang ditekan.

2.3.   LCD

Gambar 2.4 LCD 16x2

LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama.Adapun fitur yang disajikan dalam LCD ini adalah:

·       Terdiri dari 16 karakter dan 2 baris.

·       Mempunyai 192 karakter tersimpan.

·       Terdapat karakter generator terprogram.

·       Dapat dialamati dengan mode 4-bit dan 8-bit.

·       Dilengkapi dengan back light. Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 12 7), dimana lcd merupakan variable yang dipanggil setiap kali intruksi terkait LCD akan digunakan.

2.4.   Buzzer

Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

Gambar 2.5 Buzzer

 

2.5.   LED

Light Emitting Diode atausering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahayamonokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuatdari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata.

Gambar 2.6 LED

 

LED merupakan keluarga dari Dioda yang terbuat dari semikonduktor. Cara kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitukutub Positif (P) dan kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda. LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan.

 

BAB III
PERANCANGAN ALAT

3.1.   Daftar Komponen

Komponen yang kami gunakan untuk perancangan alat ini, yaitu:

1.     Board Mikrokontroler ATmega8535

2.     Keypad 3x4

3.     Buzzer

4.     LED

5.     LCD

3.2.   Cara Kerja

Cara kerja alat ini yaitu, ketika pertama kali dinyalakan, kondisi awal pintu adalah terkunci. Kemudian pengguna bisa memasukkan password sebanyak 5 angka. Jika benar, maka pintu akan terbuka. Jika salah, maka pintu tetap terkunci. Saat pintu terbuka, pengguna bisa mengganti password baru dengan menekan tombol * lalu memasukkan password baru. Setelah itu, tekan tombol # untuk menyimpan dan menutup pintu.

3.3.   Diagram Blok

Gambar 3.1 Diagram Blok

3.4.   Diagram Alir

Gambar 3.2 Diagram Alir

3.5.   Gambar Rangkaian

Gambar 3.3 Gambar Rangkaian

3.6.   Kode Program

/* ======================================================================

Pemrogram      : Kelompok RE-2A/5

  1. 05-Arief Rahman Hakim     NIM:4.34.22.0.05

  2. 08-Elva Puspita Wardani     NIM:4.34.22.0.08

  3. 17-M. Nur Afiq Pradana      NIM:4.34.22.0.17

Tgl.Praktikum  : Selasa, 31 Oktober 2023

=========================================================================

Pintu Gerbang Dengan Password

project akhir.c

  program untuk mengendalikan pintu gerbang berpassword

-------------------------------------------------------------------------

Komponen:

- 1x keypad 3x4

- 1x Motor servo

- 1x LCD

=========================================================================*/

//=== Pustaka ===                  

#include "mega8535.h"                      //ATmega 8535

#include "alcd.h"                          //LCD

#include "delay.h"                         //Delay

#include "stdio.h"                         //I/O standart

//=== Deklarasi variabel ===

char

  password[5],

  pass[5],

  a = 0,

  digit = 0,

  flag1,

  flag2,

  flag3;

int

  p,

  pw,

  kondisi,

  counter; 

//=== Pengesetan awal ===

void buzzer(){

  PORTB.1 = 1; delay_ms(10); PORTB.1 = 0; counter++;

}

void alert(int i){

  PORTB.1 = 1; delay_ms(i); PORTB.1 = 0;

}

void baca_keypad(){

  PORTD = 0b1101111;                       //kolom 1

  delay_us(10);

  if(PIND.0==0){      if(flag1 == 0){digit = 1; buzzer(); flag1 = 1;}}

  else if (PIND.1==0){if(flag1 == 0){digit = 4; buzzer(); flag1 = 1;}}

  else if (PIND.2==0){if(flag1 == 0){digit = 7; buzzer(); flag1 = 1;}}

  else if (PIND.3==0){if(flag1 == 0){digit = 11;buzzer(); flag1 = 1;}}//* = 11

  else{flag1 = 0;}

  

    PORTD = 0b1011111;                     //kolom 2

  delay_us(10);

  if(PIND.0==0){      if(flag2 == 0){digit = 2; buzzer(); flag2 = 1;}}

  else if (PIND.1==0){if(flag2 == 0){digit = 5; buzzer(); flag2 = 1;}}

  else if (PIND.2==0){if(flag2 == 0){digit = 8; buzzer(); flag2 = 1;}}

  else if (PIND.3==0){if(flag2 == 0){digit = 0; buzzer(); flag2 = 1;}}

  else{flag2 = 0;}

 

    PORTD = 0b0111111;                     //kolom 3

  delay_us(10);

  if(PIND.0==0){      if(flag3 == 0){digit = 3; buzzer(); flag3 = 1;}}

  else if (PIND.1==0){if(flag3 == 0){digit = 6; buzzer(); flag3 = 1;}}

  else if (PIND.2==0){if(flag3 == 0){digit = 9; buzzer(); flag3 = 1;}}

  else if (PIND.3==0){if(flag3 == 0){digit = 12;buzzer(); flag3 = 1;}}//# = 12

  else{flag3 = 0;}

  }

 

void main(void){

  lcd_init(16);                            //Lcd 16x2

 

  DDRD  = 0b1110000;                       //pintu PD2-0 sebagai masukan

  DDRB  = 0xFF;                            //pin B sebagai output

  DDRC  = 0xFF;

  PORTD = 0b1111111;                       //Aktifkan R pullup

  pass[0]=1; pass[1]=2; pass[2]=3; pass[3]=4; pass[4]=5;

//=== Program utama ===

while (1) {

  baca_keypad();

 

  //kondisi 0 = lcd tampil "pintu terkunci"

  if(kondisi == 0){

  lcd_gotoxy(0, 0); lcd_putsf("=Pintu Terkunci=");

  lcd_gotoxy(0, 1); lcd_putsf("                ");

  PORTC.3 = 1; //pin kunci

  PORTC.2 = 0; //pin buka

  }

 

  //kondisi 1 = masukkan password

  if(kondisi == 1){

  lcd_gotoxy(0, 0); lcd_putsf("Masukan Password");

  lcd_gotoxy(0, 1); lcd_putsf("=");

 

  password[counter] = digit;

  lcd_gotoxy(1, 1); lcd_printf("%i", password[0]);

  lcd_gotoxy(2, 1); lcd_printf("%i", password[1]);

  lcd_gotoxy(3, 1); lcd_printf("%i", password[2]);

  lcd_gotoxy(4, 1); lcd_printf("%i", password[3]);

  lcd_gotoxy(5, 1); lcd_printf("%i", password[4]);

 

  password[counter] = digit;

  if(counter == 4){

  if(password[0]==pass[0]&&password[1]==pass[1]&&password[2]==pass[2]&&password[3]==pass[3]&&password[4]==pass[4])

  {

  kondisi = 2;

  counter = 0;

  } else {kondisi = 3;}

 

  }

  }

 

 

  if(kondisi == 2){

    lcd_gotoxy(0, 0); lcd_putsf("=Pintu  Terbuka=");

    lcd_gotoxy(0, 1); lcd_putsf("           ");

    PORTC.3 = 0; //pin kunci

    PORTC.2 = 1; //pin buka

    for(p=0; p<=4; p++){password[p] = 0;}

    digit = 0; baca_keypad();

    if(digit == 11){kondisi = 5; counter = -1;}

    if(digit == 12){kondisi = 4;}

   

  }

 

  if(kondisi == 3){

    lcd_gotoxy(0, 0); lcd_putsf("=Password Salah=");

    lcd_gotoxy(0, 1); lcd_putsf("                ");

   

    //PORTB.1 = 1; delay_ms(1000); PORTB.1 = 0; //alert

    baca_keypad();

    for(p=0; p<=4; p++){password[p] = 0;} 

    counter = -1;

    if(digit == 12){kondisi = 1;}

  }

 

  if(kondisi == 4){

  lcd_gotoxy(0, 0); lcd_putsf("=Pintu Terkunci=");

  lcd_gotoxy(0, 1); lcd_putsf("                ");

  PORTC.3 = 1; //pin kunci

  PORTC.2 = 0; //pin buka

  baca_keypad();

  if(digit == 12){

  counter = -1; digit = 0; delay_ms(10); kondisi = 1; lcd_clear();

  }

  }

 

  if(kondisi == 5){ baca_keypad();

    lcd_gotoxy(0, 0); lcd_putsf("=Password baru =");

    lcd_gotoxy(0, 1); lcd_putsf("=");

    password[counter] = digit;

    lcd_gotoxy(1, 1); lcd_printf("%i", password[0]);

    lcd_gotoxy(2, 1); lcd_printf("%i", password[1]);

    lcd_gotoxy(3, 1); lcd_printf("%i", password[2]);

    lcd_gotoxy(4, 1); lcd_printf("%i", password[3]);

    lcd_gotoxy(5, 1); lcd_printf("%i", password[4]);

   password[counter] = digit;

     if(counter == 4){

     for(pw=0; pw<=4; pw++){pass[pw] = password[pw];}

     lcd_gotoxy(0, 0); lcd_putsf("Password diganti");

     lcd_gotoxy(0, 1); lcd_putsf("                ");

     delay_ms(1000); kondisi = 2;

     }

  }

   

  if(kondisi == 0 && digit == 12){

  counter = -1; digit = 0; delay_ms(10); kondisi = 1; lcd_clear();

  }

  /*   

  lcd_gotoxy( 5, 1); lcd_printf("%i", kondisi);

  lcd_gotoxy( 0, 1); lcd_printf("%i", digit);

  */

  }//while

 

}//main

 

//=== Sub program ===

 

BAB IV
KESIMPULAN

Berdasarkan hasil perancangan dan implementasi yang telah dilakukan, maka dapat disimpulkan bahwa:

  1. Perancangan Alat Sistem Keamanan dengan Password berjalan dengan baik.
  2. Sistem keamanan dengan password ini dapat meminimalisir angka pencurian.

 

BAB V
DAFTAR PUSTAKA

Wahyuni, Refni, et al. "Alat Pengaman Pintu dengan Password Menggunakan Arduino Uno At Mega 328p dan Selenoid Door Lock." Informatika, vol. 12, no. 1.

BAB VI
LAMPIRAN

Video Simulasi klik di sini.
File Presentasi klik di sini.

 


 

Komentar

Postingan populer dari blog ini

PROTOTYPE SMART HOME DENGAN ESP32 BERBASIS INTERNET OF THINGS

IoT Health Monitoring System for Sports: Real-Time Heart Rate and Temperature Tracking

MONITORING PENETAS TELUR BERBASIS IoT