Kunci Kantor Menggunakan Password



1. Tujuan Perancangan[back]
a. Mengamankan ruangan kantor dengan password.
b. Mengamankan ruangan kantor dari orang yang terkena demam.

2. Komponen[back]
a. Arduino
b. PIR Sensor
c. Touch Sensor
d. LM35 Sensor
e. Motor Servo
f. Liquid Crystal Display (LCD)
g. Light Emitting Diode (LED)

h. Resistor
i. Potensiometer
j. Keypad
k. Push Button
3. Dasar Teori[back]
a. Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :

Microcontroller

Atmega328P

Operating Voltage

5V

Input Voltage (recommended)

7-12V

Input Voltage (limit)

6-20V

Digital I/O Pins

14 (of which 6 provide PWM output)

PWM Digital I/O Pins

6

Analog Input Pins

6

DC Current per I/O Pin

20mA

DC Current for 3.3V Pin

50Ma

Flash Memory

32KB of which 0.5KB used by bootloader

SRAM

2KB

EEPROM

1KB

Clock Speed

16MHz

Bagian-bagian Arduino UNO :
- Power USB : Digunakan untuk menghubungkan papan arduino dengan komputer lewat koneksi   USB.
- Power Jack : Supply atau sumber listrik untuk arduino dengan tipe jack. Input DC 5-12V.
- Crystal Oscillator : Kristal ini digunakan sebagai layaknya detak jantung pada arduino. Jumlah   cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
- Reset : Digunakan unttuk mengulang program arduino dari awal atau reset.
- Digital Pins I/O : Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan      nilai logika (0 atau 1). Pin berlabel “~” adalah pin-pin PWM (Pulse Width Modulation) yang   dapat digunakan untuk menghasilkan PWM.
- Analog Pins : Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk          membaca sinyal atau sensor analog seperti sensor jarak jauh, suhu dsb, dan mengubahnya      menjadi nilai digital.
- LED Power Indicator : Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan   supply listrik dengan baik.

b. Pulse Width Modulation 
PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).
Duty Cycle = tON / ttotal
tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah(low atau 0)
ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”.

Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite(); 
PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.

c. Analog to Digital Converter
ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.

Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 padaArduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);

d. Komunikasi
Universal Asynchronous Receiver Transmitter (UART)
UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.
Cara Kerja Komunikasi UART
Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudian di transfer secara parallel ke data bus penerima.

Serial Peripheral Interface (SPI)
Serial Peripheral Interface ( SPI ) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaituMOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroler.
-MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI     sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
-MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO     sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.
-SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika  dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.
-SS/CS : Slave Select/ Chip Select adalah jalur master memilih slave mana yang akan dikirimkan  data.
Cara Kerja Komunikasi SPI
Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.

Inter Integrated Circuit (I2C)
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arahmenggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.
Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop. Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL. 
R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave) ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telahditerima receiver.

e. Sensor PIR
Pancaran infra merah masuk melalui lensa Fresnel dan mengenai sensor pyroelektrik, karena sinar infra merah mengandung energi panas maka sensor pyroelektrik akan menghasilkan arus listrik. Arus listrik inilah yang akan menimbulkan tegangan dan dibaca secara analog oleh sensor. Kemudian sinyal ini akan dikuatkan oleh penguat dan dibandingkan oleh komparator dengan tegangan referensi tertentu Untuk manusia sendiri memiliki suhu badan yang dapat menghasilkan pancaran infra merah dengan panjang gelombang antara 9-10 mikrometer (nilai standar 9,4 mikrometer), panjang gelombang tersebut dapat terdeteksi oleh sensor PIR. (Secara umum sensor PIR memang dirancang untuk mendeteksi manusia) dimana sensor ini membutuhkan tegangan masukan sebesar 5V DC. 

PIR sensor sendiri memiliki dua slot di dalamnya, setiap slot terbuat dari bahan khusus. PIR (Passive Infrared Receiver) merupakan sebuah sensor berbasiskan infrared. Di dalam sensor PIR ini terdapat bagian-bagian yang mempunyai perannya masing-masing, yaitu Fresnel Lens, IR Filter, Pyroelectric sensor, amplifier, dan comparator. 


