Uploading data to firebase using NodeMCU



  • Hello,
    I am trying to upload data to firebase but wasn't able to do it. I'm not able to understand the error.
    I wanted to update the value of NEW in firebase...
    Please refer to my code and firebase tree to solve the error.!!!

    68f72edb-2241-4e61-923d-1cd79b154718-image.png

    #include <ESP8266WiFi.h>
    #include <FirebaseArduino.h>       
    
    // Set these to run example.
    #define FIREBASE_HOST "syndinnovate-1.firebaseapp.com"
    #define FIREBASE_AUTH "AIzaSyAf**********-v7hKQe4uPbfUKHc"
    #define WIFI_SSID "Anudeep"
    #define WIFI_PASSWORD "Anudeep123"
    
    void setup() {
      Serial.begin(9600);
    
      // connect to wifi.
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
      Serial.print("connecting");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
      }
      Serial.println();
      Serial.print("connected: ");
      Serial.println(WiFi.localIP());
      
      Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
    }
    
    int n = 0;
    
    void loop() {
      /*
      // set value
      Firebase.setFloat("number", 42.0);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /number failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);*/
      
      // update value
      Firebase.setFloat("/NEW", 43.0);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /number failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);
    /*
      // get value 
      Serial.print("number: ");
      Serial.println(Firebase.getFloat("number"));
      delay(1000);
    
      // remove value
      Firebase.remove("number");
      delay(1000);
    
      // set string value
      Firebase.setString("message", "hello world");
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /message failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);
      
      // set bool value
      Firebase.setBool("truth", false);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /truth failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);*/
    
      // append a new value to /logs
      String name = Firebase.pushInt("/NEW", n++);
      // handle error
      if (Firebase.failed()) {
          Serial.print("pushing /logs failed:");
          Serial.println(Firebase.error());  
          return;
      }
      Serial.print("pushed: /logs/");
      Serial.println(name);
      delay(1000);
    }
    


  • May be "FIREBASE_HOST" have some error, try in this model "<YourProjectName>.firebaseio.com"
    Look this project : ( https://github.com/jagannathBhat/barish/tree/master/nodeWithFirebase)



  • Hi @Anudeep , Can you please share the error log details?

    If you are facing this error with the JSONBUFFER_SIZE like this

    lib\firebase-arduino-master\src\FirebaseObject.h:109:21: error: 'StaticJsonBuffer' was not declared in this scope
    std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
    

    this is might be using the latetst ArduinoJson lib , so downgrade Arduinojson to the version 5.13.2. It will fix the issue

    Sketch -> Include libraries -> Manage libraries

    Capture.PNG

    if the error persist please share the full error log so that we can understand it better .



  • Thanks, @salmanfaris, I have solved this error previously. But for me there is no error, code is getting uploaded smoothly but the data is not getting uploaded to the firebase!
    Do I have to change any settings in the firebase page? for uploading the data!!

    After uploading the code... I have the below log!!

    esptool.py v2.6
    2.6
    esptool.py v2.6
    Serial port COM4
    Connecting....
    Chip is ESP8266EX
    Features: WiFi
    MAC: 84:f3:eb:58:b5:b7
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Auto-detected Flash size: 4MB
    Compressed 366560 bytes to 260548...
    
    Writing at 0x00000000... (6 %)
    Writing at 0x00004000... (12 %)
    Writing at 0x00008000... (18 %)
    Writing at 0x0000c000... (25 %)
    Writing at 0x00010000... (31 %)
    Writing at 0x00014000... (37 %)
    Writing at 0x00018000... (43 %)
    Writing at 0x0001c000... (50 %)
    Writing at 0x00020000... (56 %)
    Writing at 0x00024000... (62 %)
    Writing at 0x00028000... (68 %)
    Writing at 0x0002c000... (75 %)
    Writing at 0x00030000... (81 %)
    Writing at 0x00034000... (87 %)
    Writing at 0x00038000... (93 %)
    Writing at 0x0003c000... (100 %)
    Wrote 366560 bytes (260548 compressed) at 0x00000000 in 23.3 seconds (effective 126.0 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting via RTS pin...
    


  • Thanks, @rafitc99. But even this didn't solve my problem!!
    I have changed the code in the below format...

    #include <ESP8266WiFi.h>
    #include <FirebaseArduino.h>       
    
    // Set these to run example.
    #define FIREBASE_HOST "syndinnovate-1.firebaseio.com"
    #define FIREBASE_AUTH "AIzaS********************7hKQe4uPbfUKHc"
    #define WIFI_SSID "SSID"
    #define WIFI_PASSWORD "PASS"
    
    void setup() {
      Serial.begin(9600);
      delay(1000);                
      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                                                               //Start reading dht sensor
    }
    
    void loop() {                                                             //Convert RainSensr data into string
      
      Firebase.pushString("/NEW", "No");   
      delay(1000);//setup path and send readings
      Firebase.pushString("/NEW", "Yes");                                //setup path and send readings
      delay(1000);//setup path and send readings
    }
    


  • @Anudeep Ok , compilation part is clear .did you getting anything on the firebase side ? Any erros ?



  • @salmanfaris Nothing, No errors!!
    Do I need to change anything in Firebase settings or something?



  • @salmanfaris Thanks for the support!!
    I finally resolved the error. I have taken FIREBASE_AUTH as apiKey instead of Database secrets.



  • @Anudeep Great . Glad to know that it is solved , Keep hacking 🤖


Log in to reply
 

Recent Posts

  • F

    @salmanfaris best if you could point me to an example that works as described: getting different values depending on hoe close the finger is without really touching. nothing i tried did work yet

    read more
  • F

    @salmanfaris I haven't found a good sensor module for this at all. I used a thing which was calles touch sensor and it returns only 1/0. Tried to use touchRead() but it is not sensitive apparently, only 40 and 1 more or less.

    #define touch_pin_numer 33

    const int VALUE_THRESHOLD = 30;
    int TOUCH_SENSOR_VALUE;
    void setup()
    {
    Serial.begin(115200);
    delay(1000);

    }
    void loop(){
    TOUCH_SENSOR_VALUE = touchRead(touch_pin_numer);
    Serial.println(TOUCH_SENSOR_VALUE);
    if(TOUCH_SENSOR_VALUE < VALUE_THRESHOLD)
    {
    Serial.println ("Touch ON");
    }
    else{
    Serial.println ("Touch OFF");
    }
    }

    should show something between 40 (current max) and 1 (current min) the closer the finger gets but it shows 40/41/39 and 1 - nothing inbetween. got this code from the web

    read more
  • @FlorianB Can you share the code, output window/error and details of the sensor module?

    read more
  • F

    Hi! I am trying to add an capacitive sensor to the ESP32, that will work through glass with 3mm thickness and an distance of 8 to 2 cm. I have bought sensors which only work on touch, i have looked into the touchRead() function but cant get a steady value increase/decrease with distance and only a real touch gets me enough difference to count it as a "touch". I have checked Arduino examples with foil where a resistor can set the sensitivity but nothing worked on my ESP32. i have spent hours looking for an example, can somebody point me to one please?

    read more
  • Capture.PNG

    Welcome to the Second edition of MakerGram Live, a newsletter where we pull together information about Interesting projects, Industry news, upcoming events, job opportunities and other interesting bits that you may find useful. 😉

    If you are a member of makergram, you already received a mail, please check your inbox or you can read from here: MakerGram Live | May 2020 Maker Update

    read more