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.
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.
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.
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.
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.
>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.
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
@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.
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/
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.
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