Forum: Mikrocontroller und Digitale Elektronik AVR Ethernet-Modul mit implementiertem HTTP-Protokoll


von Ethernet-Modul mit HTTP Protokoll (Gast)


Lesenswert?

Hallo,

ich bin gerade auf der Suche nach einem AVR Ethernet-Modul.

Es gab viele Suchergebnisse bei Google, von allen fand ich das 
Webserver-Modul von tuxgraphics.com 
(http://shop.tuxgraphics.org/electronic/detail_avrwebserver_smd4.html) 
und das Ethernut-Modul (http://www.ethernut.de/en/hardware/index.html) 
am besten.

Warum ich hier poste? Ich moechte sicher gehen, dass diese Module auch 
wirklich zwei meiner wichtigsten "Anforderungen" erfuellen (soweit ich 
der Websites entnehmen konnte, tun sie das, aber bevor ich eines der 
Module bestelle, moechte ich es gerne noch mal von euch bestaetigen 
lassen):
1. Aufgrund von Zeitgruenden haette ich gerne ein Ready-to-Go-Modul. Das 
heisst, ich kann mit wenigen initialisierenden Handgriffen direkt mit 
dem Endziel fuer mein Projekt starten, naemlich diverse HTTP-Anfragen zu 
machen: Deswegen ist es fuer mich wichtig, dass auf den gelieferten 
Modulen schon HTTP und alles was dafuer benoetigt wird schon 
implementiert ist. Soweit ich es verstanden habe erfuellen die beiden 
Module diese Anforderung. Ist das korrekt?
2. Guter Support: Wie gaengig sind die beiden Module? Wenn ich ne Frage 
haben werde, werden sich mehr Leute mit tuxgraphics oder mit Ethernut 
auskennen und mir netterweise dazu Tipps geben? Ich glaube eher 
Ethernut, oder?

Vielen Dank und einen frohen 2. Weihnachtsfeiertag!

J!M!

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Was sind für Dich genau die diversen HTTP-Anfragen?
Sollen nur statische Webseiten geliefert werden oder auch SSI?
Was ist mit der Formularauswertung?

Was ist genau Dein Endziel?

Sorry, meine Kristallkugel ist über Weihnachten beim Polieren.

von Ethernet-Modul mit HTTP Protokoll (Gast)


Lesenswert?

Hallo!

Naja, ich meine vor allem damit GET-Anfragen an einen Web-Server im 
Internet.

SSI nicht, aber PHP durchaus... Macht das einen Unterschied zu rein 
statischen HTML-Seiten?

Beste Gruesse, J!M!

von anonymous (Gast)


Lesenswert?

PHP auf nem Microcontroller? Das kannst Du vergessen. PHP ist Speicher- 
und Ressourcenmäßig ein ziemlich dicker Brocken. Ich glaube noch nicht 
mal auf den OpenWRTs (und das ist immerhin nen MIPS mit 16 bis 32 MB RAM 
unter Linux) ist PHP mit dabei.

Wenn Du PHP wirklich brauchst, schau Dich am besten nach nem Atom-PC um.

Im AVR-Bereich wirst Du es nicht einfach haben eine Skriptsprache zu 
finden. Die Logik hinter der Webseite (also das, was Deine GET-Anfragen 
nach nach dynamischen Seiten entgegennimmt) sollte am besten in C 
gemacht sein. Evtl. kannst Du das mit Client-Seitiger Logik in 
Javascript kombinieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

anonymous schrieb:
> PHP auf nem Microcontroller? Das kannst Du vergessen. PHP ist Speicher-
> und Ressourcenmäßig ein ziemlich dicker Brocken. Ich glaube noch nicht
> mal auf den OpenWRTs (und das ist immerhin nen MIPS mit 16 bis 32 MB RAM
> unter Linux) ist PHP mit dabei.

So wie ich das verstehe, will er HTML Anfragen abschicken. Von daher 
macht es kein Unterschied ob der Server ein PHP Script ausführt oder 
nicht.

Aber wo willst du die angefragte HTML Seite denn darstellen? Display? 
Oder willst du einfach nur Daten per HTTP PUT schicken?

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>Ich glaube noch nicht
>mal auf den OpenWRTs (und das ist immerhin nen MIPS mit 16 bis 32 MB RAM
>unter Linux) ist PHP mit dabei.

>Wenn Du PHP wirklich brauchst, schau Dich am besten nach nem Atom-PC um.
Nee, das läuft unter anderen auch ohne Probleme auf dem NGW100, auch auf 
WRTs, hier z.b. http://www.macsat.com/OpenWRT/lighttpd.php

von J!M! (Gast)


Lesenswert?

Hallo!

Ja, es ist wie Simon sagt, dass ich nur HTTP-Seiten aufrufen möchte, und 
evtl. auch ein paar Daten an einen Web-Server schicken werde, aber nicht 
etwa einen Webserver auf dem Ethernet-Modul mit PHP und pipapo laufen 
lassen möchte.

Die Darstellung erfolgt auf einem LC-Display, ja.

Ich hoffe, dass ich mehr oder minder nachvollziehbar dargestellt habe, 
was ich gerne machen möchte. Erfüllt das Ethernut-Modul (Ethernut 1.3) 
diese Anforderung, ohne dass ich noch Vieles an Vorarbeit leisten muss?

J!M!

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

anonymous schrieb:
> PHP auf nem Microcontroller? Das kannst Du vergessen. PHP ist Speicher-
> und Ressourcenmäßig ein ziemlich dicker Brocken. Ich glaube noch nicht
> mal auf den OpenWRTs (und das ist immerhin nen MIPS mit 16 bis 32 MB RAM
> unter Linux) ist PHP mit dabei.

Doch, ist dabei und funktioniert auch einwandfrei.

Diese Info ist aber hinfällig, da nur ein HTTP-Client benötigt wird,
also lediglich eine TCP-Verbindung öffnen und Daten hin- und 
herschicken.
Leider kenne ich o.g. Implementationen nicht, kann mir aber gut 
vorstellen, dass das geht. Es könnte aber sein, dass GET und RESPONSE 
jeweils in ein TCP-Packet passen müssen. Ich erinnere mich an einen 
Stack, der keine größeren Datenmengen übertragen konnte.

von J!M! (Gast)


Lesenswert?

Okay, aber dieses Problem lässt sich umgehen ...

Also, ich tendiere jetzt zu Ethernut statt tuxgraphics. Da ich mir auch 
ziemlich sicher bin mittlerweile, dass eben HTTP schon implementiert 
ist, bin ich auch kurz davor es mir zu bestellen. Nur eine Sache noch 
bezüglich evtl. Fragen in der Zukunft: Besitzt jemand schon ein 
Ethernut-Modul und hat Erfahrungen damit gemacht/kennt sich damit aus?

J!M!

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Dumme Frage: Wie drückt sich das Ethernut-Nodul (welches hast Du dir 
ausgewählt) in Euro aus?

von Simon K. (simon) Benutzerseite


Lesenswert?

Was willst du denn machen? Sollen die HTTP Daten auch geparst werden? So 
wie eine Art Browser? Das wirst du nämlich in keinem Projekt finden.

von J!M! (Gast)


Lesenswert?

Ethernut 1.3.

In Euro, so an die 140 €.

Nö, parsen mach ich schon. Aber dass die gelieferte API mir schon 
Funktionen bietet wie Verbindung zum Server aufbauen, Anfrage senden, 
Antwort entgegennehmen etc.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ach so. Ja das können eigentlich so gut wie alle. Zumindest eine 
Verbindung aufbauen. HTTP Unterstützung braucht man dafür ja eigentlich 
nicht. Einfach TCP Verbindung öffnen und die Headerdaten raushauen. Beim 
Empfangen dann auf die zwei \r\n warten, danach kommen die Nutzdaten.

Ein großes Problem ist aber immer, dass (mangels Puffer) man keinen 
"Stream" an HTTP Daten hat, sondern die Daten immer paketweise 
verarbeitet werden müssen. Und da muss man beim parsen halt drauf 
achten, dass ein Tag auch über zwei Pakete sich erstrecken kann.

von J!M! (Gast)


Lesenswert?

Okay danke!

von Dirk B. (sharandac)


Lesenswert?

@Simon K.

Nee, das ist nicht bei allen Projekten so das man keinen Stream hat. Ich 
selber habe bei meinem Projekt [1] alles komplett entkoppelt, so das man 
einen Byteweisen Stream bekommt. Das was auf der Netzwerkschicht 
passiert bekommt man nicht zu sehen, darum kümmert sich der Stack. Und 
nebenbei zerlegt er einem noch den GET-Request in seine Bestandteile und 
hat ein definiertes CGI-BIN Interface wo man alles vorgekaut bekommt und 
sich nur noch das raussuchen muss was man braucht.

CA Dirk

[1] http://wiki.neo-guerillaz.de

von Simon K. (simon) Benutzerseite


Lesenswert?

Mag schon sein. Gut, war arg verallgemeinert. Aber die gleiche 
Voraussetzung wie auf dem Rechner hat man einfach nicht, mangels 
Speicher.

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.