#define BLYNK_TEMPLATE_ID           "TMPLG6TWumDw"
#define BLYNK_DEVICE_NAME           "MPU6050 Deteksi Gempa"
#define BLYNK_AUTH_TOKEN            "f70ninnjre52jASG0m9GNDY-3FrbIhP-"

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Adafruit_MPU6050.h>
#include <LiquidCrystal.h>
#include <Wire.h>

char auth[] = BLYNK_AUTH_TOKEN;

char ssid[] = "Wokwi-GUEST";
char pass[] = "";

//mendefinisikan perangkat
LiquidCrystal lcd(15, 2, 4, 5, 18, 19); 
Adafruit_MPU6050 mpu;
BlynkTimer timer;

const int pinBuzzer = 23;

void setup()
{
  pinMode(pinBuzzer, OUTPUT);
  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);

  //membuat teks ke lcd
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Deteksi");

  lcd.setCursor(0, 1);
  lcd.print("Gempa");
  delay(1500);
  lcd.clear();

  //inisialisasi mpu6050
  if (!mpu.begin()) {
    Serial.println("MPU6050 tidak terdeteksi!");
    while (1) {
      delay(10);
    }
  }

  mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
  Serial.println("");
  delay(100);
}

void loop()
{
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  //inisialisasi sumbu X Y Z dan mengambil data accelerometer
  double accX = a.acceleration.x;
  double accY = a.acceleration.y;
  double accZ = a.acceleration.z;

  //jika terdeteksi gempa
  if (accX > 10 || accY > 10 || accZ > 10 ){
    tone(pinBuzzer,500);
    Blynk.virtualWrite(V3,"Gempa Terdeteksi!");

    //membuat teks ke lcd
    lcd.setCursor(00,1);
    lcd.print(accX);
    lcd.setCursor(6,1);
    lcd.print(accY);
    lcd.setCursor(12,1);
    lcd.print(accZ);
    delay(2000);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("GEMPA");
    lcd.setCursor(5, 0);
    lcd.print("TERDETEKSI!");
    delay(1500);
  }

  //jika tidak terdeteksi gempa
  if (accX < 10 && accY < 10 && accZ < 10 ){
    noTone(pinBuzzer);
    Blynk.virtualWrite(V3,"Kondisi Aman!");

    //membuat teks ke lcd
    lcd.setCursor(00,1);
    lcd.print(accX);
    lcd.setCursor(6,1);
    lcd.print(accY);
    lcd.setCursor(12,1);
    lcd.print(accZ);
    delay(2000);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("KONDISI");
    lcd.setCursor(11, 0);
    lcd.print("AMAN!");
    delay(1500);
  }

  //membaca dan menulis ke dalam Blynk
  Blynk.virtualWrite(V4,accX);
  Blynk.virtualWrite(V5,accY);
  Blynk.virtualWrite(V6,accZ);
}
$abcdeabcde151015202530fghijfghij