(1) deteksi sudut 120 derajat.
(2) kisaran deteksi 7m.
(3) ukuran: 32x24mm.
(4) output sinyal switch TTL output sinyal tinggi (3.3 V), output sinyal rendah (0.4 V).
(5) waktu pemicu dapat disesuaikan 0,3 detik hingga 10 menit.
(6) umum digunakan dalam perangkat anti-pencurian dan peralatan lainnya.
(7) modul telah dipaksa untuk mengatur bekerja memicu dapat digunakan kembali.
(8) tegangan kerja 4,5 untuk 20V.

f. Sensor Sentuh
Sensor sentuh merupakan sebuah saklar yang cara penggunaanya dengan cara disentuh menggunakan jari. Ketika sensor ini disentuh maka sensor akan bernilai HIGH, mengapa? karena tubuh manusia terdapat aliran listrik sehingga sensor ini dapat bekerja. Sensor ini dapat kita gunakan untuk menyalakan lampu, motor, membuka pintu dan masih banyak lainnya. Sensor ini mempunya 3 buah pin yaitu pin SIG (signal/data), GND dan VCC.

Berdasarkan fungsinya, Sensor Sentuh dapat dibedakan menjadi dua jenis utama yaitu Sensor Kapasitif dan Sensor Resistif. Sensor Kapasitif atau Capacitive Sensor bekerja dengan mengukur kapasitansi sedangkan sensor Resistif bekerja dengan mengukur tekanan yang diberikan pada permukaannya.

g. Sensor LM35
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan. Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35 mempunyai kemampuan menghasilkan panas self-heating dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC . 

Sensor suhu memiliki beberapa karakteristik, diantaranya:
- Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC,      sehingga dapat dikalibrasi langsung dalam celcius.
- Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC
- Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
- Bekerja pada tegangan 4 sampai 30 volt.
- Memiliki arus rendah yaitu kurang dari 60 μA.
- Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara      diam.
- Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
- Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

h. Motor Servo
Motor Servo merupakan motor listrik dengan menggunakan sistem closed loop. Sistem tersebut digunakan untuk mengendalikan akselerasi dan kecepatan pada sebuah motor listrik dengan keakuratan yang tinggi. Selain itu, motor servo biasa digunakan untuk mengubah energi listrik menjadi mekanik melalui interaksi dari kedua medan magnet permanent.
Pada umumnya, motor servo terdiri dari tiga komponen utama yaitu :
• Motor 
• Sistem Kontrol
• Potensiometer atau encoder

Motor berfungsi sebagai penggerak roda gigi agar dapat memutar potensiometer dan poros output-nya secara bersamaan.
Jenis Motor Servo Berdasarkan Arusnya :
- Motor Servo AC 
Motor Servo AC merupakan jenis yang dapat menangani tegangan arus listrik yang tinggi atau beban berat. Motor servo AC sangat cocok diaplikasikan pada mesin-mesin industri yang bertujuan untuk dapat mengendalikannya.
- Motor Servo DC
Motor servo DC merupakan jenis yang hanya dapat menangani tegangan arus dan beban yang lebih kecil. Sehingga motor servo DC cocok diaplikasikan pada mesin-mesin kecil seperti mobil dan pesawat remote control.

i. Liquid Crystal Display (LCD)
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).
Gambar Penampang komponen penyusun LCD
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.

Kaki-kaki yang terdapat di LCD

j. Light Emitting Diode (LED)
LED adalah suatu semikonduktor yang memancarkan cahaya, LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

k. Resistor
Resistor merupakan komponen pasif yang memiliki nilai resistansi tertentu dan berfungsi untuk menghambat jumlah arus listrik yang mengalir dalam suatu rangkaian. Resistor dapat diklasifikasikan menjadi beberapa jenis, diantaranya resistor nilai tetap (fixed resistor), resistor variabel (variabel resistor), thermistor, dan LDR.
Cara membaca nilai resistor :
Cara menghitung nilai resistansi resistor dengan gelang warna :
1. Masukan angka langsung dari kode warna gelang pertama.
2. Masukan angka langsung dari kode warna gelang kedua.
3. Masukan angka langsung dari kode warna gelang ketiga.
4. Masukkan jumlah nol dari kode warna gelang ke-4 atau pangkatkan angka tersebut dengan 10     (10^n).
5. Gelang terakhir merupakan nilai toleransi dari resistor.
l. Potensiometer
Potensiometer adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya. Gambar dibawah ini menunjukan Struktur Internal Potensiometer beserta bentuk dan Simbolnya.
Pada dasarnya bagian-bagian penting dalam Komponen Potensiometer adalah: 
- Penyapu atau disebut juga dengan Wiper
- Element Resistif 
- Terminal 

