#include <Arduino.h>
#include <WiFi.h>
#include <FirebaseClient.h>
#define WIFI_SSID "*********"
#define WIFI_PASSWORD "**************"
#define API_KEY "*****************"
#define DATABASE_URL "*****************************"
#define USER_EMAIL "**********************"
#define USER_PASSWORD "**************"
// Function Declarations
void asyncCB(AsyncResult &aResult);
void initWifi();
DefaultNetwork network;
#include <WiFiClientSecure.h>
WiFiClientSecure ssl_client;
UserAuth user_auth(API_KEY, USER_EMAIL, USER_PASSWORD, 3000);
FirebaseApp app;
using AsyncClient = AsyncClientClass;
AsyncClient aClient(ssl_client, getNetwork(network));
RealtimeDatabase Database;
unsigned long tmo = 0;
void setup() {
Serial.begin(115200);
unsigned long ms = millis();
initWifi();
Firebase.printf("Firebase Client v%s\n", FIREBASE_CLIENT_VERSION);
Serial.println("Initializing app...");
ssl_client.setInsecure();
// Initialize the FirebaseApp or auth task handler.
initializeApp(aClient, app, getAuth(user_auth), asyncCB, "authTask");
// Binding the FirebaseApp for authentication handler.
app.getApp<RealtimeDatabase>(Database);
Database.url(DATABASE_URL);
}
void loop() {
app.loop();
Database.loop();
if (app.ready() && millis() - tmo > 1000) {
tmo = millis();
Database.get(aClient, "/LED/digital", asyncCB, "LED1");
}
}
void initWifi() {
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(300);
}
Serial.println();
Serial.print("Connected To: ");
Serial.print(WiFi.localIP());
Serial.println();
}
void asyncCB(AsyncResult &aResult)
{
printResult(aResult);
}
void printResult(AsyncResult &aResult)
{
if (aResult.isEvent())
{
Firebase.printf("Event task: %s, msg: %s, code: %d\n", aResult.uid().c_str(), aResult.appEvent().message().c_str(), aResult.appEvent().code());
}
if (aResult.isDebug())
{
Firebase.printf("Debug task: %s, msg: %s\n", aResult.uid().c_str(), aResult.debug().c_str());
}
if (aResult.isError())
{
Firebase.printf("Error task: %s, msg: %s, code: %d\n", aResult.uid().c_str(), aResult.error().message().c_str(), aResult.error().code());
}
if (aResult.available())
{
Firebase.printf("task: %s, payload: %s\n", aResult.uid().c_str(), aResult.c_str());
}
}
To secure WiFi Connection consider adding a WiFi connection timeout to handle cases where WiFi might be unavailable.
1 Like
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.