#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#define FIREBASE_HOST "https://iotmobile-f7eea-default-rtdb.firebaseio.com/"
#define FIREBASE_AUTH "AIzaSyBN1dXcPV5WhOe1EYp-Zv8Xd6Ks5wJ8_PM"
#define WIFI_SSID "wokwi-GUEST"
#define WIFI_PASSWORD ""
FirebaseData firebaseData;
String send_data = "OFF";
String read_data = "";
// Define GPIO pin for the external LED
#define LED_PIN 27
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT); // Set GPIO27 as output for the LED
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP Address is : ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Serial.println();
delay(1000);
}
void loop() {
// Toggle send_data between "ON" and "OFF"
send_data = (send_data == "ON") ? "OFF" : "ON";
// Upload send_data to Firebase
if (Firebase.setString(firebaseData, "/data", send_data)) {
Serial.print("data '");
Serial.print(send_data);
Serial.println("' Uploaded Successfully");
} else {
Serial.println(firebaseData.errorReason());
}
delay(1000);
// Retrieve data from Firebase
if (Firebase.getString(firebaseData, "/data")) {
read_data = firebaseData.stringData();
Serial.print("Read_data = ");
Serial.println(read_data);
if (read_data == "ON") {
Serial.println("LED turned ON");
digitalWrite(LED_PIN, HIGH); // Turn on external LED
} else if (read_data == "OFF") {
Serial.println("LED turned OFF");
digitalWrite(LED_PIN, LOW); // Turn off external LED
}
Serial.println();
} else {
Serial.println(firebaseData.errorReason());
}
delay(3000);
}