Berdasarkan bentuknya, Potensiometer dapat dibagi menjadi 3 macam, yaitu:
• Potensiometer Slider, yaitu Potensiometer yang nilai resistansinya dapat diatur dengan cara menggeserkan Wiper-nya dari kiri ke kanan atau dari bawah ke atas sesuai dengan pemasangannya. Biasanya menggunakan Ibu Jari untuk menggeser wiper-nya
• Potensiometer Rotary, yaitu Potensiometer yang nilai resistansinya dapat diatur dengan cara memutarkan Wiper-nya sepanjang lintasan yang melingkar. Biasanya menggunakan Ibu Jari untuk memutar wiper tersebut. Oleh karena itu, Potensiometer Rotary sering disebut juga dengan Thumbwheel Potentiometer. 
• Potensiometer Trimmer, yaitu Potensiometer yang bentuknya kecil dan harus menggunakan alat khusus seperti Obeng (screwdriver) untuk memutarnya. Potensiometer Trimmer ini biasanya dipasangkan di PCB dan jarang dilakukan pengaturannya. 

    Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer. 
    Elemen Resistif pada Potensiometer umumnya terbuat dari bahan campuran Metal (logam) dan Keramik ataupun Bahan Karbon (Carbon). Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer dapat digolongkan menjadi 2 jenis yaitu Potensiometer Linear (Linear Potentiometer) dan Potensiometer Logaritmik (Logarithmic Potentiometer). 
    Dengan kemampuan yang dapat mengubah resistansi atau hambatan, Potensiometer sering digunakan dalam rangkaian atau peralatan Elektronika dengan fungsi-fungsi sebagai berikut:      
• Sebagai pengatur Volume pada berbagai peralatan Audio/Video seperti Amplifier, Tape Mobil,      DVD Player. 
• Sebagai Pengatur Tegangan pada Rangkaian Power Supply 
• Sebagai Pembagi Tegangan Aplikasi Switch TRIAC 
• Digunakan sebagai Joystick pada Tranduser
• Sebagai Pengendali Level Sinyal

m. Keypad
Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 4×4 merupakan salah satu contoh keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut:
Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Misal kita asumsikan keypad aktif LOW (semua line kolom dan baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 4×4 diatas dapat dituliskan sebagai berikut.
- Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
- Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
- Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
- Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.

n. Push Button
Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal.
Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi On dan Off.

Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button switch menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan Off.
Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open).
- NO (Normally Open), merupakan kontak terminal dimana kondisi normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan, kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (Push Button ON).
- NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (Push Button Off).

