METODE PENELITIAN
3.6 Software pemrograman dan program pengunci pintu otomatis menggunakan modul Bluetooth HC-05
3.6.2 Program Pengunci Pintu Otomatis
Persiapan pertama sebelum memasukkan program adalah menghubungkan mikrokontroler arduino dengan PC melalui USB port. Langkah berikutnya adalah membuka software arduino.cc, dan melakukan penulisan program pada software, berikut ini adalah program yang di tuliskan pada software:
#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String readString;
const int servokunci = 9;
const int servopintu= 10;
Servo servokun;
servokun.write(90);
lcd.setCursor(1,0);
lcd.setCursor(0,1);
lcd.print("MASUKAN PASSWORD");
}
void loop() {
while (Serial.available()) { delay(3);
char c = Serial.read();
readString += c;
}
if (readString.length() >0) { Serial.println(readString);
if (readString == "2131")
lcd.setCursor(9,1);
lcd.print("TEKAN ANGKA 1");
lcd.setCursor(12,1);
lcd.print("MASUKKAN PASWORD");
readString="";
lcd.print("MASUKKAN PASWORD");
readString="";
} } }
Adapun penjelasan lengkap program dapat dilihat pada tabel berikut:
Tabel 3.1 Penjelasan Program Perbaris
PROGRAM KETERANGAN
#include <LiquidCrystal.h> Library untuk menggunakan LCD
#include <Servo.h> Library untuk menggunakan Motorservo LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Pin-pin yang terhubung ke Arduino
String readString; masukkan pembacaan dalam variabel string const int servokunci = 9; servo untuk kunci di pin 9
const int servopintu= 10; servo untuk pintu di pin 10 Servo servokun; konstanta servo untuk kunci Servo servopint; konstanta servo untuk pintu
void setup() ; memulai program yang hanya dijalankan sekali Serial.begin(9600); Sesuaikan dengan Baudrate bluetooth anda servopint.attach(servopintu); melampirkan servopintu
servokun.attach(servokunci); melampirkan servokunci
lcd.begin(16,2); lcd yang digunakan ukuran 16x2 servokun.write(40); memutar servo kunci di 40 derajat servopint.write(15); memutar servo pintu di 15 derajat
delay (2000); waktu tunda dalam menampilkan program yang berjalan sekali selama 2 detik
servokun.write(90); memutar servo kunci di 90 derajat
lcd.setCursor(1,0); menentukan kursor pada posisi kolom 1 baris 0 lcd.print("Pintu Terkunci"); menampilkan kalimat pintu terkunci pada lcd lcd.setCursor(0,1); menentukan kursor pada posisi kolom 0 baris 1 lcd.print("MASUKAN PASSWORD"); menampilkan kalimat masukkan passowrd pada lcd
} penutup program
void loop() { memulai program yang dibaca secara terus menerus while (Serial.available()) { menunggu untuk variabel tersedia
delay(3); waktu tunda dalam menampilkan program yang berjalan sekali selama 3 detik
char c = Serial.read(); karakter yang ditampilkan dari serial.read readString += c; pembacaan variabel dalam string
} penutup program
if (readString.length() >0) { jika panjang pembacaan variabel dalam string lebih besar dari 0 Serial.println(readString); menampilkan serial dalam pembacaan variabel dalam string
if (readString == "2131") Jika hasil Keypad benar
} penutup program
servokun.write(40); memutar servo kunci di 40 derajat
lcd.clear(); menghapus data yang ada di LCD
delay(100); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.1 detik
lcd.setCursor(1,0); menentukan kursor pada posisi kolom 1 baris 0 lcd.print("AKSES DITERIMA"); menampilkan kalimat akses diterima pada lcd lcd.setCursor(1,1); menentukan kursor pada posisi kolom 1 baris 1 lcd.print("loading"); menampilkan kalimat loading pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(8,1); menentukan kursor pada posisi kolom 8 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(9,1); menentukan kursor pada posisi kolom 9 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(10,1); menentukan kursor pada posisi kolom 10 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(11,1); menentukan kursor pada posisi kolom 11 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(12,1); menentukan kursor pada posisi kolom 12 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (300); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.3 detik
lcd.setCursor(13,1); menentukan kursor pada posisi kolom 13 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (500); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.5 detik
lcd.setCursor(14,1); menentukan kursor pada posisi kolom 14 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (1000); waktu tunda dalam menampilkan program yang berjalan sekali selama 1 detik
servopint.write(170); memutar servo pintu di 170 derajat
lcd.setCursor(0,0); menentukan kursor pada posisi kolom 0 baris 0 lcd.print("Untuk mengunci!"); menampilkan kalimat untuk mengunci pada lcd lcd.setCursor(0,1); menentukan kursor pada posisi kolom 0 baris 1 lcd.print("TEKAN ANGKA 1"); menampilkan kalimat tekan angka 1 pada lcd readString=""; pembacaan variabel dalam string
} penutup program
else if (readString == "1") { hanya jika pembacaan variabel dalam string sama dengan 1 servopint.write (15); memutar servo pintu 15 derajat
lcd.clear(); menghapus data yang ada di LCD
delay (100); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.1 detik
lcd.setCursor(1,0); menentukan kursor pada posisi kolom 1 baris 0 lcd.print("AKSES DITERIMA"); menampilkan kalimat akses diterima pada lcd lcd.setCursor(1,1); menentukan kursor pada posisi kolom 1 baris 1 lcd.print("loading"); menampilkan kalimat loading pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(8,1); menentukan kursor pada posisi kolom 8 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(9,1); menentukan kursor pada posisi kolom 9 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(10,1); menentukan kursor pada posisi kolom 10 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(11,1); menentukan kursor pada posisi kolom 11 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (200); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.2 detik
lcd.setCursor(12,1); menentukan kursor pada posisi kolom 12 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (300); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.3 detik
lcd.setCursor(13,1); menentukan kursor pada posisi kolom 13 baris 1 lcd.print("."); menampilkan karakter . pada lcd
delay (500); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.5 detik
lcd.setCursor(14,1); menentukan kursor pada posisi kolom 14 baris 1 lcd.print(".") menampilkan karakter . pada lcd
delay (1000); waktu tunda dalam menampilkan program yang berjalan sekali selama 1
detik
servokun.write(90); memutar servo kunci 90 derajat
lcd.setCursor(15,1); menentukan kursor pada posisi kolom 15 baris 1 lcd.print("."); menampilkan karakter . pada lcd
lcd.setCursor(1,0); menentukan kursor pada posisi kolom 1 baris 0 lcd.print("Pintu Terkunci"); menampilkan kalimat pintu terkunci pada lcd lcd.setCursor(0,1); menentukan kursor pada posisi kolom 0 baris 1 lcd.print("MASUKKAN PASWORD"); menampilkan kalimat masukkan password pada lcd readString=""; membaca variabel dalam string
} penutup program
else { jika yang lain
lcd.clear(); menghapus data yang ada di LCD
delay (100); waktu tunda dalam menampilkan program yang berjalan sekali selama 0.1 detik
lcd.setCursor(1,0); menentukan kursor pada posisi kolom 1 baris 0 lcd.print("AKSES DITOLAK"); menampilkan kalimat akses ditolak pada lcd lcd.setCursor(0,1); menentukan kursor pada posisi kolom 0 baris 1 lcd.print("MASUKKAN PASWORD"); menampilkan kalimat masukkan password pada lcd readString=""; membaca variabel dalam string
} } } penutup program
Gambar 3.8Penulisan program pada software arduino.cc
Setelah pengetikan program selesai langkah selanjutnya adalah compile
Gambar 3.9 Tampilan saat proses compile dan upload
Gambar 3.1-Tampilan saat proses compile dan upload telah selesai