#include <WiFi.h>
#include <FirebaseESP32.h>
#define API_KEY "AIzaSyA47XOIu-O80Bx8nL3ms6sBnT2r4baJVeo"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
// Define Firebase project URL
#define DATABASE_URL "https://your-firebase-project-id.firebaseio.com/"
// Define Firebase database path
#define LED_STATE_PATH "/led_state"
// Define GPIO pins
#define LED_PIN 14
// Initialize Firebase ESP32 data
FirebaseData firebaseData;
FirebaseJson ledState;
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Connect to Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nConnected to WiFi");
// Initialize Firebase
Firebase.begin(FirebaseConfig());
Firebase.reconnectWiFi(true);
// Set LED pin as output
pinMode(LED_PIN, OUTPUT);
// Set initial LED state
digitalWrite(LED_PIN, LOW);
// Set initial LED state in Firebase
ledState.set("state", false);
Firebase.setJSON(firebaseData, LED_STATE_PATH, ledState);
}
void loop() {
// Toggle LED state
bool newState = !digitalRead(LED_PIN);
digitalWrite(LED_PIN, newState);
// Update LED state in Firebase
ledState.set("state", newState);
Firebase.setJSON(firebaseData, LED_STATE_PATH, ledState);
// Print new LED state to serial monitor
Serial.print("New LED state: ");
Serial.println(newState);
// Wait for a moment before toggling again
delay(1000);
}