Add Web server interface

This commit is contained in:
x 2024-06-20 22:24:21 +02:00
parent 24fd856584
commit 9ebca3698d

View file

@ -1,6 +1,7 @@
#include <Arduino.h> #include <Arduino.h>
#include <ArduinoOTA.h> #include <ArduinoOTA.h>
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define RELAY 4 // GPIO4 #define RELAY 4 // GPIO4
#define WIFI_NAME "TechInc" #define WIFI_NAME "TechInc"
@ -8,6 +9,10 @@
#define HTTP_HOST "google.com" #define HTTP_HOST "google.com"
#define HTTP_PORT (80) #define HTTP_PORT (80)
ESP8266WebServer server(80);
String header;
boolean automatic = true;
// ----- // // ----- //
// Setup // // Setup //
// ----- // // ----- //
@ -49,6 +54,30 @@ void setupOTA()
ArduinoOTA.begin(); 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() void setup()
{ {
Serial.begin(9600); Serial.begin(9600);
@ -59,6 +88,7 @@ void setup()
relayOff(); relayOff();
ensureWiFiConnection(); ensureWiFiConnection();
setupOTA(); setupOTA();
webSetup();
} }
// ----- // // ----- //
@ -68,14 +98,14 @@ void setup()
void relayOn() void relayOn()
{ {
Serial.println("Lights on"); Serial.println("Lights on");
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, LOW);
digitalWrite(RELAY, HIGH); digitalWrite(RELAY, HIGH);
} }
void relayOff() void relayOff()
{ {
Serial.println("Lights off"); Serial.println("Lights off");
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(RELAY, LOW); digitalWrite(RELAY, LOW);
} }
@ -118,6 +148,7 @@ bool pingHTTP()
void testInternet() void testInternet()
{ {
if(!automatic) return;
if(pingHTTP()) { if(pingHTTP()) {
Serial.println("Internet is up"); Serial.println("Internet is up");
relayOn(); relayOn();
@ -134,5 +165,6 @@ void loop()
for(size_t i = 0; i < 5; i++) { for(size_t i = 0; i < 5; i++) {
ArduinoOTA.handle(); ArduinoOTA.handle();
delay(1000); delay(1000);
server.handleClient();
} }
} }