#include <BlynkSimpleEsp32.h> //Import Library Blynk
#include <Adafruit_MPU6050.h> //Import Library Module MPU
#include <Adafruit_Sensor.h> //Import Library Sensor MPU
#define pinBuzzer 2 //Set Pin Buzzer
#define pinLED 5 //Set LED Buzzer
//Set Blynk
#define BLYNK_TEMPLATE_ID "TMPLhy4ozqn0"
#define BLYNK_DEVICE_NAME "Pendeteksi Gempa"
#define BLYNK_AUTH_TOKEN "IclF_eR83HfAEWNGpXYwAVMxwLrxueiG"
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char password[] = "";
Adafruit_MPU6050 mpu;
BlynkTimer timer;
void myTimerEvent()
{
Blynk.virtualWrite(V2, millis() / 1000); //Write Virtualpin V2 (Timer) Blynk
}
void setup() {
Serial.begin(115200); //Set Console
Blynk.begin(auth, ssid, password, "blynk.cloud", 80); //Connection to Blynk
pinMode(pinBuzzer, OUTPUT); //Set pinBuzzer to Output
pinMode(pinLED, OUTPUT); //Set pinLED to Output
timer.setInterval(1000L, myTimerEvent); //Staring a timer
// Try to initialize! MPU6050
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
Serial.println("MPU6050 Found!");
mpu.setAccelerometerRange(MPU6050_RANGE_16_G); //Set Accelerometer Range
mpu.setGyroRange(MPU6050_RANGE_250_DEG); //Set Gyro Range
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ); //Set Bandwidth
delay(100); //Delay 0.1 Detik
}
void loop() {
deteksigempa(); //Panggil Fungsi deteksiGempa
timer.run(); //jalankan timer
}
void deteksigempa(){
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
int acX = a.acceleration.x;
int acY = a.acceleration.y;
int acZ = a.acceleration.z;
String v = ",";
String x = String(acX);
String y = String(acY);
String z = String(acZ);
if(acX && acY && acZ > 0){
tone(pinBuzzer, 1000); //Tone Buzzer
Serial.println("AWAS GEMPA BUMI !!! "+ x + v + y+ v + z);
digitalWrite(pinLED, HIGH); //Write LED to HIGH
Blynk.virtualWrite(V6, HIGH); //Write Virtualpin V6 (LED) HIGH Blynk
Blynk.virtualWrite(V0, "AWAS !! GEMPA BUMI"); //Write Virtualpin V0 (Pesan) Gempa Blynk
}else{
noTone(pinBuzzer); //No Tone Buzzer
Serial.println("AMAN "+ x + v + y+ v + z);
digitalWrite(pinLED, LOW); //Write LED to LOW
Blynk.virtualWrite(V6, LOW); //Write Virtualpin V6(LED) LOW Blynk
Blynk.virtualWrite(V0, "AMAN"); //Write Virtualpin V0 (Pesan) Aman Blynk
}
Blynk.virtualWrite(V1, temp.temperature); //Write Virtualpin V1 (Suhu) Blynk
Blynk.virtualWrite(V3, x); //Write Virtualpin V3 (Acceleration X) Blynk
Blynk.virtualWrite(V4, y); //Write Virtualpin V4 (Acceleration Y) Blynk
Blynk.virtualWrite(V5, z); //Write Virtualpin V5 (Acceleration Z) Blynk
delay(1500); //Delay 1.5 Detik
Blynk.run();
}