Advertisement
Mattykurlzz

Untitled

Apr 7th, 2025 (edited)
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.03 KB | None | 0 0
  1.  // ======================================================
  2. // Webserver program that sends button information
  3. // to ESP8266 and puts a control led on the page
  4. // ======================================================
  5.  
  6. #include <ESP8266WiFi.h>
  7. #include <ESP8266WebServer.h>
  8.  
  9. ESP8266WebServer server(80);
  10.  
  11. // Your routers credentials
  12. const char* ssid = "Mi PhoneR";
  13. const char* password = "12345678";
  14.  
  15. // ==========================================
  16. // initial variables
  17. // ==========================================
  18.  
  19. String buttonON;
  20. String buttonOFF;
  21.  
  22. int sumDelay = 0;
  23.  
  24. #define pinForward D6
  25. #define pinBackward D7
  26.  
  27. #define maxDelay  10000
  28. #define step      1000
  29.  
  30. void calibrate();
  31.  
  32.  
  33. // =========================================
  34. // Here is the HTML page
  35. // =========================================
  36. String getPage()
  37.   {
  38.   String page = "<!DOCTYPE HTML>";
  39.   page += "<html>";
  40.   page += "<head>";
  41.   page += "<meta name = \"viewport\" content = \"width = device-width, initial-scale = 1.0 maximum-scale = 2.5, user-scalable=1\">";
  42.   page += "<title>Luc's button demo</title>";
  43.   page += "<body style='background-color:powderblue;'>";
  44.   page += "</head>";
  45.   page += "<body>";
  46.  
  47.   page += "<h1 style='color:red'>Luc's web-button for ESP8266</h1>";
  48.   page += "<br>";
  49.   page += "<br>";
  50.  
  51.   page += "<FORM action=\"/\" method=\"post\">";
  52.   page += "<button type=\"submit\" name=\"button1ON\" id=\"button1ON\" value=\"but1ON\">Open</button>";
  53.   page += "</form>";
  54.  
  55.   page += "<FORM action=\"/\" method=\"post\">";
  56.   page += "<button type=\"submit\" name=\"button1OFF\" id=\"button1OFF\" value=\"but1OFF\">Close</button>";
  57.   page += "</form>";
  58.  
  59.   page += "<FORM action=\"/\" method=\"post\">";
  60.   page += "<button type=\"submit\" name=\"button3\" id=\"button3\" value=\"but3\">Open full</button>";
  61.   page += "</form>";
  62.  
  63.   page += "<FORM action=\"/\" method=\"post\">";
  64.   page += "<button type=\"submit\" name=\"button4\" id=\"button4\" value=\"but4\">Close full</button>";
  65.   page += "</form>";
  66.  
  67.   page += "<br>";
  68.   page += "<br>";
  69.  
  70.   return page;
  71.   }
  72.  
  73.  
  74. // ==================================================
  75. // Handle for page not found
  76. // ==================================================
  77. void handleNotFound()
  78. {
  79.   server.send(200, "text/html", getPage());
  80. }
  81.  
  82.  
  83. // ==================================================
  84. // Handle submit form
  85. // ==================================================
  86. void handleSubmit()
  87. {
  88.   //Text to show
  89.    
  90.    if (server.hasArg("button1ON"))
  91.       {
  92.       buttonON = server.arg("button1ON");
  93.       digitalWrite(pinForward, HIGH);
  94.       int wait = sumDelay <= (maxDelay - step) ? step : (maxDelay - sumDelay);
  95.       delay(wait);
  96.       sumDelay += wait;
  97.       digitalWrite(pinForward, LOW);
  98.       }
  99.  
  100.    if (server.hasArg("button1OFF"))
  101.       {
  102.       buttonOFF = server.arg("button1OFF");
  103.       digitalWrite(pinBackward, HIGH);
  104.       int wait = sumDelay > step ? step : sumDelay;
  105.       delay(wait);
  106.       sumDelay -= wait;
  107.       digitalWrite(pinBackward, LOW);
  108.       }  
  109.  
  110.   if (server.hasArg("button4"))
  111.       {
  112.       buttonOFF = server.arg("button4");
  113.       calibrate();
  114.       sumDelay = 0;
  115.       }  
  116.  
  117.   if (server.hasArg("button3"))
  118.       {
  119.       buttonOFF = server.arg("button3");
  120.       digitalWrite(pinBackward, HIGH);
  121.       int wait = maxDelay - sumDelay;
  122.       delay(wait);
  123.       sumDelay -= wait;
  124.       digitalWrite(pinBackward, LOW);
  125.       }      
  126.      
  127.   server.send(200, "text/html", getPage());       //Response to the HTTP request
  128.  
  129. }  
  130.  
  131.  
  132. // ===================================================
  133. // Handle root
  134. // ===================================================
  135. void handleRoot()
  136. {  
  137.   if (server.args() )
  138.     {
  139.     handleSubmit();
  140.     }
  141.   else
  142.     {
  143.     server.send(200, "text/html", getPage());  
  144.     }
  145. }
  146.  
  147. void calibrate() {
  148.   while(digitalRead(D3)) {
  149.     digitalWrite(pinForward, HIGH);
  150.     delay(10);
  151.   }
  152.     digitalWrite(pinForward, LOW);
  153. }
  154.  
  155.  
  156. // ===================================================
  157. // Setup
  158. // ===================================================
  159. void setup()
  160. {
  161.   pinMode(D6, OUTPUT);
  162.   pinMode(D7, OUTPUT);
  163.   digitalWrite(D6, LOW);
  164.   digitalWrite(D7, LOW);
  165.  
  166.   delay(1000);
  167.   Serial.begin(9600);
  168.  
  169.   pinMode(D3, INPUT_PULLUP);
  170.  
  171.   // Connect to Wi-Fi network with SSID and password
  172.   Serial.print("Connecting to ");
  173.   Serial.println(ssid);
  174.   Serial.print(WiFi.begin(ssid,password));
  175.   while (WiFi.status() != WL_CONNECTED)
  176.   {
  177.     delay(500);
  178.     Serial.print(".");
  179.     Serial.print(WiFi.status());
  180.   }
  181.   // Print local IP address and start web server
  182.   Serial.println("");
  183.   Serial.println("WiFi connected.");
  184.   Serial.println("IP address: ");
  185.   Serial.println(WiFi.localIP());
  186.   server.begin();
  187.   server.on("/", handleRoot);
  188.   server.onNotFound(handleNotFound);
  189.  
  190.   server.begin();
  191.   delay(500);
  192.   calibrate();
  193. }
  194.  
  195.  
  196. // ===================================================
  197. // Loop
  198. // ===================================================
  199. void loop()
  200. {  
  201.   server.handleClient();
  202.   delay(50);
  203. }
  204.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement