// Nama : Adi Suprasetyo
// NIM : 5200411205
// kelas : VII
#include <WiFi.h>
#include <WiFiClient.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#include "ThingSpeak.h"
WiFiClient client;
String thingSpeakAddress = "api.thingspeak.com";
String writeAPIKey;
String tsfield1Name;
String request_string;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
Adafruit_MPU6050 mpu;
void setup()
{
Serial.begin(115200);
// Koneksi Wifi
WiFi.disconnect();
WiFi.begin("Wokwi-GUEST", "");
while ((!(WiFi.status() == WL_CONNECTED))) {
delay(300);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
//koneksi mpu6050
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
Serial.println("");
delay(100);
lcd.init();
lcd.backlight();
}
//inisilisai nilai sensor
double x,y,z ;
double xg,yg,zg;
int t;
void loop()
{
mpu6050();
kirim_thingspeak(x,y,z,xg,yg,zg,t);
}
void mpu6050(){
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
//Acceleration
x = a.acceleration.x;
y = a.acceleration.y;
z = a.acceleration.z;
// Gyroscope
xg = g.gyro.x;
yg = g.gyro.y;
zg = g.gyro.y;
t = temp.temperature;
//Aman coy No gwmpa
if ((x==0)and (y==0)){
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Aman Tidak Terjadi");
lcd.setCursor(7, 2);
lcd.print("GEMPA");
Serial.print("Aman : ");
Serial.print(x);
Serial.print(",");
Serial.print(y);
Serial.print(",");
Serial.print(z);
Serial.print(", ");
delay(1000);
}
//Terjadi Gempa
else{
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Gawat terjadi Gempa");
Serial.println("Gempa NIH CUYYYY ");
//Acceleration
Serial.println("Acceleration : ");
Serial.print(" X: ");
Serial.print(x);
Serial.print(", Y: ");
Serial.print(y);
Serial.print(", Z: ");
Serial.print(z);
Serial.println(" m/s^2");
//Rotation
Serial.println("Rotation : ");
Serial.print(" X: ");
Serial.print(xg);
Serial.print(", Y: ");
Serial.print(yg);
Serial.print(", Z: ");
Serial.print(zg);
//Temperature
Serial.println("Temperature");
Serial.print("Temp :");
Serial.print(t);
Serial.println(" degC");
delay(1000);
}
}
void kirim_thingspeak(double x, double y,double z,double xg, double yg,double zg,double t) {
if (client.connect("api.thingspeak.com", 80)) {
request_string = "/update?";
request_string += "key=";
request_string += "NKQNEJM5GY0Q3S8U";
request_string += "&";
request_string += "field1";
request_string += "=";
request_string += x;
request_string += "&";
request_string += "field2";
request_string += "=";
request_string += y;
request_string += "&";
request_string += "field3";
request_string += "=";
request_string += z;
request_string += "&";
request_string += "field4";
request_string += "=";
request_string += xg;
request_string += "&";
request_string += "field5";
request_string += "=";
request_string += yg;
request_string += "&";
request_string += "field6";
request_string += "=";
request_string += zg;
request_string += "&";
request_string += "field7";
request_string += "=";
request_string += t;
Serial.println(String("GET ") + request_string + " HTTP/1.1\r\n" +
"Host: " + thingSpeakAddress + "\r\n" +
"Connection: close\r\n\r\n");
client.print(String("GET ") + request_string + " HTTP/1.1\r\n" +
"Host: " + thingSpeakAddress + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
imu1:INT
imu1:AD0
imu1:XCL
imu1:XDA
imu1:SDA
imu1:SCL
imu1:GND
imu1:VCC