Forum: Mikrocontroller und Digitale Elektronik Arduino Etherner Shield - Daten aus HTML-Formular auslesen


von Andreas A. (andyah)


Lesenswert?

Hi NG,

ich möchte die Einstellung eines Schiebereglers, der per Web-Formular 
ausgegeben wird, in analogWrite ausgeben, um die Helligkeit einer LED zu 
steuern.

Vorhandener HTML-Code:
1
client.println("<!DOCTYPE html>");
2
client.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
3
client.println("<head>");
4
client.println("<meta charset=\"utf8\" />");
5
client.println("</head>");
6
client.println("<body>");
7
client.println("<form>");
8
client.println("<input id=\"viewsize\" type=\"range\" min=\"350\" max=\"1300\" value=\"400\" step=\"25\">1300.");
9
client.println("</form>");
10
client.println("<div id=\"currentValue\"></div>");
11
client.println("</body>");
12
client.println("</html>");
Googeln hat leider nichts gebracht.

Wie kann ich den eingestellten Wert an Arduino übergeben?

Gruß
Andy

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Andreas Ahrens schrieb:

> Googeln hat leider nichts gebracht.

Dann suchst du falsch oder hast nicht die richtigen Stichworte benutzt.

Wenn ein Browser ein Formular anzeigt und der Benutzer auf OK drückt, 
dann versendet der Browser eine Anfrage an den Server für die nächste 
Seite. Teil dieser Anfrage sind die aktuellen Werte der Eingabeelemente, 
die du ins Formular eingebaut hast.

> Wie kann ich den eingestellten Wert an Arduino übergeben?

Brauchst du nicht. Das macht der Browser schon alleine.
Die Frage ist eher, wie kommst im Arduino Code an die komplette Anfrage, 
die der Browser an den Server schickt, um die nächste Seite anzufordern. 
Da musst du deinen Code bzw. die von dir benutzte Server-Klasse 
studieren, welche Möglichkeiten die dir bietet. D.h. sofern du überhaupt 
eine Server-Klasse benutzt.

von Karl H. (kbuchegg)


Lesenswert?

Andreas Ahrens schrieb:

> client.println("<form>");
> client.println("<input id=\"viewsize\" type=\"range\" min=\"350\"
> max=\"1300\" value=\"400\" step=\"25\">1300.");
> client.println("</form>");

Ein Formular ohne Submit-Button?

Du solltest dich erst mal damit vertraut machen, wie Forumlare in HTML 
eigentlich funktionieren
http://de.selfhtml.org/html/formulare/

von Andreas A. (andyah)


Lesenswert?

Hi,

ich benutze die Klassen Ethernet und SPI.

Gruß
Andy

von Thomas (Gast)


Lesenswert?

Hallo Andreas,

leider bist du ein gutes Beispiel für einen Arduino-User.
Nicht im geringsten verstehen was eigentlich passiert, aber erwarten das 
irgendwo eine "Klasse" das genauso macht wie du das willst.

Sorry, aber auch in der Arduino Welt gibts das nicht.

Du hast also nun zwei Möglichkeiten:

a) Du findest ein Arduino Tutorial was dir für genau dein Problem einen 
fertigen Code gibt (und ich nehme an das gibt es zuhauf), oder

b) Du probierst zu verstehen wie so eine Abfrage des Browser 
funktioniert, um dann zu wissen was du eigentlich tun musst.

Ich empfehle b) und ein Programm namens Wireshark.

Ich denke bei Lösung a) wird dir hier auch niemand groß helfen wollen, 
bei Lösung b) probier ich dir gerne zu helfen, insofern ich merke dass 
du auch verstehen willst. Der Satz "ich nutze doch Klasse X und Modul Y" 
deutet da leider nicht so ganz drauf hin.

Tut mir leid wenn das jetzt ein bisschen fies rüberkam, aber auch 
Arduino ist nicht (nur) Lego oder Playmobil, man muss manchmal doch 
wissen was man eigentlich tut.

Thomas

von Conny G. (conny_g)


Lesenswert?

Das müsste Dir weiterhelfen.

https://code.google.com/p/webduino/

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

In meinem Einsteiger-Buch Band 2 beschreibe ich, wie das HTTP Protokoll 
funktioniert und wie man es mit einfachen Mitteln manuell ausprobieren 
kann. http://stefanfrings.de/mikrocontroller_buch/index.html

Thomas Vorschlag mit Wireshark ist auf jeden fall wichtig, besorge Dir 
das Tool mal.

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
Noch kein Account? Hier anmelden.