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 <ArduinoOTA.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#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();
}
}