Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ======================================================
- // Webserver program that sends button information
- // to ESP8266 and puts a control led on the page
- // ======================================================
- #include <ESP8266WiFi.h>
- #include <ESP8266WebServer.h>
- ESP8266WebServer server(80);
- // Your routers credentials
- const char* ssid = "Mi PhoneR";
- const char* password = "12345678";
- // ==========================================
- // initial variables
- // ==========================================
- String buttonON;
- String buttonOFF;
- int sumDelay = 0;
- #define pinForward D6
- #define pinBackward D7
- #define maxDelay 10000
- #define step 1000
- void calibrate();
- // =========================================
- // Here is the HTML page
- // =========================================
- String getPage()
- {
- String page = "<!DOCTYPE HTML>";
- page += "<html>";
- page += "<head>";
- page += "<meta name = \"viewport\" content = \"width = device-width, initial-scale = 1.0 maximum-scale = 2.5, user-scalable=1\">";
- page += "<title>Luc's button demo</title>";
- page += "<body style='background-color:powderblue;'>";
- page += "</head>";
- page += "<body>";
- page += "<h1 style='color:red'>Luc's web-button for ESP8266</h1>";
- page += "<br>";
- page += "<br>";
- page += "<FORM action=\"/\" method=\"post\">";
- page += "<button type=\"submit\" name=\"button1ON\" id=\"button1ON\" value=\"but1ON\">Open</button>";
- page += "</form>";
- page += "<FORM action=\"/\" method=\"post\">";
- page += "<button type=\"submit\" name=\"button1OFF\" id=\"button1OFF\" value=\"but1OFF\">Close</button>";
- page += "</form>";
- page += "<FORM action=\"/\" method=\"post\">";
- page += "<button type=\"submit\" name=\"button3\" id=\"button3\" value=\"but3\">Open full</button>";
- page += "</form>";
- page += "<FORM action=\"/\" method=\"post\">";
- page += "<button type=\"submit\" name=\"button4\" id=\"button4\" value=\"but4\">Close full</button>";
- page += "</form>";
- page += "<br>";
- page += "<br>";
- return page;
- }
- // ==================================================
- // Handle for page not found
- // ==================================================
- void handleNotFound()
- {
- server.send(200, "text/html", getPage());
- }
- // ==================================================
- // Handle submit form
- // ==================================================
- void handleSubmit()
- {
- //Text to show
- if (server.hasArg("button1ON"))
- {
- buttonON = server.arg("button1ON");
- digitalWrite(pinForward, HIGH);
- int wait = sumDelay <= (maxDelay - step) ? step : (maxDelay - sumDelay);
- delay(wait);
- sumDelay += wait;
- digitalWrite(pinForward, LOW);
- }
- if (server.hasArg("button1OFF"))
- {
- buttonOFF = server.arg("button1OFF");
- digitalWrite(pinBackward, HIGH);
- int wait = sumDelay > step ? step : sumDelay;
- delay(wait);
- sumDelay -= wait;
- digitalWrite(pinBackward, LOW);
- }
- if (server.hasArg("button4"))
- {
- buttonOFF = server.arg("button4");
- calibrate();
- sumDelay = 0;
- }
- if (server.hasArg("button3"))
- {
- buttonOFF = server.arg("button3");
- digitalWrite(pinBackward, HIGH);
- int wait = maxDelay - sumDelay;
- delay(wait);
- sumDelay -= wait;
- digitalWrite(pinBackward, LOW);
- }
- server.send(200, "text/html", getPage()); //Response to the HTTP request
- }
- // ===================================================
- // Handle root
- // ===================================================
- void handleRoot()
- {
- if (server.args() )
- {
- handleSubmit();
- }
- else
- {
- server.send(200, "text/html", getPage());
- }
- }
- void calibrate() {
- while(digitalRead(D3)) {
- digitalWrite(pinForward, HIGH);
- delay(10);
- }
- digitalWrite(pinForward, LOW);
- }
- // ===================================================
- // Setup
- // ===================================================
- void setup()
- {
- pinMode(D6, OUTPUT);
- pinMode(D7, OUTPUT);
- digitalWrite(D6, LOW);
- digitalWrite(D7, LOW);
- delay(1000);
- Serial.begin(9600);
- pinMode(D3, INPUT_PULLUP);
- // Connect to Wi-Fi network with SSID and password
- Serial.print("Connecting to ");
- Serial.println(ssid);
- Serial.print(WiFi.begin(ssid,password));
- while (WiFi.status() != WL_CONNECTED)
- {
- delay(500);
- Serial.print(".");
- Serial.print(WiFi.status());
- }
- // Print local IP address and start web server
- Serial.println("");
- Serial.println("WiFi connected.");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- server.begin();
- server.on("/", handleRoot);
- server.onNotFound(handleNotFound);
- server.begin();
- delay(500);
- calibrate();
- }
- // ===================================================
- // Loop
- // ===================================================
- void loop()
- {
- server.handleClient();
- delay(50);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement