Esp8266

Make NodeMCU ESP Web Server

NodeMcu Web Server is a kind of local network from where you can control the GPIO pins of NodeMCU. The working is very simple – NodeMCU is connected to a network i.e. WiFi Router or a mobile’s Hotspot (here, no need to  connect it to internet as because we will control GPIO pins  just through a local network)and any device connected to that particular network (WiFi) can type the local IP of NodeMCU in the browser’s URL section and easily control the pins.
Here as a demonstration, we will just control one LED but you can simply modified it as per the need of your project.
So, Let’s get started!
Components Required:
  • NodeMCU ESP 12E / or Any ESP based dev. board
  • LED
  • 220 ohm resistor
  • Jumper wires

Connection:

Code:

After making the above connection,upload the code and open the serial monitor and press the RESET button and now, you will see that that you board is connecting to the network which you have specified (Here, in code change the SSID and Password fields as per your network’s name and password) and you NodeMCU IP would display, note it down.

Open the browser on any device connected to the same network and use the above noted IP address and enter. You will find the there are two buttons that appears on the page and those are your control button for LED.

You can also follow our Wifi Home Automation project form here.

//Visit www.roboshala.com for more details on NodeMCU and other projects.

#include <ESP8266WiFi.h>
 
const char* ssid = "Alokom"; // SSID i.e. Service Set Identifier is the name of your WIFI
const char* password = "42224222"; // Your Wifi password, in case you have open network comment the whole statement.
 
int ledPin = 13; // GPIO13 or for NodeMCU you can directly write D7 
WiFiServer server(80); // Creates a server that listens for incoming connections on the specified port, here in this case port is 80.
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
  // Start the server
  server.begin();
  Serial.println("Server started");
 
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP()); //Gets the WiFi shield's IP address and Print the IP address of serial monitor
  Serial.println("/");
 
}
 
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
 
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  // Match the request
 
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
 
// Set ledPin according to the request
//digitalWrite(ledPin, value);
 
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
 
  client.print("Led pin is now: ");
 
  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");  
  client.println("</html>");
 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
 
}

 

Show More

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also

Close
Back to top button
Close