Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save TrickSumo/2f16c122b2f59c1e7b0846514dd945cd to your computer and use it in GitHub Desktop.
Save TrickSumo/2f16c122b2f59c1e7b0846514dd945cd to your computer and use it in GitHub Desktop.
/*
Created by:- Rishi Tiwari
Website:- TrickSumo.com
Video Tutorial:- https://youtu.be/nLzC0-VaqDs
Libraries used:-
https://github.com/mobizt/Firebase-ESP8266/
*/
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#define FIREBASE_HOST "test.firebaseio.com" //Your Firebase Project URL goes here without "http:" , "\" and "/"
#define FIREBASE_AUTH "83Z6iVjTlxjfhjsgjhwerhwqweZxrTXiy0C9" //Your Firebase Database Secret goes here
#define WIFI_SSID "Wifiname-here" //WiFi SSID to which you want NodeMCU to connect
#define WIFI_PASSWORD "Wifipassword-here" //Password of your wifi network
// Declare the Firebase Data object in the global scope
FirebaseData firebaseData;
// Declare global variable to store value
int val=0;
void setup() {
Serial.begin(115200); // Select the same baud rate if you want to see the datas on Serial Monitor
Serial.println("Serial communication started\n\n");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //try to connect with wifi
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
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 Writing Data At Specifed Path************************************************
if (Firebase.setInt(firebaseData, "/data", val)) { // On successful Write operation, function returns 1
Serial.println("Value Uploaded Successfully");
Serial.print("Val = ");
Serial.println(val);
Serial.println("\n");
val++;
delay(1000);
}
else {
Serial.println(firebaseData.errorReason());
}
}
/* NOTE:
* To upload value, command is ===> Firebase.setInt(firebaseData, "path", variable);
* Example ===> Firebase.setInt(firebaseData, "/data", val);
*/
@TrickSumo
Copy link
Author

Hi @PunyaAneNihAlfaRohamn

Your error is the same as the others above in the same thread. Try this:-

Refer to this example:- https://github.com/mobizt/Firebase-ESP8266/blob/master/examples/Authentications/LegacyTokenAuthen/LegacyTokenAuthen.ino

Modified code:-

=======================================================================================
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>

#define FIREBASE_HOST "test.firebaseio.com" //Your Firebase Project URL goes here without "http:" , "" and "/"
#define FIREBASE_AUTH "abc" //Your Firebase Database Secret goes here

#define WIFI_SSID "Wifiname-here" //WiFi SSID to which you want NodeMCU to connect
#define WIFI_PASSWORD "Wifipassword-here" //Password of your wifi network

// Declare the Firebase Data object in the global scope
FirebaseData firebaseData;

/* 4, Define the FirebaseAuth data for authentication data */
FirebaseAuth auth;

/* Define the FirebaseConfig data for config data */
FirebaseConfig config;

// Declare global variable to store value
int val=0;

void setup() {

Serial.begin(115200); // Select the same baud rate if you want to see the datas on Serial Monitor

Serial.println("Serial communication started\n\n");

WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //try to connect with wifi
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);

while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}

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

/* Assign the database URL and database secret(required) */
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);

Firebase.reconnectWiFi(true);
delay(1000);
}

void loop() {

// Firebase Error Handling And Writing Data At Specifed Path************************************************

if (Firebase.setInt(firebaseData, "/data", val)) { // On successful Write operation, function returns 1
Serial.println("Value Uploaded Successfully");
Serial.print("Val = ");
Serial.println(val);
Serial.println("\n");

       val++;
       delay(1000);

}
else {
Serial.println(firebaseData.errorReason());
}

}

===================================================================================

@ChilveriPrathamesh
Copy link

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define FIREBASE_HOST "homeautomation-f5bc5-default-rtdb.firebaseio.com" //Without http:// or https:// schemes
#define FIREBASE_AUTH "abc"
#define WIFI_SSID "Redmi 8"
#define WIFI_PASSWORD "12345678"
FirebaseData firebaseData;
FirebaseAuth auth;
FirebaseConfig config;

FirebaseData voltage_data;

FirebaseJson json;
String voltage_reading;
String current_reading;
String power_reading;
String energy_reading;
String line1;
String line2;
int x = 0;
void setup() {
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
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);
Wire.begin(D2, D1);

