#include <WiFi.h>
#include <FirebaseESP32.h>
#define WIFI_SSID "Wokwi-GUEST" //SSID Wifi yang digunakan
#define WIFI_PASSWORD "" // Password Wifi
#define API_KEY "AIzaSyBKw4eBGu1oDzRWwhBnd5emMgUnCX9mrK0" // Web API
#define DATABASE_URL "https://project-5-c0490-default-rtdb.firebaseio.com/" // URL database
#define LED 2
FirebaseData fbd;
FirebaseJson json;
String st = "";
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(DATABASE_URL, API_KEY);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(fbd, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(fbd, "tiny");
Serial.println("------------------------------------");
Serial.println("Connected...");
String st = "1";
json.set("/Status", st);
Firebase.updateNode(fbd,"/LED",json);
}
void loop() {
Firebase.RTDB.getString(&fbd,"/LED/Status");
st = fbd.stringData();
Serial.println(st);
if (st == "1") {
Serial.println("Led Turned ON");
digitalWrite(LED, HIGH);
} else if (st == "0") {
Serial.println("Led Turned OFF");
digitalWrite(LED, LOW);
} else {
Serial.println(fbd.errorReason());}
delay(100);
}