Go Down

Topic: Datenübernahme aus einer Webseite (Read 3514 times) previous topic - next topic

Gsibiar

Hallo,

wie kann ich direkt von einer Webseite Daten in einen Arduino (noch offen welcher - lasse mich auch bei dieser Frage gerne beraten) einlesen.
Das müsste der Arduino allerdings auch selbständig machen, also ohne dass ich ihn "anschupse" - zum Beispiel zeitgesteuert nachfragen ob es "Neues" gibt.

Gruß Gsibar

Gsibiar

#1
Sep 05, 2015, 08:03 pm Last Edit: Sep 05, 2015, 08:07 pm by Gsibiar
Kleine Ergänzung.

Ich habe einen Arduino-UNO und er würde sich natürlich anbieten - eine notwendige andere Neuanschaffung soll aber kein Hindernis sein.

Gruß Gsibiar

ElEspanol

Beschreib die Sache mal ausführlicher. Vor allem um was für eine Webpage es geht.

Gsibiar

#3
Sep 05, 2015, 08:11 pm Last Edit: Sep 05, 2015, 08:11 pm by Gsibiar
Hallo,

die Seite ist noch nicht existent.
Es geht darum dass man in der Webseite Daten eingibt (z.B. über ein gewöhnliches Textfeld) und diese Daten sollten dann an den Arduino weitergereicht werden.
Ich nutze gewöhnlich serverseitig Java-EE (fallweise auch PHP) und MySQL.
Hoffe das beantwortet die Frage.

Gruß Gsibiar.

qualidat

Lösung:

PHP-Skript A nimmt aus einem beliebig aufwändig gestalteten HTML-Formular Daten (POST) entgegen und sichert sie als Datei oder in einer Datenbank auf dem Webserver.

Arduino ruft PHP-Skript B ab, welches die Daten aus der Datei oder Datenbank ausliest und an den Arduino sendet.

Das Verfahten hat den Vorteil, dass die vom Arduino abgerufene Datei sehr "sparsam" gestaltet werden kann, im günstigsten Fall einfach nur die zu verarbetenden Daten. Ein Arduino ist rel. "schwachbrüstig" und aufwändiges String-Parsen gehört ganz bestimmt nicht zu dessen Stärken ...

Gsibiar

Hallo,

interessante Variante.
Wie kann ich vom Arduino aus auf das PHP-Skript zugreifen?
Ich nehme an, dass geht mit dem UNO nicht - sondern einem leistungsstärkeren Gerät?


Gruß Gsibiar

ElEspanol

#6
Sep 05, 2015, 11:18 pm Last Edit: Sep 05, 2015, 11:19 pm by ElEspanol
UNO macht kein PHP und auch kein Java. Aber der UNO macht einfache Webseiten, wo du deine Daten direkt eingeben kannst. Ist schon sehr oft hier besprochen worden. Dann brauchst du keinerlei weitere Server, etc., nur auf dem Eingabegerät ein Browser. Oder u.U. nicht mal das.

Gsibiar

Hallo,

das ist nicht ganz was ich in meiner - ursprünglichen - Frage gemeint habe.
Mein Ansinnen wäre, dass ich die Webseite auf (m)einem Server betreibe und die Daten dann in den Arduino übernehme.

Gruß Gsibiar

qualidat

#8
Sep 05, 2015, 11:57 pm Last Edit: Sep 06, 2015, 12:01 am by qualidat
Der Uno kann das sehr wohl.

PHP läuft auf dem Server - damit hat der Uno Nichts direkt zu tun, er "merkt" es nichtmal. Der Uno sendet ein HTTP-Get-Statement (Seitenabruf) und bekommt die Daten von dem PHP-Skript (auf dem Server) zugesandt ... so einfach ist das.

PHP ist auf dem Server nur deshalb nötig, weil es eben nicht um statische (vorher geschriebene) Daten geht, sondern um "frische" dynamische Daten aus einer Datenbank bzw. Datei ...

