Skip to content

Commit

Permalink
Add examples
Browse files Browse the repository at this point in the history
  • Loading branch information
mobizt committed May 1, 2019
1 parent e6e2abe commit 5c7e9e8
Show file tree
Hide file tree
Showing 3 changed files with 191 additions and 2 deletions.
183 changes: 183 additions & 0 deletions examples/Blynk/Blynk.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@

/*
* Created by K. Suwatchai (Mobizt)
*
* Email: [email protected]
*
* Github: https://github.com/mobizt
*
* Copyright (c) 2019 mobizt
*
*/

//This example shows the basic usage of Blynk platform and Firebase RTDB.

//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>

#define FIREBASE_HOST "YOUR_FIREBASE_PROJECT.firebaseio.com"
#define FIREBASE_AUTH "YOUR_FIREBASE_DATABASE_SECRET"
#define WIFI_SSID "YOUR_WIFI_AP"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"

//Debug Blynk to serial port
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

//Auth token for your Blynk app project
#define BLYNK_AUTH "YOUR_BLYNK_APP_PROJECT_AUTH_TOKEN"

//Define FirebaseESP8266 data objects
FirebaseData firebaseData1;
FirebaseData firebaseData2;

String path = "/Blynk_Test/Int";

//D4 or GPIO2 on Wemos D1 mini
uint8_t BuiltIn_LED = 2;


/*
Blynk app Widget setup
**********************
1. Button Widget (Switch type), Output -> Virtual pin V1
2. LED Widget, Input -> Virtual pin V2
*/
WidgetLED led(V2);



void setup()
{

Serial.begin(115200);

pinMode(BuiltIn_LED, OUTPUT);

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);

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);

if (!Firebase.beginStream(firebaseData1, path))
{
Serial.println("------------------------------------");
Serial.println("Can't begin stream connection...");
Serial.println("REASON: " + firebaseData1.errorReason());
Serial.println("------------------------------------");
Serial.println();
}

Blynk.begin(BLYNK_AUTH, WIFI_SSID, WIFI_PASSWORD);
}

void loop()
{
Blynk.run();

if (!Firebase.readStream(firebaseData1))
{
Serial.println("------------------------------------");
Serial.println("Can't read stream data...");
Serial.println("REASON: " + firebaseData1.errorReason());
Serial.println("------------------------------------");
Serial.println();
}

if (firebaseData1.streamTimeout())
{
Serial.println("Stream timeout, resume streaming...");
Serial.println();
}

if (firebaseData1.streamAvailable())
{
Serial.println("------------------------------------");
Serial.println("Stream Data available...");
Serial.println("STREAM PATH: " + firebaseData1.streamPath());
Serial.println("EVENT PATH: " + firebaseData1.dataPath());
Serial.println("DATA TYPE: " + firebaseData1.dataType());
Serial.println("EVENT TYPE: " + firebaseData1.eventType());
Serial.print("VALUE: ");
if (firebaseData1.dataType() == "int")
{

Serial.println(firebaseData1.intData());
if (firebaseData1.intData() == 0)
{
digitalWrite(BuiltIn_LED, LOW);
led.off();
}
else if (firebaseData1.intData() == 1)
{
digitalWrite(BuiltIn_LED, HIGH);
led.on();
}
}
else if (firebaseData1.dataType() == "float")
Serial.println(firebaseData1.floatData());
else if (firebaseData1.dataType() == "boolean")
Serial.println(firebaseData1.boolData() == 1 ? "true" : "false");
else if (firebaseData1.dataType() == "string")
Serial.println(firebaseData1.stringData());
else if (firebaseData1.dataType() == "json")
Serial.println(firebaseData1.jsonData());
Serial.println("------------------------------------");
Serial.println();
}
}

BLYNK_WRITE(V1)
{
int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable

Serial.println("------------------------------------");
Serial.println("Set integer...");
if (Firebase.setInt(firebaseData2, path, pinValue))
{
Serial.println("PASSED");
Serial.println("PATH: " + firebaseData2.dataPath());
Serial.println("TYPE: " + firebaseData2.dataType());
Serial.print("VALUE: ");
if (firebaseData2.dataType() == "int")
Serial.println(firebaseData2.intData());
else if (firebaseData2.dataType() == "float")
Serial.println(firebaseData2.floatData(), 5);
else if (firebaseData2.dataType() == "double")
Serial.println(firebaseData2.doubleData(), 9);
else if (firebaseData2.dataType() == "boolean")
Serial.println(firebaseData2.boolData() == 1 ? "true" : "false");
else if (firebaseData2.dataType() == "string")
Serial.println(firebaseData2.stringData());
else if (firebaseData2.dataType() == "json")
Serial.println(firebaseData2.jsonData());
Serial.println("------------------------------------");
Serial.println();
}
else
{
Serial.println("FAILED");
Serial.println("REASON: " + firebaseData2.errorReason());
Serial.println("------------------------------------");
Serial.println();
}
}
8 changes: 7 additions & 1 deletion src/FirebaseESP8266.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* May 1, 2019
*
* Feature Added:
*
* - examples
*
* Feature Fixed:
* - readStream bugs
Expand Down Expand Up @@ -2394,6 +2394,9 @@ bool FirebaseESP8266::getServerStreamResponse(FirebaseData &dataObj)

res = getServerResponse(dataObj);

if (!dataObj._httpConnected)
dataObj._httpCode = HTTPC_ERROR_NOT_CONNECTED;

dataObj._streamCall = false;

return res;
Expand Down Expand Up @@ -2432,6 +2435,9 @@ bool FirebaseESP8266::getServerStreamResponse(FirebaseData &dataObj)

dataObj._streamCall = false;

if (!dataObj._httpConnected)
dataObj._httpCode = HTTPC_ERROR_NOT_CONNECTED;

return res;
}

Expand Down
2 changes: 1 addition & 1 deletion src/FirebaseESP8266.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* May 1, 2019
*
* Feature Added:
*
* - examples
*
* Feature Fixed:
* - readStream bugs
Expand Down

0 comments on commit 5c7e9e8

Please sign in to comment.