//----------------LIBRARIES----------------
#include "WiFi.h"
#include "HTTPClient.h"
#include "LiquidCrystal_I2C.h"
//-----------------------------------------
//Sesuaikan dengan addres i2c dan ukuran LCD yg digunakan
LiquidCrystal_I2C lcd(0x27, 16, 2);
const char* ssid = "Wokwi-GUEST"; //Silakan isi dengan nama SSID
const char* password = ""; //Siakan isi dengan password
// Buat object http
HTTPClient http;
//sesuaikan dgn ip dan direktori penyimpanan file php anda
String url = "http://ea20-125-162-211-97.ngrok-free.app/getdata.php?";
String payload;
String kondisi = "Aman";
#define sensorPin 16 // Sensor Getar
#define alarmPin 19 // Alarm
void setup () {
Serial.begin(115200);
WiFi.begin(ssid, password);
lcd.init();
lcd.backlight();
pinMode (sensorPin, INPUT);
pinMode (alarmPin, OUTPUT);
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Connecting...");
lcd.clear();
lcd.print("Connecting");
for(int x = 0; x<16; x++){
lcd.setCursor(x, 1);
lcd.print(".");
delay(100);
}
}
if(WiFi.status() == WL_CONNECTED) {
Serial.println("Connected...!!!");
lcd.clear();
lcd.print("Connected...!!!");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DETEKTOR GEMPA");
lcd.setCursor(0, 1);
lcd.print("Kondisi: ");
lcd.print(kondisi);
}
}
void Display(String stat){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DETEKTOR GEMPA");
lcd.setCursor(0, 1);
lcd.print("Kondisi: ");
lcd.print(stat);
}
void buzzer(){
for(int i=0; i<=5; i++){
digitalWrite(alarmPin, HIGH);
delay(500);
digitalWrite(alarmPin, LOW);
delay(500);
}
}
void loop() {
float magnitudo = random(1, 9);
Display(kondisi);
delay(1000);
int sensorValue = digitalRead(sensorPin);
if(sensorValue == LOW){
kondisi = "Aman";
return;
}
kondisi = "GEMPA!!!";
Display(kondisi);
buzzer();
if (WiFi.status() == WL_CONNECTED) {
http.begin(url + "magnitudo=" + String(magnitudo));
int httpCode = http.GET();
Serial.print("Kode Response HTTP: ");
Serial.println(httpCode);
if (httpCode == 200) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Data terkirim ke server");
lcd.setCursor(0,1);
lcd.print("ke server!!!");
delay(2000);
Display(kondisi);
}
else{
Serial.print("Error Message: ");
Serial.println(http.errorToString(httpCode));
Serial.println("");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Koneksi ke Server");
lcd.setCursor(0, 1);
lcd.print("Gagal!!!");
delay(2000);
lcd.clear();
lcd.print(http.errorToString(httpCode));
delay(3000);
Display(kondisi);
}
http.end();
}
else {
Serial.println("Internet Disconnected!!!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Cek Koneksi");
lcd.setCursor(0, 1);
lcd.print("Internet !!!");
delay(2000);
Display(kondisi);
}
delay(100);
}