Hallo piggituX,
vielen Dank für die schnelle Reaktion.
... Verdammt... das ist die verkehrte Version. Die mit dem eingebundnen Taster habe ich vermutlich überschrieben!
Aber der Sinn sollte doch noch aus dem Script zu erkennen sein?
Code:// Einstellung Arduino Software //siehe "NodeMCU-Boardeinstellung.jpg" //zusätzliche BoarVerwalter-URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json // Boot- Bereich - Variablen deklarieren #include <ESP8266WiFi.h> // Parameter Festlegungen Zgänge für Netzwerk WiFiServer server(80); // Webserver auf Port 80 String header; // Eine Variable um den HTTP Request zu speichern const char* ssid = "xxxxxxx"; //SSID eintragen const char* password = "xxxxxxx"; //Passwort eintragen String OutputState = "AUS"; // Status "EIN"/"AUS" des Relais (Anzeige für WebSite) // IOs deklarieren #define AusZeit 60000; // 60 s (60000ms) Zeit für Timer long AutoAus; // Automatische AusZeit bool Taster = 0; // Variable für (Taster) bool Relais = 0; // Variable für (Relais) //████████████████████████████ SETUP ████████████████████████████ void setup() { pinMode(5, INPUT_PULLUP); // PIN5 (Taster) mit PullUp //pinMode(LED_BUILTIN, OUTPUT); // internet Board-LED //digitalWrite(LED_BUILTIN, LOW); pinMode(12, OUTPUT); // PIN12 (Relais) digitalWrite(12, LOW); // PIN12 auf AUS // Initialisierung und Einwahl ins Netzwerk WiFi.setAutoConnect(false); WiFi.mode(WIFI_STA); // AP-Mode (IP:4.1) im ESP abzuschalten Serial.begin(9600); Serial.println("Starten"); delay(10); IPAddress ip(xxx, xxx, xxx, xxx); // IP-Adresse eintragen IPAddress dns(xxx, xxx, xxx, xxx); //DNS-Server eintragen IPAddress gateway(xxx, xxx, xxx, xxx); //Gateway eintragen IPAddress subnet(255, 255, 255, 0); //SubNetMask eintragen WiFi.config(ip, dns, gateway, subnet); WiFi.begin(ssid, password); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WLAN verbunden."); Serial.println("IP Adresse: "); Serial.println(WiFi.localIP()); server.begin(); } //████████████████████████████ LOOP ████████████████████████████ void loop() { // Webseiten-Zeugs WiFiClient client = server.available(); // Hört auf Anfragen von Clients if (client) { // Falls sich ein neuer Client verbindet, Serial.println("Neuer Client."); // Ausgabe auf den seriellen Monitor String currentLine = ""; // erstelle einen String mit den eingehenden Daten vom Client while (client.connected()) { // wiederholen so lange der Client verbunden ist if (client.available()) { // Fall ein Byte zum lesen da ist, char c = client.read(); // lese das Byte, und dann // Serial.write(c); // gebe es auf dem seriellen Monitor aus header += c; if (c == '\n') { // wenn das Byte eine Neue-Zeile Char ist // wenn die aktuelle Zeile leer ist, kamen 2 in folge. // dies ist das Ende der HTTP-Anfrage vom Client, also senden wir eine Antwort: if (currentLine.length() == 0) // Hier wird die HTML Seite angezeigt: { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection: close"); client.println(); client.println("<!DOCTYPE html><html>"); // client.println("<meta http-equiv=\"refresh\" content=\"10; URL=http://xxx.xxx.xxx.xxx\">"); client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); client.println("<link rel=\"icon\" href=\"data:,\">"); // Es folgen der CSS-Code um die Ein/Aus Buttons zu gestalten // Hier Hintergrundfarge (background-color) und Schriftgröße (font-size) anpassen client.println("<style>html { font-family: Verdana; display: inline-block; margin: 0px auto; text-align: center;}"); client.println(".button { background-color: #888899; border: 3; color: black; padding: 50px 50px;"); client.println("text-decoration: none; font-size: 35px; margin: 4px; cursor: pointer;}"); client.println(".button2 {background-color: #00FF00;}</style></head>"); // Webseiten-Überschrift client.println("<body><u><h2>SiSi Server-Schalter</h2></u>"); // WebSite aktueller Relais Status, und AN/AUS Button client.println("<p><h1>Momentaner Status " + OutputState + "</p></h1>"); // ◄◄◄◄ if (OutputState == "AUS") { client.println("<p><a href=\"/5/on\"><button class=\"button\">EIN</button></a></p>"); } else { client.println("<p><a href=\"/5/off\"><button class=\"button button2\">AUS</button></a></p>"); } client.println("</body></html>"); client.println(); break; // und wir verlassen mit einem break die Schleife } else { // falls eine neue Zeile kommt, lösche die aktuelle Zeile currentLine = ""; } } else if (c != '\r') { // wenn etwas kommt was kein Zeilenumbruch ist, currentLine += c; // füge es am Ende von currentLine an } } } // Relais ein- oder ausgeschaltet usw. LokalTaster: /* pinMode(1, INPUT); >> Setzt den Digital-Pin 1 als Eingang pinMode(1, INPUT_PULLUP); >> setzt Pin1 als Eingang und aktiviert Pullup digitalWrite(LED, HIGH; >> LED nach +UB leuchtet nicht >> LED nach GND leuchtet digitalWrite(LED, LOW); >> LED nach +UB leuchtet >> LED nach GND leuchtet nicht */ // Variablen initialisieren/ verarbeiten if (digitalRead(5) == LOW) { Taster == 1; } else { Taster == 0; }; //Var Taster (PIN5) if (Relais == 1) { digitalWrite(12, HIGH); } else { digitalWrite(12, LOW); }; //Var Relais (PIN12) //Relais automatisch abschalten, wenn Zeit "AutoAus" abgelaufen ist if (Taster == 1 || Relais == 1) { OutputState = "EIN"; Serial.println("Relais EIN 133"); Relais == 1; } if (millis() > (AutoAus)) // Wenn AusZeit abgelaufen ist, { OutputState = "AUS"; Relais == 1; } if (Relais == 0) { AutoAus = millis() + AusZeit; OutputState = "AUS"; Serial.println("Relais AUS 147"); } if (header.indexOf("GET /5/on") >= 0) { Serial.println("Relais AN 152"); OutputState = "EIN"; Relais == 1; } else if (header.indexOf("GET /5/off") >= 0) { Serial.println("Relais AUS 158"); OutputState = "AUS"; Relais == 0; } // Debugger /* Serial.print("millis() "); Serial.println(millis()); Serial.print("AutoAus "); Serial.println(AutoAus); Serial.print("OutputState "); Serial.println(OutputState); Serial.print("Var.Taster "); Serial.println(Taster); Serial.print("Var.Relais "); Serial.println(Relais); */ // Die Header-Variable für den nächsten Durchlauf löschen header = ""; // Die Verbindung schließen client.stop(); Serial.println("Client getrennt."); Serial.println(""); } }







Zitieren

Lesezeichen