Forum: Mikrocontroller und Digitale Elektronik Webserver Kommunikation auf µC


von Jens (Gast)


Lesenswert?

Hallo alle,

nach endloser Recherche habe ich eine Frage zur Kommunikation meiner 
Webansicht und dem Programm auf dem µC bzw. SoC.

Wenn ich beispielsweise Linux am Start habe und auf diesem läuft ein 
Webserver mit meiner Visualisierung - wie kommuniziert dann meine 
Visualisierung mit einem anderen Programm auf dem Linux SoC.

Die einzige effektive Möglichkeit die ich mir da grade vorstellen kann 
ist AJAX + REST (sprich die angesprochenen Programme kommunizieren über 
HTTP Request mittels AJAX - empfangen und senden).

Eine zweite Lösung die ich kenne ist, dass die HTTP Seiten direkt im 
ausführenden µC Programm integriert sind. So könnte auch auf dem AVR 
eine HTML Visu abgelegt werden. Das Programm kann anfragen erkennen, 
Daten speichern und laden, sowie zurücksenden (ggf. dann HTML).

Aber ich ziehe es vor, HTML und Programm zu trennen. Wie ist da der 
einfachste Weg? Gibt es da gute Literatur für?

bis dann
Jens

von Stefan F. (Gast)


Lesenswert?

Zur Visualisierung kannst einen Webserver verwenden, der HTML Seiten 
generiert, oder eine HTML/Javascript Seite, die direkt mit dem µC 
kommuniziert:
1
µC ----------- Server --------- Browser
2
3
oder:
4
5
µC ---------------------------- Browser

Beim ersten Fall kommen die HTML Seiten und Javascript sinnvollerweise 
vom Server.

Beim zweiten Fall hast du ziemlich freie Wahl, woher der Browser die 
HTML+Javascript Dateien lädt. Es könnte ein lokales Verzeichnis sein, 
oder ein Webserver, oder der Mikrocontroller liefert sie.

Die Kommunikation zum µC würde ich in jedem Fall text-basiert machen, 
damit man sie gut debuggen und simulieren kann. Hier bieten sich XML und 
JSON an, um die Daten zu strukturieren. JSON ist etwas schlanker und mit 
Javascript einfacher zu verarbeiten, als XML.

Im ersten Fall kannst du AJAX optional einsetzen, um nur Teile der 
Webseite aufzufrischen. Das kann je nach Anwendungsfall zu besserer 
Performance führen, ist aber beim Drucken und abspeichern hinderlich. 
Auch kann man auf AJAX Seiten nur bedingt Lesezeichen setzen.

Im zweiten Fall würde ich ganz dringend zu AJAX raten. Denn 
Mikrocontroller eignen sich eher nicht, ganze HTML Seiten zu erzeugen - 
es sei denn, sie sind ganz einfach strukturiert.

Als Anregung kannst du Dir mal dieses Projekt anschauen: 
http://stefanfrings.de/avr_io/index.html

Da verfolge ich den Ansatz: alles auf dem µC und weitgehend ohne AJAX - 
den ich nur bei sehr einfachen Seiten empfehlen würde.

von Pandur S. (jetztnicht)


Lesenswert?

> .. nach endloser Recherche  ..

eher nicht. Es ist nicht allzu schwierig, auf dem Controller eine 
Webseite zusammenzusetzen. Die Kommunikation laeuft ja eh ueber die 
serielle Schnittstelle. Dabei muss der Controller eigentlich nur den 
HTTP Request parsen, und darauf reagieren. Dann muss der PC nur noch die 
Seite durchreichen. Sonst muss man ein Programm aufsetzen, das ein 
Protokol implementiert und in eine Webseite einfuellt.

Ich had den beschriebenen Weg, mit der Webseite auf dem controller 
zusammensetzen schon implementiert, und es geht gut.

von Stefan F. (Gast)


Lesenswert?

> und es geht gut.

Dazu habe ich ein Kapitel geschrieben. Du kannst dort nachlesen, wie das 
HTTP Protokoll funktioniert und Lösungsansätze zur Implementierung 
finden:

http://stefanfrings.de/mikrocontroller_buch/index.html (in Band 2)

Ich finde den Ansatz mit Rest Services und Javascript aber auch nicht 
schlecht. Gerade für Web-Frontend Entwickler könnte das leichter sein, 
als Mikrocontroller zu programmieren.

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.