#include <ArduinoJson.h>
#include <ESP32Firebase.h>
#define _SSID "Wokwi-GUEST"
#define _PASSWORD ""
#define REFERENCE_URL "----------------------"
#define LED_BUILTIN 2
#define Light0 23
#define Light1 22
#define Light2 21
int Lights_list[] ={Light0,Light1,Light2};
Firebase firebase(REFERENCE_URL);
void setup() {
Serial.begin(115200);
pinMode(Light0, OUTPUT);
pinMode(Light1, OUTPUT);
pinMode(Light2, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(300);
// Connect to WiFi
Serial.println();
Serial.println();
Serial.print("Connecting to: ");
Serial.println(_SSID);
WiFi.begin(_SSID, _PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print("-");
}
Serial.println("");
Serial.println("WiFi Connected");
digitalWrite(LED_BUILTIN, HIGH);
// Print the IP address
Serial.print("IP Address: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
firebase.json(true);
}
void loop() {
String data = firebase.getString("Example"); // Get data from the database.
// Deserialize the data.
// Consider using Arduino Json Assistant- https://arduinojson.org/v6/assistant/
const size_t capacity = JSON_OBJECT_SIZE(3) + 50;
DynamicJsonDocument doc(capacity);
deserializeJson(doc, data);
// Store the deserialized data.
String received_String1 = doc["Device1"].as<String>();
String received_String2 = doc["Device2"].as<String>();
String received_String3 = doc["Device3"].as<String>();
// Print data
String received_Strings[] = {received_String1, received_String2, received_String3};
for (int i = 0; i < 3; i++) {
if(received_Strings[i]=="true"){
digitalWrite(Lights_list[i], HIGH);
}else if(received_Strings[i]=="false"){
digitalWrite(Lights_list[i], LOW);
}
}
Serial.println("HI");
}