Forum: Mikrocontroller und Digitale Elektronik Mit dem AVR ins Internet?


von Jazz (Gast)


Lesenswert?

Hallo,

AVR Webserver Projekte gibt es ja schon wie Sand am Meer.
Aber hat es denn jemand mal anderstherum probiert?

Einen AVR einfach an ein Netzwerkkabel anschließen, und dann eine IP 
Aufrufen und dann Daten einlesen?
Es geht nur um eine html Datei, die im Internet eine Zeichenfolge 
bereitstellt.
Und diese soll de AVR auslesen. Tipps dazu wie man das am besten angeht?

Danke

von holger (Gast)


Lesenswert?

>Tipps dazu wie man das am besten angeht?

Versuchen den Sourcecode vom Firefox in einen AVR zu quetschen?

von Purzel H. (hacky)


Lesenswert?

Nee. Firefox ist ein Interpreter. Es geht darum einen String zu lesen.
http-get ergibt einen String. Meist ist dieser groesser wie das RAM.

von holger (Gast)


Lesenswert?

>Nee. Firefox ist ein Interpreter.

Und genau das muss auch der AVR werden. Er muss HTML
interpretieren, mit all dem Schrott der da üblicherweise
mit in den Seiten drin steht. Versuchs mal mit ner Text Datei per FTP.
Das könnte vieleicht einfacher werden.

von Jazz (Gast)


Lesenswert?

Nene, ich kann da doch kein komplettes Betriebssystem laufen lassen, 
worauf ich dann nen Browser installier. Ich will keinen AVR32 oder so 
nehmen, sondern was kleines. Dazu ein Netzwerkcontroller (ENC28J60)

Also ich nehme an, dass hat noch keiner gemacht, oder (Bei Google habe 
ich nichts gefunden)

von Jazz (Gast)


Lesenswert?

Eine Zusatzfrage hätte ich allerdings auch noch. Wäre es möglich die 
aktuelle IP Adresse am Netzwerkkabel zu bestimmen, und zwar ohne http. 
Steckt das vllt schon im Protokoll mit drin?

von Purzel H. (hacky)


Lesenswert?

Es sollte kein Problem sein den String einzulesen und auf eine 
Zeichenfolge zu durchsuchen.

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Hört sich schwer nach ein paar Versuchen mit dem AVR-NET-IO von Pollin 
an...
AVR Net-IO Bausatz von Pollin
Schau doch da mal rein.
Ulrich Radig und auch andere haben dafür sehr brauchbaren Code 
geschrieben. Ich persönlich habe Ulis Code etwas angepasst und nutze das 
jetzt zur Temperaturüberwachung meiner Räume.

von Jazz (Gast)


Lesenswert?

Da geht es ja nur um Server, aber ich will ja als Client ins Internet

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Hab ich auch gerade gesehen. wollte meinen Beitrag eigentlich löschen, 
da hattest du schon geantwortet. Wieder mal zu schnell gelesen. Sorry.

von Purzel H. (hacky)


Lesenswert?

Das wuerde erst eine DNS Anfrage bedingen um dem Namen aufzuloesen, dann 
einen HTTP-GET auf diese IP.

von Jazz (Gast)


Lesenswert?

Aber wie soll ich meinen Namen auflösen können? Ich weiß doch nicht die 
Domain an die ich angeschlossen werde.
Das Modem reicht ja transparent zur angeschlossenen Netzwerkkarte durch. 
Somit weiß die Netzwerkkarte ja nur ihre feste, bzw. ihre zugewiesene 
IP.

Aber die InternetIP lässt sich wohl nur durch einen Internetservice wie 
meineIP.de feststellen, oder?

von hdd (Gast)


Lesenswert?

Deine eigene IP bekommst du in einem Netzwerk entweder per DHCP vom 
Router o.ä. zugewiesen oder du suchst dir selbst in einem bestimmten 
Bereich eine aus. Deine öffentliche IP braucht dich eigentlich gar nicht 
zu interessieren wenn du hinter einem Router sitzt.

hacky meint, dass du die Domain, von der du Daten haben willst, in eine 
IP auflösen musst und mit dem daran angeschlossenen Server zu 
kommunizieren. Dazu gibt es DNS-Server im Internet, bei denen du 
nachfragst und dann die IP zurück bekommst. Zum Anfang kannst du die 
auch von Hand am Computer abfragen und dann fest einprogrammieren, aber 
das dürfte dein kleinstes Problem sein.

Du schickst an den Server ein Datenpaket in dem du mit HTTP angibst, 
welche Datei du haben willst. Dabei stehen u.a. deine lokale IP und die 
IP des Servers im Header. Dein Router verpackt das ganze dann nochmal 
mit der öffentlichen IP. Der Server versteht deine Nachricht und schickt 
seinerseits ein Datenpaket an deine öffentliche IP, das dein Router dann 
an dein Gerät weiterleitet und schon hast du deine Daten.

Ob das nun reiner Text, HTML oder MPEG4 ist, ist für die 
Datenübertragung (relativ) egal, damit muss sich dann dein Controller 
auseinandersetzten und das Interpretieren.

von hab noch was (Gast)


Lesenswert?

Hallo

Jazz schrieb:
> Aber hat es denn jemand mal anderstherum probiert?
Ja

> Einen AVR einfach an ein Netzwerkkabel anschließen, und dann eine IP
> Aufrufen und dann Daten einlesen?
genau das ist mit dem Code von Ulrich Radig schon möglich
http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex

> Und diese soll de AVR auslesen. Tipps dazu wie man das am besten angeht?
AVR-NetIO kaufen und die Software von Urlich Radig drauftun.
Dann solltest du dir dich über Tcp und http informieren und Code von 
Ulrich Radig entsprechend deiner Vorstellungen anpassen.

> Es geht nur um eine html Datei, die im Internet eine Zeichenfolge
> bereitstellt.
Einfacher wäre eine Zeichenfolge ohne den ganzen html Müll drumherum. 
Weil die Datei nicht in den Ram passt müsstest du diese während des 
Empfangs analysieren und den relevanten Teil herrausfiltern.

Jazz schrieb:
> Aber wie soll ich meinen Namen auflösen können?
Deine eigene, externe IP ist als Client unwichtig.

Jazz schrieb:
> Das wuerde erst eine DNS Anfrage bedingen um dem Namen aufzuloesen,
Jazz meint die IP der Website die du runterladen möchtest.

von Grolle (Gast)


Lesenswert?

Wie fast immer lautet der Tipp: Schau mal bei ethersex rein.

Ich kenne Leute, die mit einer HTTP GET-Abfrage Sensor-Daten über ein 
PHP-Script des Servers in Datenbanken schieben.

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.