Can NodeMCU Act as Web Server?


Angela Bailey

Can NodeMCU Act as Web Server?

NodeMCU is a powerful development board that runs on the ESP8266 Wi-Fi module. It is widely used in IoT (Internet of Things) projects due to its low cost and ease of use. One of the interesting capabilities of NodeMCU is its ability to act as a web server, allowing you to serve web pages and interact with connected devices or sensors over Wi-Fi.

Setting Up NodeMCU as a Web Server

In order to use NodeMCU as a web server, you need to follow these steps:

  1. Connect your NodeMCU board to your computer using a USB cable.
  2. Open the Arduino IDE and install the necessary libraries for programming NodeMCU.
  3. Write the code to configure NodeMCU as a web server.
  4. Upload the code to your NodeMCU board.

To connect your computer with NodeMCU, ensure that you have installed the required drivers. Once connected, open the Arduino IDE and go to “Sketch” > “Include Library” > “Manage Libraries”.

Search for “ESP8266WiFi” and install it. This library provides all the necessary functions for working with Wi-Fi on NodeMCU.

Next, create a new sketch in Arduino IDE and include the following code:

#include <ESP8266WiFi.h>

const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

void setup() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  Serial.println("WiFi connected");
  Serial.println("IP address: ");

void loop() {
  // Your code here

In this code, replace “your_SSID” with the name of your Wi-Fi network and “your_PASSWORD” with your Wi-Fi password. The Serial.begin(115200) line sets the baud rate for serial communication, while WiFi.begin(ssid, password) connects NodeMCU to your Wi-Fi network.

The while loop checks if the connection is successful. If it is, NodeMCU will print the IP address on the serial monitor.

Serving Web Pages from NodeMCU

Now that you have successfully configured NodeMCU as a web server, let’s serve a basic web page:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

ESP8266WebServer server(80);

void handleRoot() {
  server.send(200, "text/html", "<html><body><h1>Hello from NodeMCU!</h1></body></html>");

void setup() {
  server.on("/", handleRoot);
  Serial.println("Server started");

void loop() {

In this code, we include the ESP8266WebServer library and create an instance of it named “server”. The handleRoot() function is called whenever a request is made to the root (“/”) of the web server.

It sends a simple HTML response with the message “Hello from NodeMCU! “.

The server.on(“/”, handleRoot) line tells the server to call the handleRoot() function when a request is made to the root (“/”) URL.

The server.begin() function starts the web server, and the server.handleClient() function handles incoming client requests.

Taking it Further

Now that you have a basic understanding of how to set up NodeMCU as a web server, you can explore more advanced features. For example, you can serve dynamic web pages that display real-time sensor data or control connected devices using buttons on the web page.

You can also use NodeMCU as an IoT hub and connect multiple devices to it. This way, you can monitor and control all your IoT devices through a single web interface.

In conclusion,

  • NodeMCU, with its built-in Wi-Fi capabilities, can act as a web server.
  • To set up NodeMCU as a web server, you need to configure it with your Wi-Fi details and write code using libraries like ESP8266WiFi and ESP8266WebServer.
  • You can serve web pages and handle client requests using functions defined in the ESP8266WebServer library.
  • NodeMCU’s web server capabilities can be extended to serve dynamic web pages and control multiple IoT devices.

With NodeMCU as a web server, you have the flexibility to build interactive web applications that can be accessed from any device connected to the same Wi-Fi network. So go ahead and explore the possibilities of using NodeMCU as a powerful web server for your IoT projects!

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy