#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "Wokwi-GUEST"; // Nama jaringan Wi-Fi
const char* password = ""; // Kata sandi jaringan Wi-Fi (kosong jika tidak ada kata sandi)
const char* serverName = "https://proyek-yusman.com/insert_data_jarak.php?jarak=";
// Pin LED
const int ledMerah = 21;
const int ledKuning = 22;
const int ledHijau = 23;
// Pin sensor ultrasonik
const int trigPin = 12;
const int echoPin = 13;
float duration_us, distance_cm;
void setup() {
// Mulai komunikasi serial
Serial.begin(115200);
// Menghubungkan ke jaringan Wi-Fi
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi...");
// Tunggu sampai terhubung
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print alamat IP setelah terhubung
Serial.println("");
Serial.println("Connected to WiFi!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Inisialisasi pin LED
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
// Inisialisasi pin sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Bagian sensor ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration_us = pulseIn(echoPin, HIGH);
distance_cm = 0.017 * duration_us;
// Print jarak ke Serial Monitor
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
// Kontrol LED berdasarkan jarak
if (distance_cm >= 300) {
// Jarak lebih dari 300 cm
digitalWrite(ledHijau, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
} else if (distance_cm >= 100 && distance_cm < 300) {
// Jarak antara 100 cm dan 299 cm
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
} else if (distance_cm < 100) {
// Jarak kurang dari 100 cm
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, HIGH);
} else {
// Kesalahan pembacaan sensor
Serial.println("Error reading sensor");
}
// Kirim data jarak ke server
if(WiFi.status()== WL_CONNECTED){
HTTPClient http;
String serverPath = serverName + String(distance_cm);
http.begin(serverPath.c_str());
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String payload = http.getString();
Serial.println("Data sent to server:");
Serial.println(payload); // Mencetak respons dari server
}
else {
Serial.print("Error on sending GET Request: ");
Serial.println(httpResponseCode);
}
// Tutup koneksi
http.end();
}
else {
Serial.println("WiFi Disconnected");
}
// Tunggu sebentar sebelum pembacaan berikutnya
delay(500);
}