diff --git a/src/main.cpp b/src/main.cpp index 442cd35..1556283 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #define RELAY 4 // GPIO4 #define WIFI_NAME "TechInc" @@ -8,6 +9,10 @@ #define HTTP_HOST "google.com" #define HTTP_PORT (80) +ESP8266WebServer server(80); +String header; +boolean automatic = true; + // ----- // // Setup // // ----- // @@ -49,6 +54,30 @@ void setupOTA() ArduinoOTA.begin(); } +void webSetup() { + server.on("/", []() { + server.send(200, "text/plain", "Welcome to the Internet.\n\nAndroidOTA is working, on default port 8266\n\nWeb stuff\n-----------\n/auto turns it into automatic mode (determined by Internet)\n/off turns it off\n/on turns it on"); + }); + server.on("/on", []() { + server.send(200, "text/plain", "lights on"); + automatic = false; + relayOn(); + }); + + server.on("/off", []() { + server.send(200, "text/plain", "lights off"); + automatic = false; + relayOff(); + }); + + server.on("/auto", []() { + server.send(200, "text/plain", "automatic mode"); + automatic = true; + }); + + server.begin(); +} + void setup() { Serial.begin(9600); @@ -59,6 +88,7 @@ void setup() relayOff(); ensureWiFiConnection(); setupOTA(); + webSetup(); } // ----- // @@ -68,14 +98,14 @@ void setup() void relayOn() { Serial.println("Lights on"); - digitalWrite(LED_BUILTIN, HIGH); + digitalWrite(LED_BUILTIN, LOW); digitalWrite(RELAY, HIGH); } void relayOff() { Serial.println("Lights off"); - digitalWrite(LED_BUILTIN, LOW); + digitalWrite(LED_BUILTIN, HIGH); digitalWrite(RELAY, LOW); } @@ -118,6 +148,7 @@ bool pingHTTP() void testInternet() { + if(!automatic) return; if(pingHTTP()) { Serial.println("Internet is up"); relayOn(); @@ -134,5 +165,6 @@ void loop() for(size_t i = 0; i < 5; i++) { ArduinoOTA.handle(); delay(1000); + server.handleClient(); } }