FirebaseExtended / firebase-arduino

Arduino samples for Firebase.
Apache License 2.0
943 stars 494 forks source link

Issue on geting data With arduino WeMos D1 #461

Open teo2peer opened 4 years ago

teo2peer commented 4 years ago

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