Funktion per Webinterface ausführen

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?

Gruß Samot

TimeNTPwithRCExamples_webserver.ino (6.44 KB)

hi,

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...

gruß stefan

Hi Stefan, doofe Frage, wo finde ich den deinen Sketch? Hochladen vergessen?

hi,

ist gar keine so dumme frage, sorry´.

noch ein gruß, noch ein stefan

steuerung_test13.ino (4.17 KB)

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();
  }
}

hi,

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

sorry und gruß stefan

hi,

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

ajax2.zip (1.95 KB)