#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
const char* ssid = "Wokwi-GUEST"; // WiFi Wokwi
const char* password = ""; // Tiada password untuk Wokwi
const char* apiKey = "YOUR_THINGSPEAK_API_KEY";
WiFiClient client;
unsigned long channelID = YOUR_CHANNEL_ID;
int trigPin = D5;
int echoPin = D6;
int ledPin = D2;
float waterLevel;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi!");
ThingSpeak.begin(client);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
waterLevel = duration * 0.034 / 2;
Serial.print("Water Level: ");
Serial.println(waterLevel);
ThingSpeak.writeField(channelID, 1, waterLevel, apiKey);
// Jika paras air tinggi, nyalakan LED (simulasi amaran)
if (waterLevel < 10) {
digitalWrite(ledPin, HIGH);
Serial.println("WARNING: High Water Level!");
} else {
digitalWrite(ledPin, LOW);
}
delay(15000); // Update setiap 15 saat
}