🚀 Ever tried connecting an embedded application to a cloud database?
If not, here's a fun weekend project: Connect your ESP32/ESP8266 to Google Firebase and explore the power of real-time IoT!
I recently worked on a project where I controlled the GPIOs of an ESP32 by reading data directly from a Firebase database using Arduino Firebase client—and it worked like a charm! 🔌✨
With this setup, you can:
✅ Update Firebase from your ESP32 (send sensor data, etc.)
✅ Control your ESP32 remotely by updating Firebase via a mobile or web app
✅ Build an IoT dashboard that reflects real-time data updates
Whether you're building smart home projects or learning about cloud-connected devices, Firebase + ESP32 is a powerful combo.
💡 It’s a great hobby project to understand how embedded systems and cloud platforms can work together.
Give it a try—and let me know if you’d like the link to the tutorial I followed!
Have ever wondered how your routers get configured using a IP address on a web browser? The answer is simple, there is an embedded web server hosted on the router and when you connect to the computer using an Ethernet connection, the web server is accessed on the router using the IP address provided by the manufacturers for further configuration process.
I wanted to replicate this technology for evaluation purposes and using an IOT gateway development board, I could configure the ESP32 as Ethernet based web server attached to W5500 Ethernet module. I used a Arduino IDE to upload a sketch provided by a git hub repository maintained in the link https://github.com/Networking-for-Arduino/EthernetESP32/blob/master/examples/HelloServer/HelloServer.ino by https://forum.arduino.cc/u/juraj/summary
The code was uploaded after successful compilation but when connecting Ethernet module to my linux system, my linux was not allocating IP address to the Ethernet web server, a prerequisite for accessing the webserver through the web browser. There was some configuration problem in dhcp server installed in the linux system.
After consulting my friends working in the networking domain, I was suggested to use router which has an inbuilt dhcp server to allocate IP address to dhcp clients. As per suggestion from one of my friend I purchased TP link archer C6 router and connected IOT gateway to the same. Router allocated IP address to the Ethernet web server at ease and hence made web server accessible from the web browser of linux sytsem which was also connected to the router establishing a two terminal LAN.
Using this methodology you can connect your IOT gateway to local LAN for accessing the Sensor information dash board designed into Web server on getting a alert for a event notification to your mobile device by the gateway using cellular technology.
I was on my way to understand the operation of the IOT gateways which bridge the gap between IOT sensors and cloud which led me to buy a IOT development board from Vajruino.
The IOT gateway had a ESP32 wifi module, SIMCOM LTE module with a ethernet port. But one drawback about the gateway was that it was necessary to code the ESP32 in order to configure the IOT gateway. But nowadays IOT gateways are smart enough with a remote configuration option through web browser.
This made me to understand the basic concept of remote access of IOT gateway through web browser. A simple google search led me to an experiment wherein it is possible to control the ESP32 GPIO using webserver technique from a web browser over a local network.
It basically requires a node mcu esp32 board available over any robotic e-commerce website. A little bit of coding on the Arduino IDE can help you to control the onboard GPIO connected LED from a mobile web browser connected on a local network.
I am appending the Arduino code as below
#include<WiFi.h>
#include<ESPAsyncWebServer.h>
//
WiFi credentials
#defineWIFI_SSID"Redmi"
#defineWIFI_PASSWORD"19521952"
//
LED pin
#defineLED_PIN2
//
Web server object
AsyncWebServer
server(80);
//
LED state
int
LED_state = LOW;
//
Function to generate the HTML and CSS code for the web page
String
getHTML(){
String
html = "<!DOCTYPE HTML>";
html
+= "<html>";
html
+= "<head>";
html
+= "<style>";
html
+= "body {background-color: #F0F0F0;
font-family: Arial, Helvetica, sans-serif;}";
html
+= "h1 {color: #333333; text-align:
center;}";