#include <SoftwareSerial.h>
SoftwareSerial SerialESP(2, 3); // RX, TX
#define SERIAL_BAUDRATE 115200
const int buttonPin1 = 4; // pin untuk tombol 1
const int buttonPin2 = 5; // pin untuk tombol 2
int bs1 = 0;
int bs2 = 0;
#include <LiquidCrystal_I2C.h>
int gambar = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
pinMode(buttonPin1, INPUT_PULLUP); // konfigurasi pin sebagai input dengan resistor pull-up internal
pinMode(buttonPin2, INPUT_PULLUP); // konfigurasi pin sebagai input dengan resistor pull-up internal
SerialESP.begin(SERIAL_BAUDRATE);
Serial.begin(SERIAL_BAUDRATE);
}
void loop() {
int buttonState1 = digitalRead(buttonPin1);
int buttonState2 = digitalRead(buttonPin2);
lcd.setCursor(1, 0);
lcd.print("Tugas Akhir Pavita");
if(buttonState1 == LOW){
lcd.setCursor(1, 2);
lcd.print("Pengambilan Gambar");
gambar = 1;
delay(2000);
lcd.clear();
SerialESP.write(101);
while (SerialESP.available() == 0);
String response = SerialESP.readString();
Serial.println(response);
}
if(buttonState2 == LOW){
if(gambar==0){
lcd.setCursor(0, 2);
lcd.print("Gambar Belum Diambil");
delay(1000);
lcd.clear();
}else{
lcd.setCursor(3, 2);
lcd.print("Prediksi Gambar");
gambar = 0;
delay(5000);
lcd.clear();
SerialESP.write(102);
while (SerialESP.available() == 0);
String response = SerialESP.readString();
Serial.println(response);
}
}
delay(100);
}