Guest User

Untitled

a guest
Jan 23rd, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. /*
  2. * This sketch demonstrates how to scan WiFi networks.
  3. * The API is almost the same as with the WiFi Shield library,
  4. * the most obvious difference being the different file you need to include:
  5. */
  6. #include <ESP8266WiFi.h>
  7. #include <WiFiClient.h>
  8. #include <ESP8266WebServer.h>
  9. #include <ESP8266mDNS.h>
  10.  
  11. const int ledPin = 13;
  12. const int relayPin = 0;
  13.  
  14. const char* ssid = "....."; // fill in
  15. const char* password = "......"; // fill in
  16.  
  17. const IPAddress ip(192,168,2,89);
  18. const IPAddress gateway(192,168,2,1);
  19. const IPAddress netmask(255,255,255,0);
  20.  
  21. ESP8266WebServer server(80);
  22.  
  23. String securityCode = "........"; // fill in
  24. String htmlPage = "";
  25.  
  26. int counter = 0;
  27. int ledStatus = LOW;
  28.  
  29.  
  30. void initHTML()
  31. {
  32. htmlPage +=
  33. "<!DOCTYPE HTML>"
  34. "<html>"
  35. "<head>"
  36. "<title>Relay Control</title>"
  37. "<style>"
  38. "body { background-color: #006699; font-family: Tahoma, Geneva, sans-serif; Color: #000000; }"
  39. "</style>"
  40. "</head>"
  41. "<body>"
  42. "<h1>Relay Control</h1>"
  43. "<FORM action=\"/\" method=\"post\">"
  44. "<P>"
  45. "Enter Code: <INPUT type=\"text\" name=\"code\" value=\"\">"
  46. "&nbsp; <INPUT type=\"submit\" value=\"Press\">"
  47. "</P>"
  48. "</FORM>"
  49. "</body>"
  50. "</html>";
  51.  
  52. // htmlPage += "<h1>Garage Opener</h1>";
  53. // htmlPage += "<p>Door Open <a href=\"open\"> <button>Open</button> </a> </p>";
  54. // htmlPage += "<p>Door Close <a href=\"close\"> <button>Close</button> </a> </p>";
  55.  
  56. }
  57.  
  58. void returnFailPage(String errorMsg)
  59. {
  60. server.sendHeader("Connection", "close");
  61. server.sendHeader("Access-Control-Allow-Origin", "*");
  62. server.send(500, "text/plain", errorMsg + "\r\n");
  63. }
  64.  
  65. void handleSubmit()
  66. {
  67. String codeValue;
  68.  
  69. if(!server.hasArg("code")) {
  70. Serial.println("no code value set");
  71. returnFailPage("no code value");
  72. return;
  73. }
  74.  
  75. codeValue = server.arg("code");
  76.  
  77. if(codeValue != securityCode) {
  78. Serial.println("codevalue incorrect");
  79. returnFailPage("code value");
  80. return;
  81. }
  82.  
  83. handlePressButton();
  84. }
  85.  
  86. void handleRootPage()
  87. {
  88. if(server.hasArg("code")) {
  89. handleSubmit();
  90. } else {
  91. server.send(200, "text/html", htmlPage);
  92. }
  93. }
  94.  
  95. void handlePressButton()
  96. {
  97. Serial.println("close connection for 2 seconds...");
  98. digitalWrite(0, LOW);
  99. delay(2000);
  100. digitalWrite(0, HIGH);
  101. delay(500);
  102. server.send(200, "text/html", htmlPage);
  103.  
  104. }
  105.  
  106. void handleOpenPage()
  107. {
  108. Serial.println("open page...");
  109. server.send(200, "text/html", htmlPage);
  110. digitalWrite(0, LOW);
  111. delay(500);
  112. }
  113.  
  114. void handleClosePage()
  115. {
  116. Serial.println("close page...");
  117. server.send(200, "text/html", htmlPage);
  118. digitalWrite(0, HIGH);
  119. delay(500);
  120. }
  121.  
  122. void initServerRoutes()
  123. {
  124. server.on("/", handleRootPage);
  125. server.on("/open", handleOpenPage);
  126. server.on("/close", handleClosePage);
  127.  
  128. }
  129.  
  130. void setup() {
  131. Serial.begin(115200);
  132. pinMode(ledPin, OUTPUT);
  133. pinMode(relayPin, OUTPUT);
  134. digitalWrite(relayPin, HIGH);
  135. digitalWrite(relayPin, ledStatus);
  136.  
  137.  
  138. WiFi.mode(WIFI_STA);
  139. WiFi.config(ip, gateway, netmask);
  140. WiFi.begin(ssid, password);
  141.  
  142. Serial.print("Connecting to HOTSPOT with IP address: ");
  143. Serial.println(ip);
  144.  
  145. while(WiFi.status() != WL_CONNECTED) {
  146. delay(500);
  147. Serial.print(".");
  148. }
  149.  
  150. Serial.println("");
  151. Serial.print("Connected to ");
  152. Serial.println(ssid);
  153. Serial.print("IP address: ");
  154. Serial.println(WiFi.localIP());
  155.  
  156. initHTML();
  157.  
  158. initServerRoutes();
  159.  
  160. server.begin();
  161. Serial.println("Server has started...");
  162.  
  163. }
  164.  
  165. void loop() {
  166.  
  167. server.handleClient();
  168.  
  169. if(counter++ == 500000) {
  170. Serial.print("status = ");
  171. Serial.println(ledStatus);
  172. ledStatus = !ledStatus;
  173. digitalWrite(ledPin, ledStatus);
  174. counter = 0;
  175. }
  176.  
  177.  
  178.  
  179.  
  180. /*
  181.  
  182. while(1) {
  183.  
  184. // Serial.write(relayOn, sizeof(relayOn));
  185. digitalWrite(0, LOW);
  186. Serial.print("off");
  187. delay(3000);
  188. digitalWrite(0, HIGH);
  189. Serial.print("on");
  190. // Serial.write(relayOff, sizeof(relayOn));
  191. delay(3000);
  192.  
  193. }
  194.  
  195. */
  196.  
  197. }
Add Comment
Please, Sign In to add comment