#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
float Scala_richter = 0;
// Connection to tingher
#define THINGER_SERIAL_DEBUG
#include <ThingerESP32.h>
#define USERNAME "Opik"
#define DEVICE_ID "IoTGempa"
#define DEVICE_CREDENTIAL "TXUC48t#AsOcEY4o"
#define SSID "Wokwi-GUEST"
#define SSID_PASSWORD ""
ThingerESP32 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);
void setup(void) {
Serial.begin(115200);
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
pinMode(5, OUTPUT);
while (!mpu.begin()) {
Serial.println("MPU6050 not connected!");
delay(1000);
}
Serial.println("MPU6050 ready!");
thing.add_wifi(SSID, SSID_PASSWORD);
}
sensors_event_t event;
void loop() {
thing["valueSR"] >> outputValue(ScalaRichter());
beeb();
thing.handle();
}
float ScalaRichter(){
mpu.getAccelerometerSensor()->getEvent(&event);
float yKuadrat = event.acceleration.y * event.acceleration.y;
float xKuadrat = event.acceleration.x * event.acceleration.x;
Scala_richter = sqrt(yKuadrat + xKuadrat);
return Scala_richter;
}
void beeb(){
float valueSR = ScalaRichter();
Serial.print(valueSR);
Serial.println(" Magnitude");
if(event.acceleration.y >= 0 && event.acceleration.x >= 0){
if(valueSR <= 0){
tone(26, 0);
}else if(valueSR > 0 && valueSR <= 3){
tone(26, 500);
digitalWrite(19, HIGH);
delay(1000);
noTone(26);
digitalWrite(19, LOW);
delay(1000);
}else if(valueSR > 3 && valueSR <= 4.5){
tone(26, 500);
digitalWrite(18, HIGH);
delay(500);
noTone(26);
digitalWrite(18, LOW);
delay(500);
}else if(valueSR > 4.5 && valueSR <= 6){
tone(26, 500);
digitalWrite(18, HIGH);
delay(250);
noTone(26);
digitalWrite(18, LOW);
delay(250);
}else if(valueSR > 6){
tone(26, 500);
digitalWrite(5, HIGH);
delay(100);
noTone(26);
digitalWrite(5, LOW);
delay(100);
}
}else{
tone(26, 0);
}
}