Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*--------------------------------------------------
- HTTP 1.1 Webserver for ESP8266
- --------------------------------------------------*/
- #include <ESP8266WiFi.h>
- const char* ssid = "xxxxxxxxxx";
- const char* password = "xxxxxxxxxxxx";
- unsigned long ulReqcount;
- unsigned long ulReconncount;
- int LED1 = D0; // LED connected to D1
- int LED2 = D1;
- int LED3 = D2;
- int LED4 = D3;
- int LED5 = D4;
- int LED6 = D5;
- int LED7 = D6;
- // Create an instance of the server on Port 80
- WiFiServer server(80);
- void setup()
- {
- // setup globals
- ulReqcount=0;
- ulReconncount=0;
- // prepare GPIO2
- pinMode(LED1, OUTPUT); // zvol pin jako output
- pinMode(LED2, OUTPUT);
- pinMode(LED3, OUTPUT);
- pinMode(LED4, OUTPUT);
- pinMode(LED5, OUTPUT);
- pinMode(LED6, OUTPUT);
- pinMode(LED7, OUTPUT); //spina pouze pri vypinani,prepina polaritu
- digitalWrite(D0, HIGH); //Vychozi stav
- digitalWrite(D1, HIGH);
- digitalWrite(D2, HIGH);
- digitalWrite(D3, HIGH);
- digitalWrite(D4, HIGH);
- digitalWrite(D5, HIGH);
- digitalWrite(D6, HIGH);
- Serial.begin(115200); // start serial
- delay(1);
- WiFi.mode(WIFI_STA); // inital connect
- WiFiStart();
- }
- void WiFiStart()
- {
- ulReconncount++;
- // 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");
- server.begin(); // Start server
- Serial.println("Server started");
- Serial.println(WiFi.localIP()); // Vypis IP adresy
- }
- void loop()
- {
- // check if WLAN is connected
- if (WiFi.status() != WL_CONNECTED)
- {
- WiFiStart();
- }
- // Check if a client has connected
- WiFiClient client = server.available();
- if (!client)
- {
- return;
- }
- // Wait until the client sends some data
- Serial.println("new client");
- unsigned long ultimeout = millis()+250;
- while(!client.available() && (millis()<ultimeout) )
- {
- delay(1);
- }
- if(millis()>ultimeout)
- {
- Serial.println("client connection time-out!");
- return;
- }
- // Read the first line of the request
- String sRequest = client.readStringUntil('\r');
- //Serial.println(sRequest);
- client.flush();
- // stop client, if request is empty
- if(sRequest=="")
- {
- Serial.println("empty request! - stopping client");
- client.stop();
- return;
- }
- // get path; end of path is either space or ?
- // Syntax is e.g. GET /?pin=MOTOR1STOP HTTP/1.1
- String sPath="",sParam="", sCmd="";
- String sGetstart="GET ";
- int iStart,iEndSpace,iEndQuest;
- iStart = sRequest.indexOf(sGetstart);
- if (iStart>=0)
- {
- iStart+=+sGetstart.length();
- iEndSpace = sRequest.indexOf(" ",iStart);
- iEndQuest = sRequest.indexOf("?",iStart);
- // are there parameters?
- if(iEndSpace>0)
- {
- if(iEndQuest>0)
- {
- // there are parameters
- sPath = sRequest.substring(iStart,iEndQuest);
- sParam = sRequest.substring(iEndQuest,iEndSpace);
- }
- else
- {
- // NO parameters
- sPath = sRequest.substring(iStart,iEndSpace);
- }
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- // output parameters to serial, you may connect e.g. an Arduino and react on it
- ///////////////////////////////////////////////////////////////////////////////
- if(sParam.length()>0)
- {
- int iEqu=sParam.indexOf("=");
- if(iEqu>=0)
- {
- sCmd = sParam.substring(iEqu+1,sParam.length());
- Serial.println(sCmd);
- }
- }
- ///////////////////////////
- // format the html response
- ///////////////////////////
- String sResponse,sHeader;
- ////////////////////////////
- // 404 for non-matching path
- ////////////////////////////
- if(sPath!="/")
- {
- sResponse="<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html>";
- sHeader = "HTTP/1.1 404 Not found\r\n";
- sHeader += "Content-Length: ";
- sHeader += sResponse.length();
- sHeader += "\r\n";
- sHeader += "Content-Type: text/html\r\n";
- sHeader += "Connection: close\r\n";
- sHeader += "\r\n";
- }
- ///////////////////////
- // format the html page
- ///////////////////////
- else
- {
- ulReqcount++;
- sResponse = "<html><head><title>Ovladani ES ESP8266 </title></head><body>";
- sResponse += "<font color=\"#00BFFF\"><body bgcolor=\"#000000\">";
- sResponse += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">";
- sResponse += "<h1><center>Ovladani ES </center></h1>";
- sResponse += "<h1><center>Arduino ESP8266</center></h1>";
- sResponse += "<FONT SIZE=+1>";
- sResponse += "<p><center>VZT______________<a href=\"?pin=1_ON\"><button>ON</button></a> <a href=\"?pin=1_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p>BALKON__________<a href=\"?pin=2_ON\"><button>ON</button></a> <a href=\"?pin=2_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p>POD BALKON_____<a href=\"?pin=3_ON\"><button>ON</button></a> <a href=\"?pin=3_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p>MALY PRACAK____<a href=\"?pin=4_ON\"><button>ON</button></a> <a href=\"?pin=4_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p>VELKY PRACAK___<a href=\"?pin=5_ON\"><button>ON</button></a> <a href=\"?pin=5_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p>LED POD BALKON_<a href=\"?pin=6_ON\"><button>ON</button></a> <a href=\"?pin=6_OFF\"><button>OFF</button></a></p>";
- sResponse += "<p> <a href=\"?pin=7_ON\"><button>*****VSECHNY SVETLA ZAPNOUT*******</button></a> </p>";
- sResponse += "<p> <a href=\"?pin=8_OFF\"><button>*****VSECHNY SVETLA VYPNOUT*******</button></a> </p>";
- //////////////////////
- // react on parameters
- //////////////////////
- if (sCmd.length()>0)
- {
- // write received command to html page
- sResponse += "Posledni prikaz:" + sCmd + "<BR>";
- //---------------------------VZT-------------------------------
- if(sCmd.indexOf("1_ON")>=0)
- {
- digitalWrite(LED1, LOW);
- delay(500); // waits for 500mS
- digitalWrite(LED1, HIGH); // sets the LED off
- }
- else if(sCmd.indexOf("1_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED1, LOW);
- delay(500);
- digitalWrite(LED1, HIGH);
- digitalWrite(LED7, HIGH);
- }
- //-------------------------BALKON----------------------------
- if(sCmd.indexOf("2_ON")>=0)
- {
- digitalWrite(LED2, LOW);
- delay(500);
- digitalWrite(LED2, HIGH);
- }
- else if(sCmd.indexOf("2_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED2, LOW);
- delay(500);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED7, HIGH);
- }
- // ------------------------POD BALKON-------------------
- if(sCmd.indexOf("3_ON")>=0)
- {
- digitalWrite(LED3, LOW);
- delay(500);
- digitalWrite(LED3, HIGH);
- }
- else if(sCmd.indexOf("3_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED3, LOW);
- delay(500);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED7, HIGH);
- }
- // ------------------------MALY PRACAK----------------------
- if(sCmd.indexOf("4_ON")>=0)
- {
- digitalWrite(LED4, LOW);
- delay(500);
- digitalWrite(LED4, HIGH);
- }
- else if(sCmd.indexOf("4_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED4, LOW);
- delay(500);
- digitalWrite(LED4, HIGH);
- digitalWrite(LED7, HIGH);
- }
- // -----------------------VELKY PRACAK-------------------------
- if(sCmd.indexOf("5_ON")>=0)
- {
- digitalWrite(LED5, LOW);
- delay(500);
- digitalWrite(LED5, HIGH);
- }
- else if(sCmd.indexOf("5_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED5, LOW);
- delay(500);
- digitalWrite(LED5, HIGH);
- digitalWrite(LED7, HIGH);
- }
- // -----------------------LED POD BALKON-------------------
- if(sCmd.indexOf("6_ON")>=0)
- {
- digitalWrite(LED6, LOW);
- delay(500);
- digitalWrite(LED6, HIGH);
- }
- else if(sCmd.indexOf("6_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED6, LOW);
- delay(500);
- digitalWrite(LED6, HIGH);
- digitalWrite(LED7, HIGH);
- }
- //__________________________vsechny svetla zapnout________________________________________
- if(sCmd.indexOf("7_ON")>=0)
- {
- digitalWrite(LED2, LOW);
- delay(1000);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- delay(1000);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(1000);
- digitalWrite(LED4, HIGH);
- digitalWrite(LED5, LOW);
- delay(1000);
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, LOW);
- delay(1000);
- digitalWrite(LED6, HIGH);
- }
- //__________________________vsechny svetla vypnout________________________________________
- if(sCmd.indexOf("8_OFF")>=0)
- {
- digitalWrite(LED7, LOW);
- delay(50);
- digitalWrite(LED2, LOW);
- delay(1000);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- delay(1000);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(1000);
- digitalWrite(LED4, HIGH);
- digitalWrite(LED5, LOW);
- delay(1000);
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, LOW);
- delay(1000);
- digitalWrite(LED6, HIGH);
- delay(50);
- digitalWrite(LED7, HIGH);
- }
- }
- sResponse += "<FONT SIZE=-2>";
- sResponse += "<BR>Pocet prikazu=";
- sResponse += ulReqcount;
- sResponse += " - Pocet spojeni=";
- sResponse += ulReconncount;
- sResponse += "<BR>";
- sResponse += "©Michal Hornak 27.8.2017<BR>";
- sResponse += "</body></html>";
- sHeader = "HTTP/1.1 200 OK\r\n";
- sHeader += "Content-Length: ";
- sHeader += sResponse.length();
- sHeader += "\r\n";
- sHeader += "Content-Type: text/html\r\n";
- sHeader += "Connection: close\r\n";
- sHeader += "\r\n";
- }
- // Send the response to the client
- client.print(sHeader);
- client.print(sResponse);
- // and stop the client
- client.stop();
- Serial.println("Client disonnected");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement