Hallo Leut´s
Ich will über mein Arduino Ethernet Ausgang über´s Web und Manuellen Steuern.
Bis jetzt kann ich sie nur Über das Web Steuern bei dem Manuellen hängt es grade...
Zu zwar will ich das wenn der Ausgang 4 Hight und Eingang 7 Low ist soll nichts passieren.
Ist 4 und 7 High soll Ausgang 4 Low werden.
Ist 4 Low und Eingang 7 High soll Ausgang 4 High werden.
Mein Code bisher:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(169,254,171, 222);
EthernetServer server(80);
String readString = String(100);
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
pinMode(4, OUTPUT);
pinMode(7, INPUT);
}
void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100)
{
readString += c;
}
Serial.print(c);
if (c == '\n') {
if (readString.indexOf("?") <0)
{
}
else
if(readString.indexOf("T=1") >0)
{
//LED ON
digitalWrite(4, HIGH); //Tür auf
}
else{
//LED OFF
digitalWrite(4, LOW); //Tür zu
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<body style=background-color:white>");
delay(1); // Kurze Pause für Web-Browser
if (digitalRead(4) == 1)
client.print("<form method=get name=LED><input type=checkbox name=T value=1 CHECKED>Tueroeffner
<input type=submit value=submit></form>");
else
client.print("<form method=get name=LED><input type=checkbox name=T value=1>Tueroeffner
<input type=submit value=submit></form>");
client.print("
");
client.print("<font size='5'>LED ");
if (digitalRead(4) == 1)
client.print("<font color='blue' size='5'>ist AUF");
else
client.print("<font color='red' size='5'>ist ZU");
readString="";
client.stop(); // Client-Verbindung schließen
}
}
}
}
}
Ich glaub mein Fehler liegt darin das readString.indexOf("T=1") 1 ist oder 0 nicht über ein if oder der gleichen ändern kann.
Kann man vlt eine Funktion erstellen writeString.indexOf ("T=1")?
Oder muss ich an die Sache ganz andern ran gehen?
Ich hoffe ihr könnt mir helfen
MFG nAte