int led1 = 5, led2 = 4, led3 = 3, buzz = 8, mesin = 6;
int nilai = 1, alarm = 0, alarm2 = 0, hitungAlarm = 0, lampu = true;
String gatau = "", heru;
bool saklar = false; //Saklar untuk mengaktifkan dan menonaktifkan kunci kontak
bool kondisi = false; /*Kondisi sensor mesin, apakah mesin motor dalam keadaan hidup atau mati [true: hidup - false: mati]*/
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); //merah = saklar motor
pinMode(led2, OUTPUT); //hijau = mesin motor
pinMode(led3, OUTPUT); //kuning = jok motor
pinMode(buzz, OUTPUT);
pinMode(mesin, OUTPUT); //relay mesin motor
Serial.println("Sistem sudah aktif");
Serial.println();
Serial.print("Vega_R:" + gatau + "> ");
}
void mencoba(){ //fungsi untuk menghidupkan mesin motor
delay(1000);
digitalWrite(led2, HIGH);
delay(2000);
digitalWrite(led2, LOW);
}
void alarm1(){ //fungsi untuk menghidupkan alarm
while (alarm2 < 50){
digitalWrite(buzz, HIGH);
delay(200);
digitalWrite(buzz, LOW);
delay(200);
alarm2++;
hitungAlarm++;
Serial.print(hitungAlarm);
Serial.print(", ");
}
Serial.println("");
Serial.println("Selesai membunyikan alarm");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
hitungAlarm = 0;
alarm2 = 0;
}
void loop() {
while (Serial.available()){
delay(10);
String c = Serial.readStringUntil('\n');
if (c == '#') {break;}
heru += c;
}
if (heru.length() > 0) {
Serial.println(heru);
if (heru == "1"){
if (nilai == 1){
digitalWrite(led1, HIGH);
gatau = "heru/motor";
Serial.print("Vega_R:" + gatau + "> ");
Serial.println("[---Sidik jari dikenali---]");
Serial.println("Selamat datang Haerudin, silahkan tempelkan lagi sidik jari Anda untuk menghidupkan mesin.");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
nilai++;
saklar = true;
}else if (nilai == 2){
Serial.println("Sedang menghidupkan mesin...");
mencoba();
nilai++;
}else if (nilai == 5 && kondisi == true){
digitalWrite(mesin, LOW);
Serial.println("Mesin sudah dimatikan");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
nilai = 2;
}if (nilai == 3 && kondisi == true){
Serial.println("Mesin sudah dihidupkan.");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
digitalWrite(mesin, HIGH);
nilai = 5;
}if (nilai == 3){
digitalWrite(led2, LOW);
Serial.println("Mesin gagal dihidupkan!");
delay(1000);
Serial.println("Sedang mencoba kembali...");
mencoba();
nilai++;
}if (nilai == 4){
Serial.println("Maaf, mesin tidak bisa dihidupkan. Silahkan hidupkan secara manual.");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
kondisi = true;
nilai = 2;
}
}
else if (heru == "2"){
if (saklar == true){
digitalWrite(led3, HIGH);
delay(1000);
digitalWrite(led3, LOW);
Serial.println("Jok sudah dibuka");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
}else{
Serial.println("Anda belum memverifikasi sidik jari, silahkan verifikasikan terlebih dahulu untuk membuka jok motor");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
}
}else{
if (alarm == 0 && kondisi != true){
Serial.println("Perintah yang Anda masukkan '" + heru + "' salah.");
Serial.println("Sisa percobaan: 2");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
alarm++;
}else if (kondisi != false){
digitalWrite(led1, LOW);
Serial.println("Mematikan sistem:..");
Serial.println();
Serial.print("Shutdown...");
while(0);
}else if (alarm == 1 && kondisi != true){
Serial.println("Perintah yang Anda masukkan salah.");
Serial.println("Sisa percobaan: 1");
Serial.println();
Serial.print("Vega_R:" + gatau + "> ");
alarm++;
}else if (alarm == 2 && kondisi != true){
Serial.println("Sisa percobaan: 0");
Serial.println("Membunyikan alarm...");
Serial.println("");
Serial.print("Vega_R:" + gatau + "> ");
alarm1();
}
}
heru="";
}
}