Webserver

Hallo

Bestecht die Möglichkeit den aktuellen wert eines Temperatursensor auf eine HTML Seite anzeigen zu lassen die ich von der SD-Card geladen habe über den Webserver des Arduino?

Ja.

Aber warum Temperaturwert erst auf SD auslagern und dann von dort aus wieder abrufen? Wenn es um die aktuelle Temperatur geht, kannst du diese ja direkt weiterleiten und über den Webserver ausgeben.

hi,

nein, ssw, ich denke, er will die HTML-seite von SD laden. ist aber eigentlich auch nicht nötig, wenn diese HTML-seite jetzt nicht grade riesig ist.

gruß stefan

Hallo Stefan

Richtig ich möchte die HTML-seite von SD laden. Die HTML-Seite ist nicht so groß, mich würde nur interessieren ob es grundgesetzlich möglich ist und wenn ja wie?

Theoretisch möglich, praktisch wird es nicht einfach zu lösen sein, ein entsprechendes Beispiel kenn ich nicht. Die Idee von dem anderen Stefan ist da deutlich einfacher und wird auch in einigen SketchDemos beschrieben. Bei dem wird die gesamte Seite vom Sketch zur Verfügung gestellt.

hi,

ja, wie ssw gesagt hat, es ist möglich. such mal hier im forum, wurde schon einige male angesprochen. das ist aber eine eher unsinnige lösung. selbst für umfangreiche seiten kann man bessere methoden finden. zb die seite mit jquery von anderer seite nachladen (vom internet, eigenem webserver, von lokal am handy/tablet usw.). tüftel da selber grad dran.

gruß stefan

Moin Ingo,

schau mal hier, mit diesem Beispiel bin ich mit meinem HeizungsLogger-Projekt auch eingestiegen: http://fluuux.de/2013/03/arduino-als-webserver-einrichten-und-webpage-von-sd-karte-laden/

Schau dir auch mal diese Seite hier an: http://startingelectronics.com/tutorials/arduino/ethernet-shield-web-server-tutorial/

Dort wird einiges erklärt, auch wie mit Ajax die Daten aktualisiert werden können ohne die komplette Webseite neu zu laden.

Eisebaer:
nein, ssw, ich denke, er will die HTML-seite von SD laden. ist aber eigentlich auch nicht nötig, wenn diese HTML-seite jetzt nicht grade riesig ist.

Arduino ist jetzt kein System, auf dem Du PHP oder irgendeinen anderen serverseitigen Interpreter laufen lassen könntest, aber wenn Du Deinen Webserver mit den Senderoutinen selbst schreibst, dann spricht überhaupt nichts dagegen, HTML von der SD-Karte nach einer Suchen-und-Ersetzen Aktion zu senden statt direkt so wie die Datei auf der Karte gespeichert ist.

Ich würde das so lösen:

  1. Vorbereiten der Datei auf SD-Karte mit Platzhalter
    Du speicherst Deine HTML-Datei auf SD-Karte und achtest darauf, dass keine Zeile im Quellcode länger als z.B. 80 Zeichen wird. Dann setzt an der Stelle, an der später die Temperatur erscheinen soll, einen Platzhalter ein, z.B. “[TEMP]” oder “@TEMP” oder irgendetwas anderes eindeutiges.

2, Senden der Karte von SD:
Beim Senden der Datei liest Du jetzt die Datei zunächst mal zeilenweise in einen Zeilenpuffer ein (daher die Längenbeschränkung der Zeilen unter 1.) und innerhalb dieser Zeile suchst Du dann nach dem Platzhalter. Wenn kein Platzhalter gefunden wurde, sendest Du die unveränderte Zeile, so wie sie von SD-Karte gelesen wurde. Wenn der Platzhalter “[TEMP]” oder “@TEMP” gefunden wird, sendest Du den Zeilenpuffer in drei Schritten

  • den Text vor dem Platzhalter
  • die Temperatur anstelle des Platzhalters
  • den Text hinter dem Platzhalter

Wenn Du verschiedene Platzhalter definierst und verschiedene Variablen senden möchtest, kannst Du in einer Schleife auch nach verschiedenen Platzhaltern suchen und so ganz viele variable Werte direkt beim Senden der Datei gegen aktuelle Werte austauschen.

Morgen

Also ist es möglich bloß der auffand ist ziemlich groß. Dann werde ich das so wie ich es jetzt habe so lassen.

Frage ist nun, wie hast du es jetzt? Aufwand ist Geschmacksache, der eine macht lieber ne Stunde länger und freut sich den Rest des Lebens der andere quält sich das Lebenlang :D

Hallo

So wie im Beispiel WebServer. Meine Programmierkenntnisse sind noch nicht so weit fortgeschritten um das wie jurs beschrieben hat um zu setzen.