#include <WiFi.h>
#include <HTTPClient.h>
// Konfigurasi Wi-Fi
const char* ssid = "Wokwi-GUEST"; // Ganti dengan nama Wi-Fi Anda
const char* password = ""; // Ganti dengan password Wi-Fi Anda
// Konfigurasi ThingSpeak
const String apiKey = "PLWZYF2U5ST5O6YJ"; // Ganti dengan API key ThingSpeak
const String server = "http://api.thingspeak.com/update";
// Pin konfigurasi
const int ldrPin = 34; // Pin analog untuk LDR
const int ledPin = 2; // Pin digital untuk LED
const int threshold = 500; // Ambang batas sensor cahaya (sesuaikan)
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Menghubungkan ke Wi-Fi...");
}
Serial.println("Wi-Fi terhubung!");
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Matikan LED di awal
}
void loop() {
int ldrValue = analogRead(ldrPin); // Membaca nilai LDR
Serial.print("LDR Value: ");
Serial.println(ldrValue);
String lampStatus;
// Logika kontrol lampu
if (ldrValue > threshold) {
digitalWrite(ledPin, HIGH); // Nyalakan lampu
lampStatus = "1"; // Status ON
} else {
digitalWrite(ledPin, LOW); // Matikan lampu
lampStatus = "0"; // Status OFF
}
// Kirim data ke ThingSpeak
sendDataToThingSpeak(lampStatus);
delay(2000); // Tunggu 2 detik sebelum iterasi berikutnya
}
void sendDataToThingSpeak(String status) {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = server + "?api_key=" + apiKey + "&field1=" + status;
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.println("Data dikirim ke ThingSpeak.");
} else {
Serial.println("Gagal mengirim data ke ThingSpeak.");
}
http.end();
} else {
Serial.println("Tidak ada koneksi Wi-Fi.");
}
}