Button auf Webseite soll digitalen Port schalten. Hilfe

Hallo Tobi,

ich habe mal das Beispiel auf deine Webpage angepasst. Ich schätze, dass du es so für dich ändern kannst.

Gruß Gerd

#include <SPI.h>
#include <Ethernet.h>
byte MACAddress[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MACAdresse
byte IPAddress[] = {192, 168, 178, 59};                    // IP-Adresse
int const HTTPPORT = 80;                                  // HTTP-Port 80 (Standardport)

#define HTML_BOTTOM "</body>\n</html>"
String readString = String(30);
boolean TUERON = false;
int TuerPin = 4;  // Tür pin
EthernetServer myServer(HTTPPORT); // Web-Server auf angegebenen Port starten

void setup(){
  Ethernet.begin(MACAddress, IPAddress); // Ethernet initialisieren
  pinMode(TuerPin, OUTPUT);
  myServer.begin(); // Server starten
}

void loop(){
  EthernetClient myClient = myServer.available();
  if (myClient) {
    while (myClient.connected()) {
   if (myClient.available()) {
    char c = myClient.read();
    if (readString.length() < 100) 
      {         
        readString += c; 
      }            
        Serial.print(c);
         
        if (c == '\n') {

          if (readString.indexOf("?") <0)
          {

          }
          else
          
        if(readString.indexOf("T=1") >0) 
           {
             //Türöffner ON
             digitalWrite(TuerPin, HIGH);    //Tür auf
             TUERON = true;
           }
           else{
             //Tüeröffner  OFF
             digitalWrite(TuerPin, LOW);    //Tür zu
             TUERON = false;             
           }
          myClient.println("HTTP/1.1 200 OK");
          myClient.println("Content-Type: text/html");
          myClient.println();               
          myClient.print("<body style=background-color:white>");
          myClient.println("<font color='red'><h1>Tuerschloss Web-Server</font></h1>");
          //alle 30sec wird ein automatischer Refresh gemacht
          myClient.println("<meta http-equiv='refresh' content='30'>");
          myClient.println("<hr />");
          myClient.println("<hr />");
            
  for(int i = 0; i < 6; i++){
    myClient.print("Analog Pin ");
    myClient.print(i);
    myClient.print(": ");
    myClient.print(analogRead(i));
    myClient.print("<div style=\"height: 40px; background-color: #FFB90F");
    myClient.print("; width:");
    myClient.print(analogRead(i));
    myClient.println("px; border: 1px solid;\"></div>");
  }
  
    for(int i = 2; i < 6; i++){
    myClient.print("Digital Pin ");
    myClient.print(i);
    myClient.print(": ");
    myClient.print(digitalRead(i));
    myClient.print("<div style=\"height: 40px; background-color: #ff00ff");
    myClient.print("; width:");
    myClient.print(digitalRead(i)*100);
    myClient.println("px; border: 1px solid;\"></div>");
    
  }

  delay(1); // Kurze Pause für Web-Browser
  
          myClient.print("<hr />");         
          if (TUERON)
  myClient.print("<form method=get name=TUER><input type=checkbox name=T value=1 CHECKED>Tueroeffner
<input type=submit value=submit></form>");
          else
  myClient.print("<form method=get name=TUER><input type=checkbox name=T value=1>Tueroeffner
<input type=submit value=submit></form>");      
                 myClient.print("
");     
                   myClient.print("<font size='5'>TUER  ");
          if (TUERON)
              myClient.print("<font color='blue' size='5'>ist AUF"); 
          else
              myClient.print("<font color='red' size='5'>ist ZU"); 
              readString="";
  TUERON = false; //Zusatz, sonst ist Schalten im Firefox nicht möglich !
  myClient.stop(); // Client-Verbindung schließen
  
        }
       }
    }
  }
}

Habe noch einen Nachtrag gemacht - alle 30 sec werden automatisch die Werte angepasst.