#include <WiFi.h>
#include <ThingSpeak.h>
// Konfigurasi Wi-Fi
const char *ssid = "Wokwi-GUEST";
const char *password = "";
// Inisialisasi koneksi Wi-Fi
WiFiClient client;
const char *thingSpeakApiKey = "9Z95F8Z8K9P4KMFC";
unsigned long thingSpeakChannelId = 2377565;
// unsigned long myChannelNumber = 2359833;
// const char * myWriteAPIKey = "6VI3RTOY7E9CQN7N";
int statusCode;
// Pin sensor ultrasonik HC-SR04
const int trigPin = 13;
const int echoPin = 14;
void setup() {
Serial.begin(115200);
// Koneksi ke Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Inisialisasi ThingSpeak
ThingSpeak.begin(client);
pinMode(echoPin, INPUT_PULLUP);
pinMode(trigPin, OUTPUT);
}
void loop() {
// Mengukur jarak dengan sensor ultrasonik
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) * 0.0343;
if (distance < 100) {
// Mengonversi jarak menjadi persentase
int percentage = map(distance, 0, 20, 100, 0);
// Mengunggah data ke ThingSpeak hanya jika jarak sesuai
ThingSpeak.writeField(thingSpeakChannelId, 1, percentage, thingSpeakApiKey);
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm, Level Air: ");
Serial.print(percentage);
Serial.println("%");
} else {
Serial.println("Jarak melebihi 20 cm. Tangki Penampungan Air Habis.");
}
delay(5000); // Delay 5 detik sebelum mengukur ulang
}