Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * This sketch demonstrates how to scan WiFi networks.
- * The API is almost the same as with the WiFi Shield library,
- * the most obvious difference being the different file you need to include:
- */
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- #include <ESP8266mDNS.h>
- const int ledPin = 13;
- const int relayPin = 0;
- const char* ssid = "....."; // fill in
- const char* password = "......"; // fill in
- const IPAddress ip(192,168,2,89);
- const IPAddress gateway(192,168,2,1);
- const IPAddress netmask(255,255,255,0);
- ESP8266WebServer server(80);
- String securityCode = "........"; // fill in
- String htmlPage = "";
- int counter = 0;
- int ledStatus = LOW;
- void initHTML()
- {
- htmlPage +=
- "<!DOCTYPE HTML>"
- "<html>"
- "<head>"
- "<title>Relay Control</title>"
- "<style>"
- "body { background-color: #006699; font-family: Tahoma, Geneva, sans-serif; Color: #000000; }"
- "</style>"
- "</head>"
- "<body>"
- "<h1>Relay Control</h1>"
- "<FORM action=\"/\" method=\"post\">"
- "<P>"
- "Enter Code: <INPUT type=\"text\" name=\"code\" value=\"\">"
- " <INPUT type=\"submit\" value=\"Press\">"
- "</P>"
- "</FORM>"
- "</body>"
- "</html>";
- // htmlPage += "<h1>Garage Opener</h1>";
- // htmlPage += "<p>Door Open <a href=\"open\"> <button>Open</button> </a> </p>";
- // htmlPage += "<p>Door Close <a href=\"close\"> <button>Close</button> </a> </p>";
- }
- void returnFailPage(String errorMsg)
- {
- server.sendHeader("Connection", "close");
- server.sendHeader("Access-Control-Allow-Origin", "*");
- server.send(500, "text/plain", errorMsg + "\r\n");
- }
- void handleSubmit()
- {
- String codeValue;
- if(!server.hasArg("code")) {
- Serial.println("no code value set");
- returnFailPage("no code value");
- return;
- }
- codeValue = server.arg("code");
- if(codeValue != securityCode) {
- Serial.println("codevalue incorrect");
- returnFailPage("code value");
- return;
- }
- handlePressButton();
- }
- void handleRootPage()
- {
- if(server.hasArg("code")) {
- handleSubmit();
- } else {
- server.send(200, "text/html", htmlPage);
- }
- }
- void handlePressButton()
- {
- Serial.println("close connection for 2 seconds...");
- digitalWrite(0, LOW);
- delay(2000);
- digitalWrite(0, HIGH);
- delay(500);
- server.send(200, "text/html", htmlPage);
- }
- void handleOpenPage()
- {
- Serial.println("open page...");
- server.send(200, "text/html", htmlPage);
- digitalWrite(0, LOW);
- delay(500);
- }
- void handleClosePage()
- {
- Serial.println("close page...");
- server.send(200, "text/html", htmlPage);
- digitalWrite(0, HIGH);
- delay(500);
- }
- void initServerRoutes()
- {
- server.on("/", handleRootPage);
- server.on("/open", handleOpenPage);
- server.on("/close", handleClosePage);
- }
- void setup() {
- Serial.begin(115200);
- pinMode(ledPin, OUTPUT);
- pinMode(relayPin, OUTPUT);
- digitalWrite(relayPin, HIGH);
- digitalWrite(relayPin, ledStatus);
- WiFi.mode(WIFI_STA);
- WiFi.config(ip, gateway, netmask);
- WiFi.begin(ssid, password);
- Serial.print("Connecting to HOTSPOT with IP address: ");
- Serial.println(ip);
- while(WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.print("Connected to ");
- Serial.println(ssid);
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
- initHTML();
- initServerRoutes();
- server.begin();
- Serial.println("Server has started...");
- }
- void loop() {
- server.handleClient();
- if(counter++ == 500000) {
- Serial.print("status = ");
- Serial.println(ledStatus);
- ledStatus = !ledStatus;
- digitalWrite(ledPin, ledStatus);
- counter = 0;
- }
- /*
- while(1) {
- // Serial.write(relayOn, sizeof(relayOn));
- digitalWrite(0, LOW);
- Serial.print("off");
- delay(3000);
- digitalWrite(0, HIGH);
- Serial.print("on");
- // Serial.write(relayOff, sizeof(relayOn));
- delay(3000);
- }
- */
- }
Add Comment
Please, Sign In to add comment