lcd.begin();

lcd.home();

lcd.print("Welcome to TM-IoT!!!");

}

void loop() {
if (Firebase.getString(voltage_data, "/TM_IOT/voltage")){
Serial.print("Voltage:- ");
Serial.println(voltage_data.stringData());
voltage_reading = voltage_data.stringData();
}
if (Firebase.getString(voltage_data, "/TM_IOT/current")){
Serial.print("Current:- ");
Serial.println(voltage_data.stringData());
current_reading = voltage_data.stringData();
}
if (Firebase.getString(voltage_data, "/TM_IOT/power")){
Serial.print("Power:- ");
Serial.println(voltage_data.stringData());
power_reading = voltage_data.stringData();
}
if (Firebase.getString(voltage_data, "/TM_IOT/frequency")){
Serial.print("Frequency:- ");
Serial.println(voltage_data.stringData());
frequency_reading = voltage_data.stringData();
}
if (Firebase.getString(voltage_data, "/TM_IOT/power_factor")){
Serial.print("Power Factor:- ");
Serial.println(voltage_data.stringData());
pf_reading = voltage_data.stringData();
}
if (Firebase.getString(voltage_data, "/TM_IOT/energy")){
Serial.print("Energy:- ");
Serial.println(voltage_data.stringData());
energy_reading = voltage_data.stringData();
}
if (x==0){
// line1 = "V: "+voltage_reading+" "+"I: "+current_reading;
// line2 = "P: "+power_reading+" "+"F: "+frequency_reading;
line1 = "V: "+voltage_reading;
line2 = "I: "+current_reading+" "+"F: "+frequency_reading;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(line1);
lcd.setCursor(0,1);
lcd.print(line2);
delay(3000);
x = 1;
}
if (x==1){
line1 = "P: "+power_reading+" "+"PF: "+pf_reading;
line2 = "E: "+energy_reading;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(line1);
lcd.setCursor(0,1);
lcd.print(line2);
delay(2000);
x = 0;
}
}

iam working on this code but iam getting error...please help me out urgently

Arduino: 1.8.19 (Windows 10), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

C:\Users\Prathamesh\Desktop\nodemcu2\nodemcu2.ino: In function 'void setup()':

nodemcu2:7:23: error: cannot convert 'const char [49]' to 'FirebaseConfig*' {aka 'firebase_cfg_t*'}

7 | #define FIREBASE_HOST "homeautomation-f5bc5-default-rtdb.firebaseio.com" //Without http:// or https:// schemes

  |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  |                       |

  |                       const char [49]

C:\Users\Prathamesh\Desktop\nodemcu2\nodemcu2.ino:7:23: note: in definition of macro 'FIREBASE_HOST'

7 | #define FIREBASE_HOST "homeautomation-f5bc5-default-rtdb.firebaseio.com" //Without http:// or https:// schemes

  |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from C:\Users\Prathamesh\Documents\Arduino\libraries\Firebase-ESP8266-master\src/FirebaseESP8266.h:36,

             from C:\Users\Prathamesh\Desktop\nodemcu2\nodemcu2.ino:1:

C:\Users\Prathamesh\Documents\Arduino\libraries\Firebase-ESP8266-master\src/Firebase.h:130:30: note: initializing argument 1 of 'void FIREBASE_CLASS::begin(FirebaseConfig*, FirebaseAuth*)'

130 | void begin(FirebaseConfig *config, FirebaseAuth *auth);

  |              ~~~~~~~~~~~~~~~~^~~~~~

C:\Users\Prathamesh\Desktop\nodemcu2\nodemcu2.ino: In function 'void loop()':

nodemcu2:68:7: error: 'frequency_reading' was not declared in this scope; did you mean 'energy_reading'?

68 | frequency_reading = voltage_data.stringData();

  |       ^~~~~~~~~~~~~~~~~

  |       energy_reading

nodemcu2:73:5: error: 'pf_reading' was not declared in this scope; did you mean 'power_reading'?

73 | pf_reading = voltage_data.stringData();

  |     ^~~~~~~~~~

  |     power_reading

nodemcu2:84:45: error: 'frequency_reading' was not declared in this scope; did you mean 'energy_reading'?

