#include <FirebaseESP32.h>
#include <WiFi.h>
#define FIREBASE_HOST "https://uas-praktikum-2abfd-default-rtdb.asia-southeast1.firebasedatabase.app/"
#define FIREBASE_AUTH "5e0b144b16f2d6828257e1f455879aeff6825f10"
#define WIFI_SSID "Wokwi-Guest"
#define WIFI_PASSWORD ""
const int ldrPin1 = 34;
const int ldrPin2 = 32;
const int ledPin1 = 13;
const int ledPin2 = 12;
bool led1Status = false;
bool led2Status = false;
FirebaseAuth auth;
FirebaseConfig config;
FirebaseData firebaseData;
void setup()
{
Serial.begin(115200);
pinMode(ldrPin1, INPUT);
pinMode(ldrPin2, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
// Connect to Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Connected to WiFi");
// Initialize Firebase
config.api_key = FIREBASE_AUTH;
config.database_url = FIREBASE_HOST;
Firebase.begin(&config, &auth);
}
void loop()
{
int ldrValue1 = analogRead(ldrPin1);
int ldrValue2 = analogRead(ldrPin2);
// Update LED status based on sensor values
led1Status = (ldrValue1 > 500) ? false : true;
led2Status = (ldrValue2 > 1000) ? false : true;
digitalWrite(ledPin1, led1Status ? HIGH : LOW);
digitalWrite(ledPin2, led2Status ? HIGH : LOW);
Serial.print("LDR 1 Value: ");
Serial.println(ldrValue1);
Serial.print("LDR 2 Value: ");
Serial.println(ldrValue2);
Serial.print("LED 1 Status: ");
Serial.println(led1Status ? "ON" : "OFF");
Serial.print("LED 2 Status: ");
Serial.println(led2Status ? "ON" : "OFF");
// Update values in Firebase
Firebase.setDouble(firebaseData, "SENSOR_LDR/LDR1", ldrValue1);
Firebase.setDouble(firebaseData, "SENSOR_LDR/LDR2", ldrValue2);
Firebase.setBool(firebaseData, "KONDISI_LED/LED1", led1Status);
Firebase.setBool(firebaseData, "KONDISI_LED/LED2", led2Status);
delay(1000);
}