Hallo,
ich habe den unten angehängte Skript, welcher im Moment nicht mehr ist, als ein Webserver ein NTP-Client um die Uhrzeit zuerhalten und ein Timer, der zur bestimmten Zeit eine Funksteckdose anschaltet mit dem Befehl mySwitch.switchOn("00001", 2);.
Mein Problem ist nun, dass ich gerne auch auf der Webseite manuel schalten möchte, was aber nicht funktioniert. Ich habe dazu, dass Beispiel von Arduino als Webserver – Poldis Homepage versucht einzubinden bekomme es aber nicht hin kann mir einer weiterhelfen?
mein sketch ist Deinem insofern ähnlich, als auch er die webserver-library benutzt, vielleicht tust Du Dich da leichter. schaltet scheberegister, aber die zeilen in der ausführenden funktion kann man ja leicht ändern, zum testen.
vergiß den letzten satz, ich hab den sketch jetzt einmal so geändert, daß die beiden oberen buttons die led auf dem arduino ein- und ausschalten.
du brauchst dafür allerdings internet im netzwerk, weil ich mit jQuery arbeite, und wirklich gut sieht das nur auf auf einem mobilen gerät aus, aber vielleicht hilft's Dir...
Hallo,
es würde vielleicht das Projekt weiterbringen wenn Jemand mir helfen könnten folgenden Code in die oben angefügte TimeNTP...-Datei einzufügen. Bei mir stürzt der Arduino immer wieder ab
void loop()
{
EthernetClient client = server.available();
// detect if current is the first line
boolean current_line_is_first = true;
if (client) {
// an http request ends with a blank line
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if we've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so we can send a reply
if (c == '\n' && current_line_is_blank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// auto reload webpage every 5 second
client.println("<META HTTP-EQUIV=REFRESH CONTENT=5 URL=>");
// webpage title
client.println("<center><p><h1>Arduino + Ethernet Shield Application v1.0</h1></p><center><hr>
");
// button functions
client.println("<form method=get name=form>");
client.println("<button name=b value=1 type=submit style=height:80px;width:150px>LED On</button>");
client.println("<button name=b value=2 type=submit style=height:80px;width:150px>LED Off</button>");
client.println("<button name=b value=2 type=submit style=height:80px;width:150px>STeckdose1</button>");
client.println("</form>
");
// webpage footer
client.println("<hr><center><a href=http://www.robothead2toe.com.my>Robot.Head to Toe</a>
");
client.println("<p>P.S.: This page will automatically refresh every 5 seconds.</p></center>");
break;
}
if (c == '\n') {
// we're starting a new line
current_line_is_first = false;
current_line_is_blank = true;
}
else if (c != '\r') {
// we've gotten a character on the current line
current_line_is_blank = false;
}
// get the first http request
if (current_line_is_first && c == '=') {
for (int i = 0; i < 1; i++) {
c = client.read();
command[i] = c;
}
// LED control
if (!strcmp(command, "1")) {
mySwitch.switchOn("00001", 2);
}
else if (!strcmp(command, "2")) {
mySwitch.switchOff("00001", 2);
}
}
}
}
// give the web browser time to receive the data
delay(1);
client.stop();
}
}
hab' grad eine PM wegen des sketches bekommen, den ich hochgeladen habe.
leider habe ich vergessen, dazuzuschreiben, daß man im browser eingeben muß:
ip-adresse/rgb also etwa 192.168.2.153/rgb
sonst kommt ein EPIC FAIL
ich hab' noch eine PM wegen des sketches bekommen, in dem um eine erweiterung gebeten wurde. leider kann man mit PMs keine anlagen mitschicken, deswegen poste ich's hier.
eingabe wieder zB 192.168.2.153/rgb
es kommt dann vom arduino eine zahl, welchen button man geklickt hat, an den browser zurück, die per alert ausgegeben wird. sieht zwar nur auf einem mobilteil gut aus, aber dort wird kein alert ausgegeben, also bitte mit compu auf normalem browser probieren...
natürlich kann man zurückschicken was man will, sogar ganze seitenteile mit html und javascript.
alles wird dann ohne reload mit eingebunden.
gruß stefan