Skip to content

Instantly share code, notes, and snippets.

@auckenox
Last active December 16, 2022 01:39
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save auckenox/9b5c0f6349d4bbac23846d9787153496 to your computer and use it in GitHub Desktop.
Save auckenox/9b5c0f6349d4bbac23846d9787153496 to your computer and use it in GitHub Desktop.
wemos webserver for relays (digital out, switch D1,D2,D3,D4)
#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