Retriving data from firebase make an except, normaly 9 or 28, at every 100 time that I retrive data. I'm using the last version of ESP8266, firebase-master and arduino-json.
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include <FirebaseObject.h>
#include <FastLED.h>
FASTLED_USING_NAMESPACE;
#if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000)
#warning "Requires FastLED 3.1 or later; check github for latest code."
#endif
// DEFINICION DE LEDS
#define COLOR_ORDER GRB
#define NUM_LEDS_PER_STRIP 30
CRGB ledDer[NUM_LEDS_PER_STRIP];
CRGB ledMid[NUM_LEDS_PER_STRIP];
CRGB ledIzq[NUM_LEDS_PER_STRIP];
CRGB lamparaIzq[NUM_LEDS_PER_STRIP];
CRGB lamparaDer[NUM_LEDS_PER_STRIP];
uint8_t gBrightness = 255;
// RUTA FIREBASE
#define FIREBASE_HOST "*****.firebaseio.com"
#define FIREBASE_AUTH "***********************"
String ruta = "***************"; // DEFINIMOS QUE RUTA SOMOS
// DEFINICION DE DONDE CONECTARSE
#define WIFI_SSID "***************"
#define WIFI_PASSWORD "**************************"
// VARIABLES
int temp;
int veces;
void setup() {
Serial.begin(9600);
wifiConnect(); // Funcion que hace que se conecte al wifi
delay(3000);
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // Firebase conexion a la base
// INICIAR LOS LEDS
FastLED.addLeds<WS2812B, D6, COLOR_ORDER>(ledDer, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B, D7, COLOR_ORDER>(ledMid, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B, D8, COLOR_ORDER>(ledIzq, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B, D9, COLOR_ORDER>(lamparaIzq, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B, D10, COLOR_ORDER>(lamparaDer, NUM_LEDS_PER_STRIP);
// PROBAR LOS LEDS
ledIzq[6] = CRGB::Red;
for (int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
ledDer[i] = CRGB::Red;
ledDer[i - 1] = CRGB::Black;
FastLED[0].showLeds(gBrightness); delay(50);
} ledDer[29] = CRGB::Black; FastLED[0].showLeds(gBrightness); delay(50);
for (int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
ledMid[i] = CRGB::Red;
ledMid[i - 1] = CRGB::Black;
FastLED[1].showLeds(gBrightness); delay(50);
} ledMid[29] = CRGB::Black; FastLED[1].showLeds(gBrightness); delay(50);
}
void loop() {
if ((millis() - temp) >= 500) { // CADA 1 MIN
FirebaseObject leds = Firebase.get(ruta);
if (Firebase.failed())
{
Serial.print("setting number failed:");
Serial.println(Firebase.error());
ESP.reset();
}
String pixel0 = leds.getString(String("izquierda")); String pixel1 = leds.getString(String("atras"));
String pixel2 = leds.getString(String("derecha"));
Serial.println(pixel0); Serial.println(pixel1); Serial.println(pixel2);
veces = veces+1; Serial.println(veces);
temp = millis(); // REINICIA EL CHEQUEO
}
}
void wifiConnect() {
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // Define a que se tiene que conectar
Serial.print("connecting");
pinMode(2, OUTPUT); // LED azul del ESP
while (WiFi.status() != WL_CONNECTED) { //Espera hasta que se conecte a la red
Serial.print("."); digitalWrite(2, 1);
delay(250); digitalWrite(2, 0); delay(250);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP()); // Muestra la ip
for (int i = 0; i <= 20; i++) {
digitalWrite(2, 1); // Visual que se ha conectado
delay(50);
digitalWrite(2, 0);
delay(50);
}
Retriving data from firebase make an except, normaly 9 or 28, at every 100 time that I retrive data. I'm using the last version of ESP8266, firebase-master and arduino-json.