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
Dummer Fehler: Die Überschrift sollte lauten: Wie können Web-Sites mit dem ETH_M32_EX aufgerufen werden?
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?
du musst die erzeugten websites nur parsen per php ... schau mal da z.B. http://www.it-academy.cc/article/722/PHP:+Fremde+Webseiten+parsen+auslesen.html 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.
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.
wenn ich die Seite richtig aufrufen kann, dann kannst den Source haben. Das Board kannst unter www.ulrich.radig.de kaufen.
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...
@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
Danke Sascha für deine Antwort. Ich werde es dieses Wochenende ausprobieren und lasse es dir wissen wie es gelaufen ist. lg Markus
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....
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.
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
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
auf dem board was ich habe ist ein 644 drauf, er kann den atmega32 also ganz einfach ersetzen wenn er nicht reicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.