mikrocontroller.net

Forum: PC-Programmierung Mikrocontroller über serielle Schnittstelle im Internet sichtbar machen


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

folgendes Problem:

1. Ein Mikrocontroller ist über eine serielle Schnittstelle mit einem PC 
verbunden
2. Der PC ist mit dem Internet verbunden
3. von irgendwo auf der Welt soll der Mikrocontroller über einen 
Webbrowser angesprochen werden

Hat jemand eine Idee, wie man dieses Problem am besten löst? Im Moment 
schwebt mir ein Java-Webserver mit RXTX vor.

Autor: Rolf Magnus (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Hat jemand eine Idee, wie man dieses Problem am besten löst?

Apache auf dem PC installieren, dann ein kleines CGI-Skript basteln, das 
aus den Daten des µC eine Webseite bastelt.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort. Mit CGI kenne ich mich nicht aus. Wie spricht man 
dann die serielle Schnittstelle an?

Meine erste Idee war, anstatt APACHE einen kleine Java-Server zu 
schreiben. Das ist seit Java 1.6 ziemlich einfach.
Dann ist mir eingefallen, dass ich den Mikrocontroller unter anderem mit 
einem Schieberegler steuern will. Das scheint mit Java-Applets zu gehen.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So wie hier: http://d116.com/ace/
Siehe insbesondere den Link "Linux SLIP server".

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Faszinierendes Projekt. Danke :-)

Mit SLIP werden( wenn ich es richtig verstanden habe ) die Daten einfach 
vom Ethernet auf die serielle Schnittstelle geleitet.
Das Problem ist dann, dass man den TCP/IP Stack im Mikrocontroller 
implementieren muss. Der PC arbeitet dann eigentlich nur als großer 
Ethernet/RS232 Konverter.
Mein Ziel wäre eher in folgender Art: Ein Webserver auf dem PC stellt 
ein Serielles Terminal in einem Browser dar. Der Vorteil dann: im 
Mikrocontroller muss quasi kein Protokoll implementiert werden.

Autor: bingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Imon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Danke für die Antwort. Mit CGI kenne ich mich nicht aus. Wie spricht man
> dann die serielle Schnittstelle an?

Stark Vereinfacht:
ein CGI ist nicht anderes als ein Programm/script etc. deiner Wahl was 
von denn Webserver gerufen wird. Seine Parameter Erhalt das Programm 
über die commandline seine Ausgabe nach stdout wird an den Browser durch 
gereicht.

Du kannst also ein Stateless Programm in einer Sprache deiner Wahl 
schrieben das über die Serielle Schnittstelle mit denn Mikrocontroller 
Kommuniziert.Es bleibt in diesen fall also dir überlassen wie du den µC 
ansprichst, vielleicht mit ein C Programm, shellscript, Perl je nach 
persönlichen Geschmack.

Generell ich denke wenn du nur ein µC in das Internet über ein PC 
bringen willst, solltest du vielleicht von so einen Fetten Webserver wie 
Apache absehen, wenn nicht so wie so schon eine Instanz wegen andere 
Sachen am Start ist. Ich Persönlich finde das Lighttpd mit seiner CGI 
und FastCGI Schnittstelle, schneller aufzusetzen und leichter zu Warten 
ist. Außerdem läuft auf den Ding yahoo, scheint also auch was die 
Perfomens angeht nicht Grund verkehrt zu sein.
Außerdem solltest du dir die Frage stellen, was macht der PC sonst noch 
?
wenn er nur denn µC ans Netz anschließen soll dann, würde ich auch 
dessen Berechtigung in zweifel Ziehen. Es gibt auch embedded Systems mit 
Webserver, CGI und Serielle Schnittstelle, sogar auf AVR Basis oder ARM9 
mit Linux, Lighttpd und eben CGI.Egal was auch immer So ein PC ist ein 
ganz schönner Stromfresser ( ja auch die ATOM CPUs) und das was du in 
die Anschaffung von so ein Bord steckst das hast du bereits nach 1 Jahr 
an Strom kosten gespart.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich Persönlich finde das Lighttpd mit seiner CGI
>und FastCGI Schnittstelle, schneller aufzusetzen und leichter zu Warten
>ist. Außerdem läuft auf den Ding yahoo, scheint also auch was die
>Perfomens angeht nicht Grund verkehrt zu sein.
Das hört sich gut an, ich werde mal in diese Richtung weiter suchen.

