/*
Created by:- Yoga Pratama Pangestu
Libraries used:-
1. Arduino Json
2. Firebase ESP32 Client
*/
#include <WiFi.h>
#include "FirebaseESP32.h"
// Insert your network credentials
#define WIFI_SSID "Wokwi-GUEST" // your WiFi SSID
#define WIFI_PASSWORD "" // your WiFi PASSWORD
#define LED1 13
#define LED2 14
#define LED3 33
#define LED4 32
// Insert Firebase project API Key
#define FIREBASE_AUTH "kEgmch7kd4Z7Las1JTU1bxh9fUW2ecHo36Wou88n"
// Insert RTDB URLefine the RTDB URL */
#define FIREBASE_HOST "https://esp32-iot-a129f-default-rtdb.asia-southeast1.firebasedatabase.app/"
// Declare the Firebase Data object in the global scope
FirebaseData firebaseData;
// Declare global variable to store value
String val= "example";
String val2= "example";
String val3= "example";
String val4= "example";
void setup() {
// Select the same baud rate if you want to see the datas on Serial Monitor
Serial.begin(115200);
// Set All led as output
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
Serial.println("Serial communication started\n\n");
//try to connect with wifi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, 6);
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
//get status Connected OK/NO ?
Serial.println();
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP Address is : ");
Serial.println(WiFi.localIP()); //print local IP address
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // connect to firebase
Firebase.reconnectWiFi(true);
delay(1000);
}
void loop() {
// Firebase Error Handling And Reading Data From Specified Path ************************************************
// if (Firebase.getString(firebaseData, "/Device/s1")) { // On successful Read operation, function returns 1
// Serial.println(firebaseData.dataType());
// val = firebaseData.stringData();
// if (val == "1"){
// Serial.println("s1 HIGH");
// digitalWrite(LED1, 1);
// }else{
// Serial.println("s1 low");
// digitalWrite(LED1, 0);
// }
// Serial.println(val);
// Serial.println("\n Change value at firebase console to see changes here.");
// delay(2000);
// }
if (Firebase.pushFloat(firebaseData, "/test/append", 34.5))
{
Serial.println(firebaseData.dataPath());
Serial.println(firebaseData.pushName());
Serial.println(firebaseData.dataPath() + "/"+ firebaseData.pushName());
}
else {
Serial.println(firebaseData.errorReason());
}
// if (Firebase.getString(firebaseData, "/Device/s2")) { // On successful Read operation, function returns 1
// Serial.println(firebaseData.dataType());
// val2 = firebaseData.stringData();
// if (val2 == "1"){
// Serial.println("s2 HIGH");
// digitalWrite(LED2, 1);
// }else{
// Serial.println("s2 low");
// digitalWrite(LED2, 0);
// }
// Serial.println(val2);
// Serial.println("\n Change value at firebase console to see changes here.");
// delay(1000);
// }
// if (Firebase.getString(firebaseData, "/Device/s3")) { // On successful Read operation, function returns 1
// Serial.println(firebaseData.dataType());
// val3 = firebaseData.stringData();
// if (val3 == "1"){
// Serial.println("s3 HIGH");
// digitalWrite(LED3, 1);
// }else{
// Serial.println("s3 low");
// digitalWrite(LED3, 0);
// }
// Serial.println(val3);
// Serial.println("\n Change value at firebase console to see changes here.");
// delay(1000);
// }
// if (Firebase.getString(firebaseData, "/Device/s4")) { // On successful Read operation, function returns 1
// Serial.println(firebaseData.dataType());
// val4 = firebaseData.stringData();
// if (val4 == "1"){
// Serial.println("s4 HIGH");
// digitalWrite(LED4, 1);
// }else{
// Serial.println("s4 low");
// digitalWrite(LED4, 0);
// }
// Serial.println(val4);
// Serial.println("\n Change value at firebase console to see changes here.");
// delay(1000);
// } else {
// Serial.println(firebaseData.errorReason());
// }
}
/* NOTE:
* To read value, command is ===> Firebase.getInt(firebaseData, "path"); variable = firebaseData.intData();
*
* Example ===> Firebase.setInt(firebaseData, "/data", val); val = firebaseData.intData();
*/