Skip to content
This repository has been archived by the owner on Aug 23, 2024. It is now read-only.

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Rupakpoddar authored Jul 28, 2023
1 parent 8514502 commit 21d1ae6
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 107 deletions.
49 changes: 29 additions & 20 deletions ESP8266Firebase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,7 @@ Firebase::Firebase(String projectID){
_httpsClient.setInsecure();
}

Firebase::Firebase(String projectID, const char* FIREBASE_FINGERPRINT){
_host = projectID+".firebaseio.com";
_httpsClient.setFingerprint(FIREBASE_FINGERPRINT);
_httpsClient.setTimeout(1000);
}

String Firebase::setString(String link, String data){
int Firebase::setString(String link, String data){
Connect_to_host();
String Link = String("/")+link+String(".json");
String msg = "\""+data+"\"";
Expand All @@ -60,21 +54,24 @@ String Firebase::setString(String link, String data){
String line;
while(_httpsClient.available()){
line = _httpsClient.readStringUntil('\n');
return line; // Return this
if (line.length() > 0)
return 200; // Success
}

return 400; // Failed
}

String Firebase::setInt(String link, int data){
int Firebase::setInt(String link, int data){
String Data = String(data);
return Firebase::setNum(link, Data);
}

String Firebase::setFloat(String link, float data){
int Firebase::setFloat(String link, float data){
String Data = String(data);
return Firebase::setNum(link, Data);
}

String Firebase::setNum(String link, String msg){
int Firebase::setNum(String link, String msg){
Connect_to_host();
String Link = String("/")+link+String(".json");

Expand All @@ -98,11 +95,14 @@ String Firebase::setNum(String link, String msg){
String line;
while(_httpsClient.available()){
line = _httpsClient.readStringUntil('\n');
return line; // Return this
if (line.length() > 0)
return 200; // Success
}

return 400; // Failed
}

String Firebase::pushString(String link, String data){
int Firebase::pushString(String link, String data){
Connect_to_host();
String Link = String("/")+link+String(".json");

Expand All @@ -128,21 +128,24 @@ String Firebase::pushString(String link, String data){
String line;
while(_httpsClient.available()){
line = _httpsClient.readStringUntil('\n');
return line; // Return this
if (line.length() > 0)
return 200; // Success
}

return 400; // Failed
}

String Firebase::pushInt(String link, int data){
int Firebase::pushInt(String link, int data){
String Data = String(data);
return Firebase::pushNum(link, Data);
}

String Firebase::pushFloat(String link, float data){
int Firebase::pushFloat(String link, float data){
String Data = String(data);
return Firebase::pushNum(link, Data);
}

String Firebase::pushNum(String link, String msg){
int Firebase::pushNum(String link, String msg){
Connect_to_host();
String Link = String("/")+link+String(".json");

Expand All @@ -166,8 +169,11 @@ String Firebase::pushNum(String link, String msg){
String line;
while(_httpsClient.available()){
line = _httpsClient.readStringUntil('\n');
return line; // Return this
if (line.length() > 0)
return 200; // Success
}

return 400; // Failed
}

String Firebase::getString(String link){
Expand Down Expand Up @@ -213,7 +219,7 @@ void Firebase::getData(String link){
}
}

String Firebase::deleteData(String link){
int Firebase::deleteData(String link){
Connect_to_host();
String Link = String("/")+link+String(".json");

Expand All @@ -231,8 +237,11 @@ String Firebase::deleteData(String link){
String line;
while(_httpsClient.available()){
line = _httpsClient.readStringUntil('\n');
return line; // Return this
if (line.length() > 0)
return 200; // Success
}

return 400; // Failed
}

void Firebase::json(bool json){
Expand Down
19 changes: 9 additions & 10 deletions ESP8266Firebase.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,19 @@ SOFTWARE.
{
public:
Firebase(String projectID);
Firebase(String projectID, const char* FIREBASE_FINGERPRINT);
String setString(String link, String data);
String setNum(String link, String data);
String setInt(String link, int data);
String setFloat(String link, float data);
String pushString(String link, String data);
String pushNum(String link, String data);
String pushInt(String link, int data);
String pushFloat(String link, float data);
int setString(String link, String data);
int setNum(String link, String data);
int setInt(String link, int data);
int setFloat(String link, float data);
int pushString(String link, String data);
int pushNum(String link, String data);
int pushInt(String link, int data);
int pushFloat(String link, float data);
void getData(String link);
String getString(String link);
int getInt(String link);
float getFloat(String link);
String deleteData(String link);
int deleteData(String link);
void json(bool json);
void Connect_to_host();

Expand Down
12 changes: 2 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
# ESP8266Firebase
## Arduino library to read and write data to Google Firebase Realtime Database.
## [UPDATE JULY 2021]: Now faster than ever before! Optimised for low latency performance. Added option to completely avoid entering fingerprint.

## Official Arduino Link:
###         https://www.arduino.cc/reference/en/libraries/esp8266-firebase/

## YouTube Videos:
###         https://www.youtube.com/watch?v=NqKaHee_zQA
###         https://www.youtube.com/watch?v=cIa5vQ7rRa0
###         https://www.youtube.com/watch?v=xpZ0oMvpQ3g
## Arduino library to read and write data to Google Firebase.
## [UPDATE 13 JULY 2020]: Now faster than ever before! Almost instant updating/response speed.

# Tutorial
### The following steps are one-time process:
Expand Down
22 changes: 5 additions & 17 deletions examples/FirebaseDemo/FirebaseDemo.ino
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,7 @@
#define _PASSWORD "ENTER HERE" // Your WiFi Password
#define PROJECT_ID "ENTER HERE" // Your Firebase Project ID. Can be found in project settings.

/*
// FAST METHOD
// REQUIRES PERIODIC UPDATE OF FINGERPRINT (EVERY 1 YEAR)
// OUTDATED FINGERPRINT WILL STOP THE SERVICE
// LATEST FINGERPRINT CAN BE FOUND AT- https://www.grc.com/fingerprints.htm?domain=test.firebaseio.com
// REPLACE COLONS(:) WITH A SPACE(" ") AS SHOWN BELOW
// 03:9E:4F:E6:83:FC:40:EF:FC:B2:C5:EF:36:0E:7C:3C:42:20:1B:8F ==> 03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F
#define FINGERPRINT "03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F"
Firebase firebase(PROJECT_ID, FINGERPRINT);
// UNCOMMENT THIS BLOCK AND COMMENT THE LINE BELOW
*/

Firebase firebase(PROJECT_ID); // SLOW BUT HASTLE-FREE METHOD FOR LONG TERM USAGE. DOES NOT REQUIRE PERIODIC UPDATE OF FINGERPRINT
Firebase firebase(PROJECT_ID);

void setup() {
Serial.begin(115200);
Expand All @@ -49,7 +37,7 @@ void setup() {
Serial.println("WiFi Connected");

// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("IP Address: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
Expand All @@ -70,17 +58,17 @@ void setup() {

// Example of getting a String.
String data1 = firebase.getString("Example/setString");
Serial.print("Received String: ");
Serial.print("Received String:\t");
Serial.println(data1);

// Example of getting an int.
int data2 = firebase.getInt("Example/setInt");
Serial.print("Received int: ");
Serial.print("Received Int:\t\t");
Serial.println(data2);

// Example of getting a float.
float data3 = firebase.getFloat("Example/setFloat");
Serial.print("Received float: ");
Serial.print("Received Float:\t\t");
Serial.println(data3);

// Example of data deletion.
Expand Down
29 changes: 9 additions & 20 deletions examples/FirebaseJsonDemo/FirebaseJsonDemo.ino
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,10 @@
#define _PASSWORD "ENTER HERE" // Your WiFi Password
#define PROJECT_ID "ENTER HERE" // Your Firebase Project ID. Can be found in project settings.

/*
// FAST METHOD
// REQUIRES PERIODIC UPDATE OF FINGERPRINT (EVERY 1 YEAR)
// OUTDATED FINGERPRINT WILL STOP THE SERVICE
// LATEST FINGERPRINT CAN BE FOUND AT- https://www.grc.com/fingerprints.htm?domain=test.firebaseio.com
// REPLACE COLONS(:) WITH A SPACE(" ") AS SHOWN BELOW
// 03:9E:4F:E6:83:FC:40:EF:FC:B2:C5:EF:36:0E:7C:3C:42:20:1B:8F ==> 03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F
#define FINGERPRINT "03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F"
Firebase firebase(PROJECT_ID, FINGERPRINT);
// UNCOMMENT THIS BLOCK AND COMMENT THE LINE BELOW
*/

Firebase firebase(PROJECT_ID); // SLOW BUT HASTLE-FREE METHOD FOR LONG TERM USAGE. DOES NOT REQUIRE PERIODIC UPDATE OF FINGERPRINT
Firebase firebase(PROJECT_ID);

void setup() {
Serial.begin(115200);
firebase.json(true);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
WiFi.mode(WIFI_STA);
Expand All @@ -51,7 +38,7 @@ void setup() {
Serial.println("WiFi Connected");

// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("IP Address: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
Expand All @@ -65,6 +52,8 @@ void setup() {
firebase.setInt("Example/setInt", 123);
firebase.setFloat("Example/setFloat", 45.32);

firebase.json(true); // Make sure to add this line.

String data = firebase.getString("Example"); // Get data from the database.

// Deserialize the data.
Expand All @@ -76,17 +65,17 @@ void setup() {

// Store the deserialized data.
const char* received_String = doc["setString"]; // "It's Working"
int received_int = doc["setInt"]; // 123
float received_float = doc["setFloat"]; // 45.32
int received_int = doc["setInt"]; // 123
float received_float = doc["setFloat"]; // 45.32

// Print data
Serial.print("Received String: ");
Serial.print("Received String:\t");
Serial.println(received_String);

Serial.print("Received int: ");
Serial.print("Received Int:\t\t");
Serial.println(received_int);

Serial.print("Received float: ");
Serial.print("Received Float:\t\t");
Serial.println(received_float);

// Delete data from the realtime database.
Expand Down
19 changes: 4 additions & 15 deletions examples/HomeAutomation/HomeAutomation.ino
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,10 @@
#define device4 14 // D5
int device_list[4] = {device1, device2, device3, device4};

/*
// FAST METHOD
// REQUIRES PERIODIC UPDATE OF FINGERPRINT (EVERY 1 YEAR)
// OUTDATED FINGERPRINT WILL STOP THE SERVICE
// LATEST FINGERPRINT CAN BE FOUND AT- https://www.grc.com/fingerprints.htm?domain=test.firebaseio.com
// REPLACE COLONS(:) WITH A SPACE(" ") AS SHOWN BELOW
// 03:9E:4F:E6:83:FC:40:EF:FC:B2:C5:EF:36:0E:7C:3C:42:20:1B:8F ==> 03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F
#define FINGERPRINT "03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F"
Firebase firebase(PROJECT_ID, FINGERPRINT);
// UNCOMMENT THIS BLOCK AND COMMENT THE LINE BELOW
*/

Firebase firebase(PROJECT_ID); // SLOW BUT HASTLE-FREE METHOD FOR LONG TERM USAGE. DOES NOT REQUIRE PERIODIC UPDATE OF FINGERPRINT
Firebase firebase(PROJECT_ID);

void setup() {
Serial.begin(115200);
firebase.json(true);
pinMode(device1, OUTPUT);
pinMode(device2, OUTPUT);
pinMode(device3, OUTPUT);
Expand All @@ -65,11 +52,13 @@ void setup() {
Serial.println("WiFi Connected");

// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("IP Address: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
digitalWrite(LED_BUILTIN, HIGH);

firebase.json(true); // Make sure to add this line.
}

void loop() {
Expand Down
16 changes: 2 additions & 14 deletions examples/RobotController/RobotController.ino
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,7 @@
#define TURN_DELAY 100
#define FORWARD_BACKWARD_DELAY 500

/*
// FAST METHOD
// REQUIRES PERIODIC UPDATE OF FINGERPRINT (EVERY 1 YEAR)
// OUTDATED FINGERPRINT WILL STOP THE SERVICE
// LATEST FINGERPRINT CAN BE FOUND AT- https://www.grc.com/fingerprints.htm?domain=test.firebaseio.com
// REPLACE COLONS(:) WITH A SPACE(" ") AS SHOWN BELOW
// 03:9E:4F:E6:83:FC:40:EF:FC:B2:C5:EF:36:0E:7C:3C:42:20:1B:8F ==> 03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F
#define FINGERPRINT "03 9E 4F E6 83 FC 40 EF FC B2 C5 EF 36 0E 7C 3C 42 20 1B 8F"
Firebase firebase(PROJECT_ID, FINGERPRINT);
// UNCOMMENT THIS BLOCK AND COMMENT THE LINE BELOW
*/

Firebase firebase(PROJECT_ID); // SLOW BUT HASTLE-FREE METHOD FOR LONG TERM USAGE. DOES NOT REQUIRE PERIODIC UPDATE OF FINGERPRINT
Firebase firebase(PROJECT_ID);

void setup() {
Serial.begin(115200);
Expand Down Expand Up @@ -68,7 +56,7 @@ void setup() {
Serial.println("WiFi Connected");

// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("IP Address: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=ESP8266 Firebase
version=1.1.0
version=1.2.0
author=Rupak Poddar
maintainer=Rupak Poddar <[email protected]>
sentence=Library for ESP8266 to read and write data to Firebase Realtime Database.
Expand Down

0 comments on commit 21d1ae6

Please sign in to comment.