Wenn das mit dem CGI funktioniert, bleibt immer noch die Frage mit mit 
einer geeigneten Oberfläche im Webbrowser. Ein HTML-Scribt ist ja eher 
etwas statisches und muss, damit es seinen Inhalt ändert, nachgeladen 
werden. Soweit ich weiß, kann man im Scribt einen Timer setzen, damit 
sich dieses automatisch nachlädt. Leider geht das nur im 
Sekundenbereich, so dass keine flüssige Bedienung möglich ist.

>Außerdem solltest du dir die Frage stellen, was macht der PC sonst noch
?
Es muss leider der PC sein, dieser existiert schon.

@bingo
>Da führt Dich das hier sicher schneller zum Ziel ...
>http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetz...
>http://shop.ulrichradig.de/Projekte/AVR-Webmodul/

Nein, es führt überhaupt nicht zu meinem Ziel, Besserwisser.

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder:

XPORT und Port-Weiterleitung im Router.
Der XPORT läuft direkt am RS232.

VG,
/th.

Autor: Tommy S. (tommys)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> Ein HTML-Scribt ist ja eher etwas statisches und muss,
> damit es seinen Inhalt ändert, nachgeladen werden.

Stichwort: AJAX, das loest Deine Probleme.

Ich habe so etwas aehnliches schonmal gebaut, um eine Webcam aus dem 
Browser raus zu drehen (Webserver -> Microcontroller -> Schrittmotor), 
das war relativ simpel. Die Einarbeitung in AJAX ist nicht wahnsinnig 
schwierig, die serverseitigen Scripts mit CGI sehr einfach - also alles 
in allem kein Problem.

Viele Gruesse,
TommyS

Autor: bingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@chris:

Dein 1. Post sah so aus, als ob Du nur den µC ans Netz bringen willst, 
dass der PC ein "muss" ist, ging daraus nicht hervor. Da ist ein kleiner 
Platinen-Webserver einfacher und stromsparender als ein PC dazwischen.

Daraus gleich einen "Besserwisser" zu machen, ist schlichtweg unhöflich.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kannst du ganz einfach mit COM2TCP machen.

http://www.astrogeeks.com/AstroGeeks/COM2TCP/download.html

Damit kannst du ganze einfach eine Serielle Verbindung ueber das 
Internet fortfuehren.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Stichwort: AJAX, das loest Deine Probleme.

Hmm, sieht so aus, als wenn AJAX dafür geeignet wäre. Allerdings scheint 
mir der Einarbeitungsaufwand nicht ganz so klein:
http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29

>http://www.astrogeeks.com/AstroGeeks/COM2TCP/download.html
Das sieht auch nicht schlecht aus, hat aber leider auf beiden Seiten 
eine RS232. Es ist auch "closed source", was mir bei WEB-Sachen immer 
das ungute Gefühl des "Heimtelefonierens" gibt.

Kennt jemand "processing" ?
Das lässt sich ziemlich einfach programmieren, z.B. Datenserver:
http://www.processing.org/reference/libraries/net/...

Die serielle Schnittstelle ist auch einfach anzusprechen:
http://processing.org/reference/libraries/serial/Serial.html

Mir scheint fast, das könnte der einfachste Weg sein.

Autor: Stulle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ein_bisher_nicht_beteiligter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PHP geht genauso für sowas.

Autor: Rolf Magnus (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Mein Ziel wäre eher in folgender Art: Ein Webserver auf dem PC stellt
> ein Serielles Terminal in einem Browser dar.

Das sollte z.B. mit shellinabox sehr einfach sein.
http://code.google.com/p/shellinabox/

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Eure Antworten, da ist ja doch einiges an Material 
zusammen gekommen, was ich mir noch genauer ansehen muss.

@bingo
>Da führt Dich das hier sicher schneller zum Ziel ...
>Daraus gleich einen "Besserwisser" zu machen, ist schlichtweg unhöflich.
Entschuldigung. Ich war einfach etwas verärgert, weil ich mir doch extra 
so Mühe gegeben habe, die Frage möglichst genau zu formulieren.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich weiß dass der thread schon sehr alt ist, aber ich habe eine 
ziemlich einfache lösung
Wie bereits erwähnt gibt es Ja TCP2COM, was nur auf dem server pc 
installiert sein und ausgeführt werden muss.
Auf dem Client pc kann man sich dann mithilfe einer Portfreigabe/Im 
Lokalen Netzwerk/über hamachi/irgendwie anders mit Einem Ganz normalen 
TCP client verbinden und die Befehle eingeben, etc jenachdem
MfG, Oliver

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.