@ElEspanol: Ich meine in diesem Falle den Uno als Client, nicht als Server! Dazu benötigt er nur HTTP, dafür reicht die Performance :-)

Gsibiar

Hallo,

perfekt!
Damit kann ich ihn auch per Java bedienen; das wäre für mich der Idealfall, da ich gewöhnlich Java nutze.
Gibt es dazu ein ausprogrammierte Beispiel oder ein Tutorial?

Gruß Gsibiar


qualidat

Beispiel oder Tutorial kenn ich jetzt nicht, aber wenn du schon mal programmiert hast, ist das kein großes Ding.

Ich nehme an, Schritt 1 (Webformular -> Webserver) ist klar, oder? Wenn nicht, frag ... ich will dich nur nicht langweilen, falls alles bekannt ist.

Für das Auslesen durch den Arduino sieh dir mal das Beispiel aus der Arduino-IDE an, "Web-Client". Da werden zur Demonstration Daten von Google abgerufen. Das änderst du nat. auf die Adesse deines eigenen PHP-Skriptes B. Dann noch ein wenig Parsing und die Kuh ist vom Eis :-)

Wenn du Hilfe brauchst, frag nach Details ... schreib doch mal, um was für Daten und wie viele es sich handelt, da muss man evtl. noch mal genauer nachdenken.

ElEspanol

Ihr denkt da falschrum.
1. Uno als Server wartet auf Datenübertragung
2. PHP oder Java oder was auch immer auf deinem Server stellt eine Page zur Verfüngung, in die irgendwelche Daten eingegeben werden. Sobald das geschehen ist, gibt der "PHP oder Java oder was auch immer"-Server die gewünschten Daten SOFORT per GET-Abfrage an den UNO.

Somit muss der UNO nicht alle naselang abfragen, und es entsteht sogut wie keine Zeitverzögerung bis der UNO die Daten hat.

qualidat

#12
Sep 06, 2015, 01:48 am Last Edit: Sep 06, 2015, 01:51 am by qualidat
... leider haben PHP-Scripts die dumme Eigenschaft, nicht von selber zu starten sondern nur "aktiv" zu werden, wenn man sie "aus dem Server lutscht". Also muss schon der Arduino da rumpollen ...

Die Idee von ElEspanol ist nicht falsch, auch so herum ist es machbar. Aber wer hat wohl bei Verbindungsproblemen den längerem Atem (bzw. das begrenzte Timeout)?

Gsibiar

#13
Sep 06, 2015, 09:31 am Last Edit: Sep 06, 2015, 09:35 am by Gsibiar
Hallo,

ich würde vorschlagen, wir entwickeln gemeinsam ein kleines Tutorial - indem wir hier den Vorgang gemeinsam aufbauen bzw ausarbeiten.
Abschließend könnte ich mir vorstellen, dass ich (oder wer sonst dazu Lust hat) dazu ein Video-Tutorial erstelle.
Was meint ihr dazu?

Für den Versuch würde wahrscheinlich eine einfache HTML-Seite ohne PHP ausreichen. Ich gehe davon aus, dass man für die Datenübernahme ein Name-Wert-Paar benötigt. Das könnte ja auch statisch bereitgestellt werden.
Daher gehe ich davon aus, dass man die Daten auch per XML bereitstellen könnte. Für das Beispiel würde ich aber bei einfachem HTML bleiben.

Gruß Gsibiar

ElEspanol

Die Idee von ElEspanol ist nicht falsch, auch so herum ist es machbar. Aber wer hat wohl bei Verbindungsproblemen den längerem Atem (bzw. das begrenzte Timeout)?
Das PHP skript wird doch durch die Dateneingabe bereits angestoßen. Fehlerbehandlung musst du da schon selbst einbauen. Notfalls schickt dir das Skript eine Email, wenn der Arduino die Daten nicht bekommen hat. Das Skript macht alles, was du programmierst.

Und wie bereits vorher ausgeführt, einfaches Html bekommt man direkt mit dem Uno hin.

Go Up