#include <WiFi.h>
#include <Firebase_ESP_Client.h>
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define API_KEY "AIzaSyDsMFpRDmwu5aCutp3MwNY3h66Ut64GFxo"
#define DATABASE_URL "https://esp32-fb-7a6d7-default-rtdb.asia-southeast1.firebasedatabase.app/"
#define LED1_PIN 12
#define LED2_PIN 14
#define LDR_PIN 36
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long SendDataPrevMillis = 0;
bool signupOK = false;
int ldrData = 0;
float voltage = 0.0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
Serial.print("Connecting to wifi");
while(WiFi.status() != WL_CONNECTED)
{
Serial.print(".");delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.print(WiFi.localIP());
Serial.println();
config.api_key = API_KEY;
config.database_url = DATABASE_URL;
if(Firebase.signUp(&config, &auth, "","")){
Serial.println("Sign up OK");
signupOK = true;
}else{
Serial.printf("%s\n",config.signer.signupError.message.c_str());
}
config.token_status_callback = tokenStatusCallback;
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
if(Firebase.ready() && signupOK && (millis()-SendDataPrevMillis>5000 || SendDataPrevMillis == 0)){
SendDataPrevMillis = millis();
}
ldrData = analogRead(LDR_PIN);
voltage = (float)analogReadMilliVolts(LDR_PIN)/1000;
if(Firebase.RTDB.setInt(&fbdo,"Sensor/ldr_data", ldrData)){
Serial.println();Serial.print(ldrData);
Serial.print("Successfully saved to: " + fbdo.dataPath());
Serial.println("("+ fbdo.dataType() +")");
}else{
Serial.println("Failed: "+ fbdo.errorReason());
}
}