4. Listing Program[back]
  • ·   MASTER

    //MASTER

    #include <Keypad.h>

    #include <Password.h>

    #include <LiquidCrystal.h>

    // #include <SoftwareSerial.h>

    // SoftwareSerial pengganti(2,13);

     

    LiquidCrystal lcd(10, A1, A2, A3, A4, A5);

     

    //PIR

    int pir = 13;

    int nilai_pir;

    // int LED = 6;

    //inisialisasi pin lm35

    byte lm35 = A0;

    int nilai;

    int LED = 11;

    int LEDm = 12;

     

    Password password = Password( "1" ); // ubah password di sini

     

    const byte baris = 4; // jumlah baris

    const byte kolom = 4; // jumlah kolom

     

    char keys[baris][kolom] =

    {

    {'1', '2', '3', 'A'},

    {'4', '5', '6', 'B'},

    {'7', '8', '9', 'C'},

    {'*', '0', '#', 'D'}

    };

     

    // inialisasi pin untuk keypad

    byte kolomPin[kolom] = {5432};

    byte barisPin[baris] = {9876};

     

    // membuat objek untuk pembacaan keypad

    Keypad keypad = Keypad( makeKeymap(keys), barisPin, kolomPin, baris, kolom );

     

    // ****************** PROGRAM DEFAUT/SETTING AWAL ******************* //

    void setup()

    {

    // inialisasi baud rate serial monitor

    Serial.begin(19200);

    // pengganti.begin(9600);

    // deklarasi jumlah baris & kolom LCD

    lcd.begin(162);

    // inialisasi status I/O pin

    pinMode(LED, OUTPUT);

    pinMode(lm35, INPUT);

    pinMode(pir, INPUT);

    // deklarasi awal status relay

    digitalWrite(LED, LOW); // kondisi awal selenoid menutup

    // deklarasi variabel keypad event

    keypad.addEventListener(keypadEvent);

    // menulis pada lcd

    lcd.clear();

    lcd.setCursor(00);

    lcd.print("SMART DOOR");

    lcd.setCursor(01);

    lcd.print("GRUP 6 Up&Uc");

    delay(1500);

    }

     

    // *************************** PROGRAM PERULANGAN TERUS MENERUS ************************** //

     

    void loop()

    {

    digitalWrite(LED, LOW);

    nilai_pir= digitalRead(pir);

    if(nilai_pir = 1){

    nilai = analogRead(lm35);

    nilai = nilai/2.0479;

    // Serial.println(nilai);  

    if(nilai>=20 && nilai<=36){

    // menulis pada lcd

    lcd.setCursor(00);

    lcd.print(nilai);

    lcd.println(" C Anda Sehat");

    lcd.setCursor(01);

    lcd.print("Masukkan Password");

    // membaca keypad

    keypad.getKey();

    delay(10);

    lcd.clear();

    }

    if(nilai>37){

    digitalWrite(LEDm, HIGH);

    lcd.setCursor(00);

    lcd.println(nilai);

    lcd.print(" C Anda sakit");

    lcd.setCursor(01);

    lcd.print("silahkan pulang");

    delay(5000);

    lcd.clear();

    }

    }

    else{

    // menulis pada lcd

    lcd.setCursor(00);

    lcd.print("Sepi");

    lcd.println(nilai);

    lcd.setCursor(01);

    lcd.print("mana orang?");

    delay(5000);

    lcd.clear();

    }

    }

    // ********************* PROGRAM TOMBOL UNTUK ENTER DAN RESET ******************* //

    void keypadEvent(KeypadEvent eKey)

    {

    switch (keypad.getState())

    {

    case PRESSED:

    Serial.print("Enter: ");

    Serial.println(eKey);

    delay(1);

    // Serial.write(254);

    switch (eKey) {

    case '#': Login()delay(1)break; // tombol A untuk login

     

    case '*': password.reset()delay(10)break; // tombol B untuk reset

     

    defaultpassword.append(eKey)delay(10);

    }

    }

    }

    // ********************** PROGRAM LOGIN ************************* //

    void Login()

    {

    // jika password benar

    if (password.evaluate())

    {  

    lcd.clear();

    lcd.setCursor(00);

    lcd.print("Password Benar");

    digitalWrite(LED, HIGH);

    Serial.println('1');

    delay(500);

    Serial.println('9');

    }

    // jika password tidak benar atau salah

    else

    {

    // menulis pada lcd

    lcd.clear();

    lcd.setCursor(00);

    lcd.print("Password Salah");

    // relay tidak aktif, solenoid tetap menutup

    digitalWrite(LED, LOW);

    Serial.println("0");

    delay(200);

    }

    }


    · SLAVE

    //SLAVE

    #include <Servo.h>

    #define sensor 5 // Pin Di gunakan untuk capactitive touch sensor

     

    Servo myservo;

    int pos;

    int data = 0;

    int LED = 6;

    //BUTTON

    const int buttonPin = 2; // deklarasi konstanta untuk button pada pin 2

    int buttonState = 1; // deklarasi variabel untuk status button(ditekan atau tidak)

     

    void setup()

    {

      Serial.begin(19200);

      pinMode(LED, OUTPUT);

      pinMode(sensor, INPUT_PULLUP);

      pinMode(buttonPin,INPUT);

     

      myservo.attach(9);

      myservo.write(90);

      ;

     

    }

     

    void loop(){

      digitalWrite(LED, LOW);

      if (digitalRead(sensor) == HIGH) {

        while(digitalRead(sensor) == HIGH){}

        kunci();

      }

      if(digitalRead(buttonPin)==LOW){

        Serial.println("Berhasil Buka Dari Dalam");

            digitalWrite(LED, HIGH);

            for (pos = 90; pos >= 0; pos -= 1) { // goes from 0 degrees to 180 degrees

              myservo.write(pos);              // tell servo to go to position in variable 'pos'

              delay(10);                       // waits 15 ms for the servo to reach the position

            }

          delay(5000);

            for (pos = 0; pos <= 90; pos += 1) { // goes from 180 degrees to 0 degrees

              myservo.write(pos);              // tell servo to go to position in variable 'pos'

              delay(15);                       // waits 15 ms for the servo to reach the position

            }

      }

      if(digitalRead(buttonPin)==HIGH){

        Serial.println(buttonPin);

       

      }

      else{

        digitalWrite(LED, LOW);

     

      }

    }

    void kunci()

    {

    if(Serial.available()>0){

        data = Serial.read();

        if(data=='1'){

            Serial.println("Berhasil Buka Dari Luar");

            digitalWrite(LED, HIGH);

            for (pos = 90; pos >= 0; pos -= 1) { // goes from 0 degrees to 180 degrees

              myservo.write(pos);              // tell servo to go to position in variable 'pos'

              delay(15);                       // waits 15 ms for the servo to reach the position

            }

          delay(5000);

            for (pos = 0; pos <= 90; pos += 1) { // goes from 180 degrees to 0 degrees

              myservo.write(pos);              // tell servo to go to position in variable 'pos'

              delay(15);                       // waits 15 ms for the servo to reach the position

            }

          }

         

      }

    else{

            Serial.println('tidak ada password');

            delay(1);

          }

    }


