Ich habe folgendes Beispiel http://jleopold.de/wp-content/uploads/2010/10/Arduino_Webserver.txt von Seite http://goo.gl/jwtbD getestet, funktioniert tadellos. Nun wollte ich es testweise um einen zusätzliche Buttons erweitern, das funktionierte dann nicht mehr. Ich habe dazu den Code zwischen "client.println("<tr bgColor='#222222'>");" und "client.println("</tr>");" nach der if-else Abfrage dupliziert, angepasst und auch die Funktion oben "if(readString.indexOf("3=einschalten") > -1) {...." erweitert. Nichts geht und ich finde das Problem nicht. File hab ich mal in den Anhang gepackt Ich hab die Frage auch schon im dortigen Forum gestellt, warte aber noch auf die Zugangsdaten (ohne diese erscheint die Frage nicht im Forum), so das ich hier mal anfrage. Danke Ben
Hi, was bedeutet "nichts geht" ? Kompiliert der Code nicht und es kommt eine Fehlermeldung? Kompiliert der Code aber du kommst nicht auf die Webseite? Kompiliert der Code, du kommst auf dei Webseite aber die Schalter funktionieren nicht? Kompiliert der Code, du kommst auf die Webseite und alle Schalter bis auf den Schalter 5 funktionieren? Wenn der Code kompiliert, bekommst du Ausgaben über die Serielle Schnittstelle?
Ich komme nicht auf den Server und auch keine Ausgabe auf RS232. Wenn ich anderes Button-Paar (gemeint ist die Reihemit ein/aus Button) und deren Funktion auskommentiere, dann funktioniert auch mein Codeerweiterung. Button-Paar A,B,C. A+B ok, A+C ok, B+C ok, aber nicht A+B+C. Es funktioniert immer nur mit 2 Buttonpaaren, nicht mit 3,4,...
Meine Vermutung ist, das du nicht genug Speicher für die ganzen Strings hast. Versuch mal den Text zu kürzen, z.B. aus:
1 | client.println("<tr bgColor='#222222'>"); |
2 | |
3 | client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Ausgang 4<br></font></td>"); |
4 | |
5 | client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='einschalten'></form></td>"); |
6 | |
7 | client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='ausschalten'></form></td>"); |
1 | client.println("<tr>"); |
2 | |
3 | client.println("<td>Ausgang 4<br></td>"); |
4 | |
5 | client.println("<td align='center'><form method=get><input type=submit name=4 value='on'></form></td>"); |
6 | |
7 | client.println("<td align='center'><form method=get><input type=submit name=4 value='off'></form></td>"); |
zu machen und aus:
1 | if(readString.indexOf("4=ausschalten") |
1 | if(readString.indexOf("4=off") |
wenn du das konsequent machst, könnte das alles schon wieder funktionieren, danach kannst du ja gucken, wie du das html schön machst. Grundsätzlich könnte es Sinn machen den ganzen statischen Text mit Hilfe von http://arduiniana.org/libraries/flash/ im Flash zu speichern. und nur nebenbei hier ist noch ein kleiner Bug drin:
1 | if(readString.indexOf("all=Alles+aus") > -1){ |
2 | digitalWrite(Pin3, LOW); |
3 | digitalWrite(Pin4, LOW); |
4 | digitalWrite(Pin4, LOW); |
5 | Serial.println("Alles ausgeschaltet"); |
6 | Pin3ON = false; |
7 | Pin4ON = false; |
8 | Pin5ON = false; |
9 | }
|
du schaltest Pin4 2 mal aus, und dafür Pin5 gar nicht
Jo, jetzt gehts. Scheint doch der Speicher zu knapp zu sein. Leider sieht das Ganze jetzt nicht mehr so augenfreundlich aus wie das Beispiel. Danke für die Hilfe!
Wenn du irgendwo anders Platz hast (eigener Server, Webhoster, etc), dann würde ich die einzelnen tags nur mit CSS Klassen machen, und das style sheet auslagern. Dann kannst du das so schön machen, wie du willst und verbrauchst trotzdem kaum Platz auf dem Arduino. Ausserdem könntest du den HTML Code für die einzelnen Schalter in einer Schleife erstellen, dann bräuchtest du den ganzen Text nur einmal, und hast das Ganze gleich auf 1/5 reduziert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.