#include <Arduino.h>
#include <NewPing.h>
#include <WiFi.h> //ESP32
//#include <ESP8266WiFi.h> //ESP8266
#include <HTTPClient.h> //ESP32
#include <ArduinoJson.h>
//#include <ESP8266HTTPClient.h> //ESP8266
const char *ssid = "Wokwi-GUEST";
const char *password = "";
String serverName = "https://banjir.smdev-staging.web.id";
String uid = "a18cd16d-c313-11ee-ad91-0050564ce106";
#define TRIGGER_PIN 13
#define ECHO_PIN 14
#define MAX_DISTANCE 400
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
float tinggiMaksimal = 400.0;
float tinggiMukaAir = 0.0;
float jarak;
int iteration = 10;
void httpPostRequest() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String serverPath = String() + serverName + "/send/location";
http.begin(serverPath);
http.addHeader("Content-Type", "application/json");
http.addHeader("Accept", "application/json");
http.addHeader("x-uid", uid);
// ArduinoJson
JsonDocument doc;
doc["lat"] = "-6.8594367";
doc["lng"] = "107.9234081";
String json;
serializeJson(doc, json);
int httpResponseCode = http.POST(json);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println(httpResponseCode);
Serial.println(response);
} else {
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("Error in WiFi connection");
}
}
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
Serial.println(WiFi.localIP());
}
void loop() {
delay(100);
jarak = (sonar.ping_median(iteration) / 2) * 0.0343;
Serial.println(jarak);
tinggiMukaAir = tinggiMaksimal - jarak;
Serial.println(tinggiMukaAir);
Serial.println();
if (tinggiMukaAir > 150) {
httpPostRequest();
}
}