#include <WiFi.h>
#include "FirebaseESP32.h"
// #define FIREBASE_HOST = "https://esp32-5714d-default-rtdb.firebaseio.com/";
// #define FIREBASE_AUTH = "n2mKNa10cmPWDvtn8qeYMb9ierNKOrWsLIoYxWbW";
// #define WIFI_SSID = "Wokwi-GUEST";
// #define WIFI_PASS = "";
const char* FIREBASE_HOST = "https://esp32-5714d-default-rtdb.firebaseio.com/";
const char* FIREBASE_AUTH = "n2mKNa10cmPWDvtn8qeYMb9ierNKOrWsLIoYxWbW";
const char* WIFI_SSID = "Wokwi-GUEST";
const char* WIFI_PASS = "";
String ledState = "";
String ledState1 = "";
String ledState2 = "";
String ledState3 = "";
int led = 2;
int led1 = 4;
int led2 = 33;
int led3 = 32;
FirebaseData firebaseData;
void setup() {
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASS);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Firebase.setMaxRetry(firebaseData, 3);
Firebase.setMaxErrorQueue(firebaseData, 30);
Firebase.setStreamCallback(firebaseData, streamCallback, streamTimeoutCallback);
if (!Firebase.beginStream(firebaseData, "/Lamp")){
Serial.println(firebaseData.errorReason());
}
}
void loop() {
}
void streamCallback(StreamData data){
Serial.println("Stream Data...");
Serial.println(data.streamPath());
Serial.println(data.dataPath());
Serial.println(data.dataType());
if (data.dataPath() == "/light"){
digitalWrite(led, data.intData());
}
if (data.dataPath() == "/light1"){
digitalWrite(led1, data.intData());
}
if (data.dataPath() == "/light2"){
digitalWrite(led2, data.intData());
}
if (data.dataPath() == "/light3"){
digitalWrite(led3, data.intData());
}
if (data.dataType() == "int")
Serial.println(data.intData());
else if (data.dataType() == "float")
Serial.println(data.floatData(), 5);
else if (data.dataType() == "double")
printf("%.91f\n", data.doubleData());
else if (data.dataType() == "boolean")
Serial.println(data.boolData() == 1 ? "true" : "false");
else if (data.dataType() == "string")
Serial.println(data.stringData());
else if (data.dataType() == "json")
Serial.println(data.jsonString());
}
void streamTimeoutCallback (bool timeout) {
if (timeout) {
Serial.println();
Serial.println("Stream timeout, resume streaming...");
Serial.println();
}
}