#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x54, 0x55, 0x58, 0x10, 0x00, 0x24 }; // entspricht einer MAC von 84.85.88.16.0.36
byte ip[] = { 192, 168, 178, 222 }; // IP-Adresse
byte gateway[] = { 192, 168, 178, 1 }; // Gateway
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server = EthernetServer(80);
int LedPin = 5;
int ButtonPin=7;
int counter=0;
int tasterWert=0;
int vorherTasterWert=0;
String readString = String(100); // string for fetching data from address
boolean LedPinON = false; // Status flag
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(LedPin, OUTPUT);
pinMode(ButtonPin,INPUT);
Serial.begin(9600);
}
void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
// readString.append(c); removed by Katsu
readString = readString + c; // insert by Katsu
// very simple but it works...
}
Serial.print(c); //output chars to serial port
if (c == '\n') { //if HTTP request has ended
if(readString.indexOf("?3=einschalten") > -1) {
digitalWrite(LedPin, HIGH);
Serial.println("LED eingeschaltet! >>WEB");
LedPinON = true;
}
if(readString.indexOf("?3=ausschalten") > -1){
digitalWrite(LedPin, LOW);
Serial.println("LED ausgeschaltet! >>WEB");
LedPinON = false;
}
if(readString.indexOf("all=Alles+aus") > -1){
digitalWrite(LedPin, LOW);
Serial.println("Alles ausgeschaltet");
LedPinON = false;
}
tasterWert= digitalRead(ButtonPin);
if (vorherTasterWert != tasterWert)
{
if(tasterWert==HIGH){
counter++;
}
}
vorherTasterWert=tasterWert;
Serial.print("tasterWert=");
Serial.println(tasterWert);
Serial.print("vorherTasterWert=");
Serial.println(vorherTasterWert);
Serial.print("counter=");
Serial.println(counter);
//--------------------------HTML------------------------
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("");
client.print("Beleuchtung Ein/Aus-Schalten");
client.println("");
client.print("");
client.println("
");
client.println("
Beleuchtung Ein/Aus-Schalten
");
client.println("
");
client.println("
Ausgänge schalten:
");
client.println("
");
client.println("
");client.println("
");client.println("
");client.println("
");client.println("
");if (counter%2 ==0){
digitalWrite(LedPin,HIGH);
Serial.println("Taster betaetigt, LED eingeschaltet!");
LedPinON=true;
}
else
{
digitalWrite(LedPin,LOW);
Serial.println("Taster betaetigt, LED ausgeschaltet!");
LedPinON=false;
}
if (LedPinON){
client.println("
");
client.println("
Ausgang 3
|
|
|
EIN");
}
if (!LedPinON){
client.println(" | AUS");
}
client.println(" |
");
client.println("
");
client.println("");
client.println("");
//---Ausgänge schalten---
//clearing string for next read
readString="";
//stopping client
client.stop();
}}}}}
Wenn ich den Network krempel rausschmeiße schaltet der Taster. Ich bin ratlos....