84 | line2 = "I: "+current_reading+" "+"F: "+frequency_reading;

  |                                             ^~~~~~~~~~~~~~~~~

  |                                             energy_reading

nodemcu2:94:44: error: 'pf_reading' was not declared in this scope; did you mean 'power_reading'?

94 | line1 = "P: "+power_reading+" "+"PF: "+pf_reading;

  |                                            ^~~~~~~~~~

  |                                            power_reading

Multiple libraries were found for "SD.h"

Used: C:\Users\Prathamesh\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\SD

Not used: C:\Program Files (x86)\Arduino\libraries\SD

exit status 1

cannot convert 'const char [49]' to 'FirebaseConfig*' {aka 'firebase_cfg_t*'}

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

@TrickSumo
Copy link
Author

Hi @ChilveriPrathamesh

Check my last reply for the solution.

@Pomed26
Copy link

Pomed26 commented Apr 26, 2024

#include <FirebaseESP8266.h>
#include <ESP8266WiFi.h>

const char* ssid = "ASLAB 2024";
const char* password = "aslabfkom";
FirebaseData firebaseData;

int led = D6;

void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW); //nilai awal relay akan off

WifiConnect();
Firebase.begin("https://kendali-led-267ca-default-rtdb.asia-southeast1.firebasedatabase.app/", "3rq1K5m7xwS32bjFTTngTcQ7hgtaPhS6fx0cLTCo");
//Firebase.begin("firebase host", "firebase auth database");
}

void WifiConnect() {
WiFi.begin(ssid, password);
//memulai menghubungkan ke wifi router
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("."); //status saat mengkoneksikan
}
Serial.println("Sukses terkoneksi wifi!");
Serial.println("IP Address:"); //alamat ip lokal
Serial.println(WiFi.localIP());
}

void loop() {
if (Firebase.getString(firebaseData, "/Led")) {
if (firebaseData.dataType() == "string")
{
String Status = firebaseData.stringData();
if (Status == "ON") {
Serial.println("Led Menyala");
digitalWrite(led, HIGH); }
else if (Status == "OFF") {
Serial.println("led Mati");
digitalWrite(led, LOW);
}
else {Serial.println("Silahkan hanya isi dengan ON atau OFF");}
}
}
}

C:\Users\farha\AppData\Local\Temp.arduinoIDE-unsaved2024326-74804-itov49.xzeip\sketch_apr26b\sketch_apr26b.ino: In function 'void setup()':
C:\Users\farha\AppData\Local\Temp.arduinoIDE-unsaved2024326-74804-itov49.xzeip\sketch_apr26b\sketch_apr26b.ino:3:23: error: cannot convert 'const char [55]' to 'FirebaseConfig*' {aka 'firebase_cfg_t*'}
3 | #define FIREBASE_HOST "https://kendali-led-5cd6c-default-rtdb.firebaseio.com/"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const char [55]
C:\Users\farha\AppData\Local\Temp.arduinoIDE-unsaved2024326-74804-itov49.xzeip\sketch_apr26b\sketch_apr26b.ino:3:23: note: in definition of macro 'FIREBASE_HOST'
3 | #define FIREBASE_HOST "https://kendali-led-5cd6c-default-rtdb.firebaseio.com/"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from c:\Users\farha\OneDrive\Dokumen\Arduino\libraries\Firebase_ESP8266_Client\src/FirebaseESP8266.h:36,
from C:\Users\farha\AppData\Local\Temp.arduinoIDE-unsaved2024326-74804-itov49.xzeip\sketch_apr26b\sketch_apr26b.ino:1:
c:\Users\farha\OneDrive\Dokumen\Arduino\libraries\Firebase_ESP8266_Client\src/Firebase.h:130:30: note: initializing argument 1 of 'void FIREBASE_CLASS::begin(FirebaseConfig*, FirebaseAuth*)'
130 | void begin(FirebaseConfig *config, FirebaseAuth *auth);
| ~~~~~~~~~~~~~~~~^~~~~~
Multiple libraries were found for "SD.h"
Used: C:\Users\farha\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\SD
Not used: C:\Users\farha\AppData\Local\Arduino15\libraries\SD
exit status 1

Compilation error: cannot convert 'const char [55]' to 'FirebaseConfig*' {aka 'firebase_cfg_t*'}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment