#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
//Sesuaikan dengan addres i2c dan ukuran LCD yg digunakan
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://0934-114-10-134-153.ngrok-free.app/rizkyprojects/water-level/getdata.php?";
String payload;
String KEY_API = "abc123"; //silakan sesuaikan dengan KEY_API yg ada di database
const int buzzer = 25;
const int trigPin = 2;
const int echoPin = 4;
const int relayPin = 26;
const int id_device = 1; //Device A
//const int id_device = 2; //Device B
//const int id_device = 3; //Device C
//const int id_device = 4; //Device D, dst...
long duration;
int jarak;
void setup () {
Serial.begin(115200);
WiFi.begin(ssid, password);
pinMode (buzzer, OUTPUT);
pinMode(relayPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Connecting...");
delay(100);
}
if(WiFi.status() == WL_CONNECTED) {
Serial.println("Connected...!!!");
}
}
void loop() {
//Pengukuran jarak sensor ke permukaan air
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarak = duration*0.034/2;
if (WiFi.status() == WL_CONNECTED) {
http.begin(url + "key_api=" + KEY_API +"&id_device=" + String(id_device) + "&jarak=" + String(jarak));
int httpCode = http.GET();
if (httpCode > 0) {
char json[500];
String payload = http.getString();
payload.toCharArray(json, 500);
DynamicJsonDocument doc(JSON_OBJECT_SIZE(5));
// Deserialize the JSON document
deserializeJson(doc, json);
String ketinggian = doc["ketinggian"];
String level = doc["status"];
String message = doc["message"];
String Mode = doc["mode"];
String relay = doc["relay"];
Serial.print("Response HTTP = ");
Serial.println(httpCode);
Serial.print("Ketinggian = ");
Serial.print(ketinggian);
Serial.println(" cm");
Serial.print("Level = ");
Serial.println(level);
Serial.print("Message = ");
Serial.println(message);
Serial.print("Mode = ");
Serial.println(Mode);
Serial.print("Relay = ");
Serial.println(relay);
Serial.println("-------------------------------");
if(relay == "0"){
digitalWrite(relayPin, HIGH);
tone(buzzer, 100);
delay(100);
tone(buzzer, 100);
delay(100);
}
else{
digitalWrite(relayPin, LOW);
noTone(buzzer);
}
delay(100);
}
else{
Serial.println("Koneksi ke Server Gagal!!!");
Serial.println(http.errorToString(httpCode));
Serial.println("");
}
http.end();
}
else {
Serial.println("Disconnected!!!");
}
}