#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>


#ifndef STASSID
#define STASSID "NodeMCU"
#define STAPSK  "1234567890"
#endif
 
#define LED1 D0
#define LED2 D1
#define LED3 D2
 
const char* ssid     = STASSID;   // SSID AP / Hotspot name
const char* password = STAPSK;    // Password Wifi
 
ESP8266WebServer server(80);      //States the Webserver on port 80
String webpage;
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  pinMode(LED1, OUTPUT);
   pinMode(LED2, OUTPUT);
    pinMode(LED3, OUTPUT);
  
// Connect to WiFi network ------------------------------------------------
  Serial.println();
  Serial.print("Configuring access point...");
 
// Set WiFi ----------------------------------------------------------
  WiFi.mode(WIFI_AP);                      // Mode Station
  WiFi.begin(ssid, password);              // Matching SSID and Password
    
// Print status Connect --------------------------------------------------- 
  Serial.println("IP address: ");
  Serial.println(WiFi.softAPIP());
 
// Content of Webpage -------------------------------------------------------
  webpage+= "<h2> Web Control ESP8266 </h2>";
  webpage+= "<p>LED 1 : ";
  webpage+= "<a href=\"LED1ON\"\"><button>ON</button></a><a href=\"LED1OFF\"\"><button>OFF</button></a></p><br>";

  webpage+= "<p>LED 2 : ";
  webpage+= "<a href=\"LED2ON\"\"><button>ON</button></a><a href=\"LED2OFF\"\"><button>OFF</button></a></p><br>";

  webpage+= "<p>LED 3 : ";
  webpage+= "<a href=\"LED3ON\"\"><button>ON</button></a><a href=\"LED3OFF\"\"><button>OFF</button></a></p><br>";
 
// Create a Web Page view -----------------------------------------------
  server.on("/", []() {
    server.send(200, "text/html", webpage);
   });
 
// This section responds to incoming commands --------------------------
  server.on("/LED1ON", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED1,HIGH);
    delay(1000);
  });
 
  server.on("/LED1OFF", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED1,LOW);
    delay(1000);
  });

  server.on("/LED2ON", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED2,HIGH);
    delay(1000);
  });
 
  server.on("/LED2OFF", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED2,LOW);
    delay(1000);
  });

  server.on("/LED3ON", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED3,HIGH);
    delay(1000);
  });
 
  server.on("/LED3OFF", []() {
    server.send(200, "text/html", webpage);
    digitalWrite(LED3,LOW);
    delay(1000);
  });
  
 
  server.begin();
  Serial.println("Webserver starts");
}
 
void loop() {
   server.handleClient();
}