5. Flowchart[back]

6. Rangkaian Simulasi[back]
Rangkaian Simulasi Project

Rangkaian Simulasi Proteus

7. Hardware dan Video[back]

8. Analisis[back]
Pada saat sensor PIR mendeteksi adanya cahaya infrared dari tubuh manusia maka LCD dan komponen lain akan aktif. Lalu jika sensor LM35 mendeteksi suhu tubuh dibawah 37.0°C ( suhu normal ) maka tampilan LCD menampilkan “Anda Sehat“ dan diminta memasukkan password. Ketika password benar maka LED indikator hijau hidup dan LCD menampilkan “Password Benar”. Setelah memasukkan password maka touch sensor akan menggerakkan motor servo berputar menandakan pintu dibuka. Sedangkan jika suhu tubuh lebih dari 37.0°C maka LCD menampilkan “Anda Sakit, Silahkan Pulang” dan LED indikator merah hidup. Jika berada dalam ruangan dan ingin keluar dapat dilakukan dengan cara menekan push button sehingga pintu dapat terbuka.

9. Kesimpulan[back]
Pada alat ini dilakukan perancangan sistem keamanan pintu menggunakan password. Berdasarkan penelitian ini diperoleh kesimpulan:
a. Sistem keamanan pada pintu akan mendeteksi pergerakan yang berguna untuk mengaktifkan sistem keamanan pintu menggunakan password .
b. Sistem keamanan pada pintu dapat melakukan pemeriksaan suhu tubuh pada manusia yang sehat jika suhu tubuh < 37 derajat celcius.
c. Sistem keamanan pada pintu dapat melakukan pemeriksaan pasword yang dimasukkan dengan baik.
d. Pada sistem keamanan pintu sensor touch dapat bekerja dengan baik yang ditandai dengan terbukanya pintu setelah pasword yang di masukkan benar.

10. Link Download[back]

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI MATA KULIAH MIKROPROSESOR DAN MIKROKONTROLLER 2022 OLEH : Dhea Rahmadani Putri 2010951015 DOSEN PENGAMPU : Ir. Syarkawi S...