CAN Node MCU Act as a Web Server?


Angela Bailey

CAN Node MCU Act as a Web Server?

The NodeMCU, which is based on the ESP8266 microcontroller, is a versatile and affordable development board that has gained popularity among IoT enthusiasts. One of the many exciting features of the NodeMCU is its capability to act as a web server.

In this tutorial, we will explore how to utilize this functionality to create a simple web server using the NodeMCU.

Setting up the Hardware

Before we delve into the programming aspect, let’s make sure we have everything set up correctly. To follow along with this tutorial, you will need:

  • A NodeMCU board
  • A USB cable for powering and programming the board
  • A computer with Arduino IDE installed
  • A stable internet connection

Programming the NodeMCU as a Web Server

Now that we have our hardware ready, let’s move on to programming the NodeMCU as a web server. Follow these steps:

Step 1: Include the Required Libraries

To begin, open your Arduino IDE and create a new sketch. To use the ESP8266 library with your project, go to Sketch > Include Library > Manage Libraries...

Search for “ESP8266WiFi” and click on “Install” to add it to your library collection.

Step 2: Set Up Wi-Fi Credentials

Next, we need to define our Wi-Fi credentials so that our NodeMCU can connect to our local network. Add the following lines of code at the beginning of your sketch:

#include <ESP8266WiFi.h>

const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";

Replace “YourWiFiSSID” with the name of your Wi-Fi network and “YourWiFiPassword” with your network’s password.

Step 3: Create an HTTP Server

Now, let’s create the web server. Add the following code snippet to set up a simple HTTP server that listens for incoming requests on port 80:

WiFiServer server(80);

void setup() {
  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  // Print the local IP address
  Serial.print("Connected! IP address: ");
  // Start the server

void loop() {

This code connects your NodeMCU to the Wi-Fi network using the provided credentials. It also starts an instance of WiFiServer that waits for incoming client connections on port 80.

Step 4: Handle Incoming Requests

To handle incoming requests and serve web pages, we need to add some code inside the loop() function. Modify your sketch as follows:

#include <ESP8266WebServer.h>

ESP8266WebServer httpServer(80);

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

void setup() {
    // .
    // Register the root path handler
    httpServer.on("/", handleRoot);
    // Start the HTTP server

void loop() {

In this code snippet, we include the ESP8266WebServer library and create an instance of it called httpServer. We define a function named handleRoot(), which handles requests to the root path (“/”) and sends a simple HTML response back to the client.

Finally, we register the handleRoot() function as the handler for the root path and start the HTTP server using httpServer.begin().

Testing the Web Server

That’s it! You have successfully programmed your NodeMCU to act as a web server. To test it out, follow these steps:

  • Upload your sketch to the NodeMCU board.
  • Open the Serial Monitor in Arduino IDE (make sure it’s set to 115200 baud rate) and wait for the board to connect to Wi-Fi.
  • Note down the IP address printed in the Serial Monitor once connected.
  • Open a web browser on your computer or smartphone and enter the IP address of your NodeMCU.
  • If everything worked correctly, you should see a webpage displaying “Hello from NodeMCU!”.

Congratulations! You have successfully created a simple web server using a NodeMCU board.

From here, you can expand on this project by adding more functionality or controlling other devices over Wi-Fi.

Note: Make sure to secure your web server by setting up proper authentication and handling client requests securely.

Happy tinkering!

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

Privacy Policy