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

  • A

    @sreu13 I edited comment please read that again. Most probably it will not effect your file system. In some scenarios it can create worse effect.

    read more
  • S

    @arunksoman i'll try this method, but while executing swap command, will the rasbian os and the files it contains be effected??

    read more
  • A

    @sreu13
    Ensure that you are installed tensorflow 1.x since screenshot of your code shows something like
    from keras.layers.convolution import covolution2D
    It is not correct in case for tensorflow 2.0 since keras api is part of tensorflow itself.

    Another thing is try to expand your file system. It should be do with your own risk.

    sudo raspi-config Navigate to Advanced options Select advanced options and hit enter(I believes tab key is useful here) Choose Expand File System and hit enter finish. Then your pi may prompt to reboot. If it didn't run. Execute
    sudo reboot Then execute following commands one by one: $ sudo apt-get purge wolfram-engine $ sudo apt-get purge libreoffice* $ sudo apt-get clean $ sudo apt-get autoremove Then increase swap memory by editing following file swapfile:
    $ sudo nano /etc/dphys-swapfile It will open nano editor. Navigate to variable CONF_SWAPSIZE=100

    It indicates your current swap is only 100mb.
    So you just have to increase by commenting down this line and increase to appropriate value something like shown below for 2GB swap:

    #CONF_SWAPSIZE=100 CONF_SWAPSIZE=2048 Save the file and exit nano editor. sudo reboot

    I believes if it did not helped you, you have to think about MOVIDIUS or NVIDIA Jetson nano etc.

    read more
  • S

    @arunksoman tensorflow 2.0.0 version had been installed

    read more
  • @arunksoman thanks,
    I will look more into it. Thanks again

    read more