#include #define GPIO0 0 #define GPIO2 2 int Mode = 0; const char* ssid = "ESP8266_AP"; WiFiServer myServer(80); WiFiClient myClient; void postHandler(String request) { //Serial.println(request); myClient.println("HTTP/1.1 200 OK"); myClient.println("Content-Type: text/html"); myClient.println(""); myClient.println(""); myClient.println(""); myClient.println("

STATE

"); Mode = request.substring(request.lastIndexOf("=") + 1).toInt(); myClient.println("

Operating mode is set to " + String(Mode) + "

"); myClient.println(""); } void notFound() { myClient.println("HTTP/1.1 404 Not Found"); myClient.println("Content-Type: text/html"); myClient.println(""); myClient.println(""); myClient.println(""); myClient.println("

Not Found

"); myClient.println(""); } void getAnswer() { myClient.println("HTTP/1.1 200 OK"); myClient.println("Content-Type: text/html"); myClient.println(""); myClient.println(""); myClient.println(""); myClient.println("

STATE

"); myClient.println("

GPIO0 is in " + String(digitalRead(GPIO0)) + " state

"); myClient.println(""); } void LED_Blink(int n) { for (int i = 0; i < n; i++) { digitalWrite(LED_BUILTIN, LOW); delay(100); digitalWrite(LED_BUILTIN, HIGH); delay(1000); } } void setup() { pinMode(GPIO0, INPUT); pinMode(GPIO2, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); WiFi.mode(WIFI_AP); WiFi.softAP(ssid); myServer.begin(); LED_Blink(3); } void loop() { myClient = myServer.available(); if (myClient) { if (myClient.available()) { String request = myClient.readString(); myClient.flush(); if (request.indexOf("/state") != -1) { getAnswer(); } else if (request.indexOf("/set") != -1) { postHandler(request); } else { notFound(); } } } if (Mode == 2) { digitalWrite(GPIO2, digitalRead(GPIO0)); } else if (Mode == 0) { digitalWrite(GPIO2, HIGH); } else if (Mode == 1) { digitalWrite(GPIO2, LOW); } delay(10); }