Skip to main content
1 of 2
Duckbenok
  • 139
  • 1
  • 4
  • 14

ESP8266 Send Data to Firebase using Arduino UNO error

Good Day Everyone! I have a project in which the data from a button(number of clicks) will be sent to a realtime firebase database. Every time the button is clicked the counter increases and will be updated in the firebase database.

Wifi Module: Esp8266 Esp-01 + Esp-01 Adapter Esp8266 Esp-01 + Esp-01 Adapter

In my understanding, There are 2 ways to use this wifi module.

1st - Upload the code to the Arduino Uno and use AT commands in the module to send data to the web.

2nd - Upload the code inside the WiFi Module itself and after that it can be a standalone SOC and does not need the arduino anymore after the code has been uploaded.

I have tried the 2nd way but I got confused and stucked. So far I have successfully plugged the adapter in a breadboard and tested some AP commands

Since I will be using the 2nd way I won't be using these. So I tried this code

 #include <ESP8266WiFi.h>
 #include <FirebaseArduino.h>

 #define FIREBASE_HOST "https://duck-917ba.firebaseio.com/"
 #define FIREBASE_AUTH "r3jNQCsxN2Y2dcfawimRlzjLjdBSXLjstwGeyB0oMK"

 #define WIFI_SSID "mywifi"
 #define WIFI_PASSWORD "621533515"

const int  buttonPin = 8;    
int buttonPushCounter = 0;  
int buttonState = 0;        
int lastButtonState = 0;     

void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);

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);
Firebase.setInt("clicks",0);

}

void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(buttonPin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
  // if the current state is HIGH then the button went from off to on:
  buttonPushCounter++;
  Serial.println("on");
  Serial.print("number of button pushes: ");
  Serial.println(buttonPushCounter);
   Firebase.setInt("clicks", buttonPushCounter);
} else {
  // if the current state is LOW then the button went from on to off:
  Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(100);
 }
 // save the current state as the last state, for next time through the loop
 lastButtonState = buttonState;

 }

So I have plugged my 4 pin adapter to the following:

ARD(TX)-ADAPTER(TX)

ARD(RX)-ADAPTER(RX)

ARD(5V)-ADAPTER(VCC)

ARD(GND)-ADAPTER(GND)

I have set the Generic ESP8266 Module Board.

Problems Encountered:

*I am supposed to select the port of the ESP8266 but I only see the Arduino UNO port in the port list.

*When I compile the code I get this error.

enter image description here

I am now confused on what the error is all about. I thought since I am using an adapter I can use the PROGRAMMING MODE of the module easily. But it seems like my adapter is not doing its job. According to some of my research I have to use TTL or FTDI USB-to-serial dedicated module / Ground some wires while compiling which is very confusing for a beginner like me.

So here are my Final thoughts:

1.) Can I input/flash code in my module using my arduino and adapter?

2.) Since the button is plugged in the pin 8 of arduino. Does that mean If the code in the module will be successfully inserted. I will still need the arduino to be plugged in the buttons?

3.) What could be the reason why the module won't appear in the Port List and generates the errors?

I know this is quite a long and boring topic but I know a lot of aspiring IOT developers out there are having the same issues about this wifi module. I hope we can solve it together. Thanks!

Duckbenok
  • 139
  • 1
  • 4
  • 14