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);
*/
@AxiBu10
Copy link

AxiBu10 commented Nov 2, 2023

Config.Database_url = FIREBASE_HOST;
Config.Signer.tokens.legacy_token = FIREBASE_AUTH;

Compilation error: 'config' was not declared in this scope

:((((

@TrickSumo
Copy link
Author

Hi @AxiBu10

"D" should be in small case:-
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;

@PunyaAneNihAlfaRohamn
Copy link

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

// Konfigurasi WiFi
const char* ssid = "Asus";
const char* password = "12345678aja";

// Konfigurasi Firebase
#define FIREBASE_HOST "gas-emisi-project-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "r9P02NIsYGt2szrekkmfjyDrYAf8ARcYB7Kx0NXV"
#define pinSensor A0 // mendefinisikan bahwa pin yang digunakan

// untuk membaca sensor adalah pin A0
// Objek LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2);

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

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

void setup() {
Serial.begin(9600);
lcd.begin(); // Inisialisasi LCD dengan 16 kolom dan 2 baris
lcd.setCursor(0, 0);
lcd.print("Deteksi Gas CO");
lcd.setCursor(0, 1);
lcd.print("MQ-7");
delay(2000); // Tunggu 2 detik sebelum memulai
lcd.clear(); // Hapus tampilan awal

// Mulai koneksi WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}

// Mulai koneksi ke Firebase
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}

long RL = 1000; // 1000 Ohm
long Ro = 4000; // 4000 ohm

void loop() {
// Baca nilai sensor MQ-7
int sensorvalue = analogRead(pinSensor); // membaca nilai ADC dari sensor
float VRL= sensorvalue*5.00/1023; // mengubah nilai ADC ( 0 - 1023 ) menjadi nilai voltase ( 0 - 5.00 volt )
Serial.print("VRL : ");
Serial.print(VRL);
Serial.println(" volt");
float hambatansensor = ( 5.00 * RL / VRL ) - RL;
Serial.print("Rs : ");
Serial.print(hambatansensor);
Serial.println(" Ohm");
float ppm = 100 * pow(hambatansensor / Ro,-1.53); // ppm = 100 * ((rs/ro)^-1.53);
Serial.print("CO : ");
Serial.print(ppm);
Serial.println(" ppm");
Serial.println()

// Tampilkan hasil kalibrasi di LCD
lcd.clear();
lcd.print("CO (ppm):");
lcd.setCursor(0, 1);
lcd.print(ppm);

// Unggah data deteksi CO ke Firebase
Firebase.pushFloat(firebaseData, "/data/gasCO", ppm);
Firebase.push(firebaseData, "/data", "");
delay(5000); // Tunda selama 5 detik sebelum membaca ulang sensor
}

Screenshot (78)

and i got error is this :
D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino: In function 'void setup()':
D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino:11:23: error: cannot convert 'const char [46]' to 'FirebaseConfig*' {aka 'firebase_cfg_t*'}
11 | #define FIREBASE_HOST "gas-emisi-project-default-rtdb.firebaseio.com"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const char [46]
D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino:11:23: note: in definition of macro 'FIREBASE_HOST'
11 | #define FIREBASE_HOST "gas-emisi-project-default-rtdb.firebaseio.com"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from c:\Users\muham\OneDrive\Dokumen\Arduino\libraries\Firebase_ESP8266_Client\src/FirebaseESP8266.h:36,
from D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino:4:
c:\Users\muham\OneDrive\Dokumen\Arduino\libraries\Firebase_ESP8266_Client\src/Firebase.h:133:30: note: initializing argument 1 of 'void FIREBASE_CLASS::begin(FirebaseConfig*, FirebaseAuth*)'
133 | void begin(FirebaseConfig *config, FirebaseAuth *auth);
| ~~~~~~~~~~~~~~~~^~~~~~
D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino: In function 'void loop()':
D:\Kuliah\Semester 5\INTERNET OF THING\project gas emisi\sketch_new\sketch_new.ino:59:19: error: expected ';' before 'lcd'
59 | Serial.println()
| ^
| ;
......
62 | lcd.clear();
| ~~~
Multiple libraries were found for "SD.h"
Used: C:\Users\muham\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\SD
Not used: C:\Users\muham\AppData\Local\Arduino15\libraries\SD
exit status 1

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

@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