// nodeMCU Amica V2 Module mit ESP8266 12E - WiFiWebClient-2
// Board: NodeMCU 1.0 (ESP12E Module)

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

#define ssid     "mrge-ap-bu46" // anpassen
#define password ""             // anpassen, "" bedeutet kein Password  
const byte led1  =  D0;	        // Onboard-LED auf ESP8266

ESP8266WebServer server(80);

void handleRoot() {
  digitalWrite(led, not digitalRead(led));
  String info="<h1>Hallo vom ESP8266</h1>";
  server.send(200, "text/html; charset=UTF-8", info);
} 

void ledan() {
  digitalWrite(led, LOW);
  String info="<h3>Onboard LED ist AN</h3>";
  server.send(200, "text/html; charset=UTF-8", info);
}

void ledaus() {
  digitalWrite(led, HIGH);
  String info="<h3>Onboard LED ist AUS</h3>";
  server.send(200, "text/html; charset=UTF-8", info);
}

void ledblinken() {
  String info="<h3>Onboard LED blinkt 10 Mal</h3>";
  server.send(200, "text/html; charset=UTF-8", info);
  for(int i=0;i<2*10;i++) { digitalWrite(led, not digitalRead(led)); delay(100);};
}

void handleNotFound() {
String info = "<h4>ESP8266-Webserver kann darauf keine Antwort geben!</h4>";
  server.send(404, "text/html", info);
}

void setup() {
  Serial.begin(115200); Serial.println("\nStart: WiFiWebServer-2");
  WiFi.mode(WIFI_STA);
  pinMode(led,OUTPUT);    // Onboard-LED aktivieren
  WiFi.begin(ssid, password);
  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("."); delay(100);
  }
  Serial.print("\nConnected!");
  
  server.on("/", handleRoot);
  server.on("/on", ledan);
  server.on("/off", ledaus);
  server.on("/blink", ledblinken);
  server.onNotFound(handleNotFound);
  
  server.begin(); Serial.println(" - HTTP server started");Serial.println("http://" + WiFi.localIP().toString() );
  Serial.println("http://" + WiFi.localIP().toString() + "/on");
  Serial.println("http://" + WiFi.localIP().toString() + "/off" );
  Serial.println("http://" + WiFi.localIP().toString() + "/blink");
}  
void loop() {
  server.handleClient();
}

