Last active
December 16, 2022 01:39
-
-
Save auckenox/9b5c0f6349d4bbac23846d9787153496 to your computer and use it in GitHub Desktop.
wemos webserver for relays (digital out, switch D1,D2,D3,D4)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ESP8266WiFi.h> | |
#include <WiFiClient.h> | |
#include <ESP8266WebServer.h> | |
#include <ESP8266mDNS.h> | |
const char* ssid = "my_SSID"; | |
const char* password = "my_PASSWORD"; | |
/* | |
usage: | |
http://device_ip/schalten/k1/state | |
http://device_ip/schalten/k1/0 | |
http://device_ip/schalten/k1/1 | |
http://device_ip/schalten/k1/toggle | |
most of the code taken from a arduino example :) | |
its a quick and dirty solution, i know it would be very easy to optimize - ain't nobody got time for this. | |
*/ | |
ESP8266WebServer server(80); | |
char relais; | |
char state; | |
void handleRoot() { | |
server.send(200, "text/plain", "PST-BKZ-FL: ready"); | |
} | |
void handleNotFound(){ | |
String message = "File Not Found\n\n"; | |
message += "URI: "; | |
message += server.uri(); | |
message += "\nMethod: "; | |
message += (server.method() == HTTP_GET)?"GET":"POST"; | |
message += "\nArguments: "; | |
message += server.args(); | |
message += "\n"; | |
for (int i=0; i<server.args(); i++){ | |
message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; | |
} | |
server.send(404, "text/plain", message); | |
} | |
void schalten(int thePin, int to_state){ | |
Serial.println(""); | |
digitalWrite(thePin, to_state); | |
Serial.print(thePin); | |
Serial.print(" auf "); | |
Serial.print(to_state); | |
Serial.print(" schalten"); | |
Serial.println(""); | |
} | |
int check_status(int thePin){ | |
return digitalRead(thePin); | |
} | |
void setup(void){ | |
Serial.begin(115200); | |
WiFi.begin(ssid, password); | |
Serial.println(""); | |
pinMode(D1, OUTPUT); | |
pinMode(D2, OUTPUT); | |
pinMode(D3, OUTPUT); | |
pinMode(D4, OUTPUT); | |
Serial.print("OUTPUTS: D1,D2,D3,D4"); | |
// Wait for connection | |
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()); | |
if (MDNS.begin("esp8266")) { | |
Serial.println("MDNS responder started"); | |
} | |
server.on("/", handleRoot); | |
server.on("/inline", [](){ | |
server.send(200, "text/plain", "this works as well"); | |
}); | |
server.on("/schalten/k1/state", [](){ | |
if(check_status(D1)) {server.send(200, "text/plain", "1");} else {server.send(200, "text/plain", "0");} | |
}); | |
server.on("/schalten/k1/1", [](){ | |
schalten(D1, 1); | |
server.send(200, "text/plain", "schalte k1"); | |
}); | |
server.on("/schalten/k1/0", [](){ | |
schalten(D1, 0); | |
server.send(200, "text/plain", "schalte k1"); | |
}); | |
server.on("/schalten/k1/toggle", [](){ | |
if(check_status(D1)) {schalten(D1, 0);} else {schalten(D1, 1);} | |
server.send(200, "text/plain", "schalte k1"); | |
}); | |
server.on("/schalten/k2/state", [](){ | |
if(check_status(D2)) {server.send(200, "text/plain", "1");} else {server.send(200, "text/plain", "0");} | |
}); | |
server.on("/schalten/k2/1", [](){ | |
schalten(D2, 1); | |
server.send(200, "text/plain", "schalte k2"); | |
}); | |
server.on("/schalten/k2/0", [](){ | |
schalten(D2, 0); | |
server.send(200, "text/plain", "schalte k2"); | |
}); | |
server.on("/schalten/k2/toggle", [](){ | |
if(check_status(D2)) {schalten(D2, 0);} else {schalten(D2, 1);} | |
server.send(200, "text/plain", "schalte k2"); | |
}); | |
server.on("/schalten/k3/state", [](){ | |
if(check_status(D3)) {server.send(200, "text/plain", "1");} else {server.send(200, "text/plain", "0");} | |
}); | |
server.on("/schalten/k3/1", [](){ | |
schalten(D3, 1); | |
server.send(200, "text/plain", "schalte k3"); | |
}); | |
server.on("/schalten/k3/0", [](){ | |
schalten(D3, 0); | |
server.send(200, "text/plain", "schalte k3"); | |
}); | |
server.on("/schalten/k3/toggle", [](){ | |
if(check_status(D3)) {schalten(D3, 0);} else {schalten(D3, 1);} | |
server.send(200, "text/plain", "schalte k3"); | |
}); | |
server.on("/schalten/k4/state", [](){ | |
if(check_status(D4)) {server.send(200, "text/plain", "1");} else {server.send(200, "text/plain", "0");} | |
}); | |
server.on("/schalten/k4/1", [](){ | |
schalten(D4, 1); | |
server.send(200, "text/plain", "schalte k4"); | |
}); | |
server.on("/schalten/k4/0", [](){ | |
schalten(D4, 0); | |
server.send(200, "text/plain", "schalte k4"); | |
}); | |
server.on("/schalten/k4/toggle", [](){ | |
if(check_status(D4)) {schalten(D4, 0);} else {schalten(D4, 1);} | |
server.send(200, "text/plain", "schalte k4"); | |
}); | |
server.onNotFound(handleNotFound); | |
server.begin(); | |
Serial.println("HTTP server started"); | |
} | |
void loop(void){ | |
server.handleClient(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment