www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie können Web-Sites mit dem ETH_M32_EX aufrufen?


Autor: krepperm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht kann mir hier jemand helfen.

Ich verwende den AVR Web-Server ETH_M32_EX von Ulrich Radig und möchte 
gerne Web-Sites von anderen Servern damit aufrufen.
Ich habe dazu das Beispiel für die Wetterdaten verwendet nur leider ohne 
Erfolg.

Vielleicht hat jemand von euch die selbe Ideee gehabt und es auch schon 
verwirklicht. Mir wäre damit sehr geholfen.

Als Stack verwende ich die neueste Version 1.2.5


Danke

Markus

Autor: Markus Krepper (krepperm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dummer Fehler:

Die Überschrift sollte lauten:

Wie können Web-Sites mit dem ETH_M32_EX aufgerufen werden?

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube nicht, daß der der zur verfügung stehende RAM-speicher dieses 
webservers dafür ausreicht, eine normale HTTP seite aus dem WWW 
aufzunehmen. gerade mal geschaut, rechte maustaste auf die seite auf der 
ich gerade tippe sind schon 32kbyte. wird also recht schwer weil du 
einen teil der seite schon wieder wegschmeißen mußt bevor sie 
vollständig geladen ist.

gehen sollte es aber, du mußt dem ziel-server nur die anfrage schicken 
und dann bekommst du auch das was du haben willst zurück. mit PHP könnte 
ich es, aber AVR-C ist noch nicht so mein ding obwohl ich auch gerne mal 
mit so einem AVR-webserver rumspielen möchte. gibts die sources dafür 
auch in assembler?

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du musst die erzeugten websites nur parsen per php ... schau mal da z.B.

http://www.it-academy.cc/article/722/PHP:+Fremde+W...

und per dyn-dns und portforwarding halt deine avr-anwendung von außen 
zugänglich machen ... keine großé Sache

edit: gerade gesehen, du wills das parsen mit dem avr machen ... boa ey 
... übel.
geht wol eher per telnet evtl.

Autor: Markus Krepper (krepperm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir schon klar, daß ich die Seite nicht im AVR speichern kann, da ist 
der Speicher auf jedem Fall zu klein.
Es gibt aber auch Seiten die einem Wetterinformationen und oder so manch 
Anderes senden, das auch einem Display angezeigt werden kann. Anderes 
Bsp. wäre du überträgst Daten auf einen PHP-Server und diese werden in 
eine Datenbank geschrieben. Aus diesem Grund die Frage.

Zu deiner Frage: Die Software gibt es für dieses Board nur in C.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol

AVR webserver mit PHP... HER DAMIT!! will ich auch

Autor: Markus Krepper (krepperm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich die Seite richtig aufrufen kann, dann kannst den Source haben. 
Das Board kannst unter www.ulrich.radig.de kaufen.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja den sourcecode zu dem board kriegt man ja problemlos auch von 
dieser seite, aber in C fällt mir halt die weiterentwicklung schwer. :-/

cool wäre für mich so ein system wo ein controller den webserver macht 
und daten von einem anderen controller ins netz stellen kann bzw. 
daten/anfragen aus dem netz an diesen zweiten controller weiterleiten 
kann. optimal sowas wie ein I2C web-interface...

Autor: Sascha Weber (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus

Hallo,

die Wetterroutine in Uli's Stack ist noch eher im Teststadium. Hab das 
Problem aber vor kurzem schom mal erläutert und meine Variante die ich 
in ASM am laufen habe so einigermassen nach C umgesetzt.

http://embdev.net/topic/186248#new

der Stack ist dort jetzt so angepasst, das es läuft - was du mit den 
Daten machst ist dann deine Sache.

In meinem eigenen Server speichere ich die Daten erst mal auf SD-Karte.

Sascha

Autor: Markus Krepper (krepperm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Sascha für deine Antwort.

Ich werde es dieses Wochenende ausprobieren und lasse es dir wissen wie 
es gelaufen ist.


lg Markus

Autor: poppeyeo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Webserver kommunizieren über HTTP und das basiert wiederum auf dem 
TCP/IP Protokoll



Im Grunde musst du nur eine TCP verbindung zu deinem Wetterserver 
aufbauen (port 80) und eine Zeichenfolge schicken:

GET /wetter/vorhersage.html\r\n\n\n
^ so oder ähnlich

Die meisten server sollten dann antworten(sie schicken also TCP pakete 
zurück) mit sowas:


HTTP/1.0 200 OK
Date : Sat, 15 Jan 2000 14:37:12 GMT
Server : Microsoft-IIS/2.0
Content-Type : text/HTML
Content-Length : 1245
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT

Anschliessend käme dann im Klartext der Inhalt der Seite:
<html>
<title> mikrocontroller.net </title>
...
Das Wetter für Berlin..
adsfasdfadsf
asdfasdf
blabla
...
</html>



Der Trick ist der: kümmer dich nicht um den ersten Teil der Nachricht, 
sondern durchsuche einfach alle DatenPaktete, die dir der Server 
zurückschickt, nach der Information, die du suchst.
Oftmals stehen ja spezielle html-Befehle vor wichtigen Punkten
zB

<font size=10>Das WEtter wird morgen sonnig</font>

In c müsste es doch die funktion "strcmp" geben, um eine Zeichenkette in 
einer anderen zu finden.... damit könntest du jetzt die eingehenden 
Pakete nach <font size=10> durchsuchen und damit würdest du 
höchstwahrscheinlich die position von deinem gesuchten string "Das 
Wetter wird morgen sonnig......" geliefert bekommen.


Wenn du glück hast, gehts ganz einfach. Ein Problem sehe ich aber jetzt 
schon: Da die Nachrichten vom Server in Pakete von der Länge 1500byte 
oder so ähnlich unterteilt sind, kanns sein, dass die Erkennungsmarke, 
nach der du suchst, in der Mitte zerschnitten ist, strcmp findet sie 
dann ja nicht mehr... aber das muss garnicht passieren....

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol

sich drauf verlassen daß das nicht passiert. <slap>
schon mal was von murphys law gehört? was schief gehen kann geht mit 
sicherheit schief!
oder wenn es mehrere möglichkeiten gibt eine sache zu erledigen und eine 
davon in einer gigantischen katastrophe endet wird es irgendwer genau so 
machen!

also mußt du in der gestückelten übertragung nach irgendwelchen 
endmarken suchen wie z.b. den zeilenende-markierungen (\n), aber die 
werden auch nicht immer in vollem umfang genutzt. du kannst auch 
probieren offene tags (<blah... ohne >) an den anfang des nächsten 
stückchens mitzunehmen.

habe nun auch so einen mini-webserver, cooles teil! werde aber mal einen 
eigenen thread dazu aufmachen damit ich den hier nicht zumülle.

Autor: Marcus B. (raketenfred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Tipp: der Atmegfa32 schafft es ziemlich sicher nicht, da sollte 
schon der 644 her der wenigstens für die wetter seite genug speicher 
bereit hat

Autor: poopy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus Krepper schrieb:
> Ich werde es dieses Wochenende ausprobieren und lasse es dir wissen wie
> es gelaufen ist.

warten wir mal ab, was er dazu zu sagen hat

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auf dem board was ich habe ist ein 644 drauf, er kann den atmega32 also 
ganz einfach ersetzen wenn er nicht reicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.