Friday, November 15, 2019

An LED control using WiFi with NodeMCU

Necessary tools and Hardware

1. NodeMCU ESP8266------ 01
2. LED ------------------------ 01
3. Wifi Connection / Arduino IDE

How it works.

when you connect to the webserver using IP two switches will be displayed, by switching them you can turn on and off an LED that connected to D0.

How to set up IDE
1. File--> Preferences--> Additional Board Manager URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
2. Tools--> Board--> BoardManager--> search for ''ESP8266'' --> install
3. Now Ready to Program after you select
3.1 Tools--> Board--> '' NodeMCU 0.9 (ESP-12 Module)''
3.2 Proper Serial Poart


Arduino Code.


#include <ESP8266WiFi.h>

const char* ssid = "Dialog 4G"; //your WiFi Name
const char* password = "YJNHQ102RD8";  //Your Wifi Password
int ledPin = D0;
WiFiServer server(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());
  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 is now: ");

  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Off </button></a><br />");
  client.println("</html>");

  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");

}

Compile and Upload

1. Change SSID and Wifi password
2. Compile and upload
3. open up serial monitor set baud rate as per above code
4. find the IP

connect and finalize

1. use above IP to open the web page and turn ON/OFF led which connected to D0


No comments:

Search This Blog