From 0beeb45846c4dbbaf6f30751735a1454fe5342ef Mon Sep 17 00:00:00 2001 From: Tilman Date: Sat, 5 Feb 2022 22:03:30 +0100 Subject: [PATCH] =?UTF-8?q?On=5FAir.ino=20-=20Steuerung=20f=C3=BCr=20Anton?= =?UTF-8?q?s=20"On=20Air"-Anzeige?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- D1 mini/On_Air/On_Air.ino | 95 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 D1 mini/On_Air/On_Air.ino diff --git a/D1 mini/On_Air/On_Air.ino b/D1 mini/On_Air/On_Air.ino new file mode 100644 index 0000000..b1e4fc6 --- /dev/null +++ b/D1 mini/On_Air/On_Air.ino @@ -0,0 +1,95 @@ +#include +#include + + +const int optocoupler = D7; +const char* ssid = "LeWe"; +const char* password = "5275274365464843"; + +ESP8266WebServer server(80); + +int lightStatus = 0; // 0 off, 1 pulse, 2 on + +//const int inputPin = D3; +//int val = 0; + + +void setup() { + Serial.begin(9600); + + pinMode(BUILTIN_LED, OUTPUT); // initialize onboard LED as output + digitalWrite(BUILTIN_LED, HIGH); + + pinMode(optocoupler, OUTPUT); + digitalWrite(optocoupler, LOW); + +// pinMode(inputPin, INPUT); + + // Connect WiFi + Serial.println(); + Serial.println(); + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.hostname("OnAir"); + WiFi.begin(ssid, password); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + server.on("/light", handle_OnConnect); + server.onNotFound(handle_NotFound); + + server.begin(); + Serial.println("HTTP server started"); +} + +void loop() { + server.handleClient(); + +/* + val = digitalRead(inputPin); + digitalWrite(BUILTIN_LED, val); +*/ +} + +void cycleStatus() { + digitalWrite(optocoupler, HIGH); + delay(250); + digitalWrite(optocoupler, LOW); + delay(50); + + if (lightStatus < 2) { + lightStatus++; + } + else { + lightStatus = 0; + } + + Serial.println("click"); +} + +void handle_OnConnect() { + if (server.hasArg("status")) { + + int targetStatus = server.arg("status").toInt(); + + if (targetStatus >= 0 && targetStatus <= 2) { + while (lightStatus != targetStatus) { + cycleStatus(); + } + } + } + else { + cycleStatus(); + } + + server.send(200, "text/plain", "status set to " + lightStatus); +} +void handle_NotFound(){ + server.send(404, "text/plain", "Not found"); +}