Forum: PC-Programmierung HTML-Seite erstellen für Zugriff auf eigene Hardware (RS232/USB)


von Newby (Gast)


Lesenswert?

Hallo,

ich habe ein Problem, dass wohl viele "Hardwerker" haben:

Ich habe eine eigene HW gebaut mit RS232(bzw. USB) Interface zum PC.
Die Steuerung erfolgt derzeit über ein Terminalprogramm mit propritären 
Befehlen. Also eine Art Kommandozeilenbedienung.

Nun möchte ich aber die Befehle, Werte etc. komfortabler über eine 
Webseite steuern, habe von des (Web/PC-)Programmierung aber nur wenig 
Ahnung. Meine Controller-SW schreibe ich in ASM und C.

Also im wesentlichen geht es darum Werte darzustellen die per 
RS232/USB-String ankommen und Werte die man in ein Feld eintragen kann, 
dann per Mausklick und bestimmtem Befehl versenden. Später dann noch 
irgendwelche grafischen Gimmiks (Temperaturkurven etc.)- das ist aber 
erst mal nicht das Thema.

Kennt irgendjemand ein gutes Tool oder Beispiele die einem Anfänger da 
schnell zu Ergebnissen kommen lassen?
Idealerweise natürlich Freeware-Tools.

Für jeden Tip / Link wäre ich dankbar.

Über die Forumssuche war ich nicht erfolgreich.

von Vlad T. (vlad_tepesch)


Lesenswert?

XAMMP als webserver
Perl oder PHP als Programmiersprache.

von Newby (Gast)


Lesenswert?

@Vlad:
Irgendwelche links / Seiten als Einstiegshilfe zum schnellen erlernen?
Vielleicht eine Beispielseite mit ählichem Inhalt um sich das mal 
anzuschauen?

von usuru (Gast)


Lesenswert?

Im Grunde genommen brauchst Du einen kleine webserver. Die gibt es 
haufenweise, auch gut dokumentiert 
http://www.mikrocontroller.net/articles/Miniwebserver vielleicht kann so 
ein Server Deine Hardware steuern.

von Vlad T. (vlad_tepesch)


Lesenswert?

er sucht ja keinen Server für seine Hardware, sondern ein PC-Programm.

Aber der Apache ist vielleicht ein bisschen dick.
man findet doch bestimmt was kleines, was cgi kann.
den Rest erledigt man in Perl

von usuru (Gast)


Lesenswert?

Ich meinte das so, dass er keine neue Hardware baut - die hat er ja 
schon - sondern dass er die Software auf seine Hardware anpasst. Hab 
mich da etwas unklar ausgedrückt.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Vlad Tepesch schrieb:
> Aber der Apache ist vielleicht ein bisschen dick

Ist zwar im PC Umfeld sowas von egal, da sollte man sich überlegen ob 
man ein "dickes" (weswegen eigentlich? Apache ist recht modular...) 
Paket holt was viele kennen oder irgendwas schlankes wo man Mühevoll 
sich die Infos zusammen suchen muß. Etwas das von sich behauptet sehr 
schlank zu sein und auch PHP unterstützt ist z.B. 
http://www.lighttpd.net/

von Vlad T. (vlad_tepesch)


Lesenswert?

usuru schrieb:
> Ich meinte das so, dass er keine neue Hardware baut - die hat er ja
> schon - sondern dass er die Software auf seine Hardware anpasst. Hab
> mich da etwas unklar ausgedrückt.

er hat ja aber eine Serielle Verbingung, kein Ethernet.

Läubi .. schrieb:
> Vlad Tepesch schrieb:
>> Aber der Apache ist vielleicht ein bisschen dick
>
> Ist zwar im PC Umfeld sowas von egal, da sollte man sich überlegen ob
> man ein "dickes" (weswegen eigentlich? Apache ist recht modular...)

Ich bin davon ausgegangen, dass er keine Erfahrungen hat.
da ist der Apache schon ein Monster, was Konfiguration an geht.
Da ist eine kleine Fire-And-Forget-Lösung besser, die man startet und 
die dann einfach alle Dokumenten eines Verzeichnisses ausliefert, ohne, 
dass erst 1000 Configeinträge angepasst und Rechte gesetzt werden 
müssen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

DU lädst dir XAMP (oder Apache Webserver alleine) runter, folgst dem 
Setup und kopierts dann die gewünschte Datei in den ordner htdocs da muß 
man nichts konfigurieren oder rechte setzen. Das schlägst du doch selbst 
im ersten Post vor??

Und wem das schon zu viel ist der Scheitert garantiert an:
Newby schrieb:
> Nun möchte ich aber die Befehle, Werte etc. komfortabler über eine
> Webseite steuern, habe von des (Web/PC-)Programmierung aber nur wenig
> Ahnung.

und sollte erst recht nicht einen Port ggf. ins Weltweite Netz öffnen...

von Newby (Gast)


Lesenswert?

@Vlad,

ja du hast mich 100% verstanden -> endlich mal jemand ;-)

Mein serielles Protokoll kann ich easy anpassen, das ist kein Problem.
Nur auf der PC-Seite möchte ich es einfach haben, nach dem Motto:

Ein Button drücken auf PC-Seite und der schickt einen propritären Befehl 
an meine HW, die dann wiederum eine Antwort liefert die in einem Feld 
angezeigt wird:

PC: Befehl "Schicke mir Termperaturwert von Sensor_1"
MC: Antwort "Sensor_1  : 25,4°C"

Irgendwelche öffentliche Seiten/Beispiele?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Newby schrieb:
> Irgendwelche öffentliche Seiten/Beispiele?
Für die Babybrei Lösung muss man i.A. zahlen, für alles andere gilt: 
Selbst nachdenken.
Du hast doch schon die "Lösung" (dein Terminal)

Newby schrieb:
> PC: Befehl "Schicke mir Termperaturwert von Sensor_1"
> MC: Antwort "Sensor_1  : 25,4°C"

Du musst nur dies jetzt in eine Form bringen das es als Website 
ausgeliefert wird, dafür wirst du nur nix vorgekautes finden!
Und da du nicht mal sagst ob du unter Linux oder Win, Mac os oder 
wasweißich arbeitest ist es auch schwer dir Tipps zu geben.

von Vlad T. (vlad_tepesch)


Lesenswert?

Läubi .. schrieb:
> DU lädst dir XAMP (oder Apache Webserver alleine) runter, folgst dem
> Setup und kopierts dann die gewünschte Datei in den ordner htdocs da muß
> man nichts konfigurieren oder rechte setzen. Das schlägst du doch selbst
> im ersten Post vor??

genau, wenn ich mich recht entsinne, war es als ich damals den XAMP 
aufgesetzt hatte, nicht ganz so einfach mit den Perl Skripten zum laufen 
bekommen. da mussten noch Ordner definiert werden, in denen die 
Ausführung von cgi-Skripten erlaubt ist.
Kann mich aber auch täuschen, ist schon 6-7 Jahre her ;)

von Newby (Gast)


Lesenswert?

@Laeubi:
Windows - vorzugsweise!

>Du musst nur dies jetzt in eine Form bringen das es als Website
>ausgeliefert wird, dafür wirst du nur nix vorgekautes finden!
>Und da du nicht mal sagst ob du unter Linux oder Win, Mac os oder
>wasweißich arbeitest ist es auch schwer dir Tipps zu geben.

Entschuldige mein "Unwissen" an der Ecke.
Aber wäre mir alles klar, hätte ich auch keinen Eintrag im Forum 
generiert ;-)

Andersrum:
Könnte ich über meine Schnittstelle einfach eine Art html-Protokoll 
ausgeben und mir das dann im Webbrowser anzeigen lassen?
Oder benötige ich dann einen Server bzw. Ethernet?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Es gibt von Lantronix passende Konverter RS232 auf HTML für die welche 
es sich einfach machen wollen. Günstig oder gar Kostenlos ist das aber 
nicht.
http://www.lantronix.com/device-networking/embedded-device-servers/xport.html
Dann kannst du ein HTTP Protokoll nutzen und darüber ein *HTML 
Dokument* ausgeben...

von Patrick (helipaddi)


Lesenswert?

Nimm dir Windows mit IIS und .net 2.0, da kannst du dann ASP.net drauf 
laufen lassen. Zur Entwicklung dann Visual Studio Web Developer 2010. 
Hat den Vorteil, dass du via .net Framework sofort auf den COM Port 
zugreiffen kannst und du die einzelnen Webpages einfach "zusammen 
klickst". Ausserdem bietet das Visual Studio eine Funktion die so 
enstandene Homepage sofort auf deinen IIS zu laden.
Ist nach meiner Erfahrung eine sehr schnelle und komfortable Lösung, da 
du z.B. mit PHP keinen direkten COM-Port Zugriff hast.

Steuere über eine so entwickelte WEB-Oberfläche mehrere über RS232 
verbundene RGB Leds an, funktioniert super!

von Vlad T. (vlad_tepesch)


Lesenswert?

Newby schrieb:
> Andersrum:
> Könnte ich über meine Schnittstelle einfach eine Art html-Protokoll
> ausgeben und mir das dann im Webbrowser anzeigen lassen?
> Oder benötige ich dann einen Server bzw. Ethernet?

das macht nicht viel Sinn, wenn du nicht auch die Anfragen in der Form 
behandeln willst - und das willst du nicht.
da du (vorerst) sowieso einen PC für die Umsetzung Seriell<->Netzwerk 
brauchst, kannst du die Übersetzung htmlsprech<->dein Protokoll auch da 
machen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Vlad Tepesch schrieb:
> da du (vorerst) sowieso einen PC für die Umsetzung Seriell<->Netzwerk
Nein, siehe XPORT.
Dieser hat auch einen Modus in welchem man mittels einem Java Applet 
welches einfach einen Stream öffnet auf welchem die Serielle Verbindung 
umgeleitet wird wenn man nun partou sich die paar Zeilen Code für ein 
http Protokoll sparen will.

Diesen "Modus" könnte man auch nutzen um das ganze einfach in PHP 
mittels fopen als Datei zu öffnen.

von Newby (Gast)


Lesenswert?

Ähhhmmm:

IIS sagt mir leider auch nichts.

Visaul Studio hatte ich testweise schon am Laufen; auch eine Verbindung 
über COM.Port hatte ich hin bekommen; dann war mir aber der weitere 
Aufwand zu groß, deshalb suche ich jetzt einen einfachere Lösung. 
Vielleicht gibts die auch nicht!

von Patrick (helipaddi)


Lesenswert?

IIS: Internet Information Service, ist der Server welcher die ASP.net 
Seiten ausliefert.

Eigentlich ist das ganze mit Visual Studio schon sehr einfach...
1. Neue ASPX Seite erstellen
2. Button aus der Toolbox auf die Seite ziehen
3. Button doppelklicken
4. In die enstandene Methode eine Instanz von Serialport erstellen.
5. Alle benötigten Parameter (Baudrate usw.) definieren
6. Mit WriteLine den gewünschten Text senden.

Fertig!

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Newby schrieb:
> Vielleicht gibts die auch nicht!
Jetzt schon ;)

Ich habe mal eine kleine Demo auf Java Basis mit Jetty und der RXTX Lib 
gebaut:
http://laeubi-soft.de/downloads/tools/serieller-webserver.html

Die Demo sendet den eingegeben String an der Seriellen Schnittstelle 
raus und gibt die Antwort wieder aus.
Wichtig! Der Controller muss antworten mit einem \n terminiertem String 
auch wenn er das Kommando nicht kennt!
Die Version enthält nur die DLL für Windows für andere Betriebssysteme 
muß die passende nativeLib von RXTX genutzt werden.

Ich konnte das bisher nicht vollständig testen, da ich kein Serielles 
Gerät hab mit dem sich das testen ließe...
... ein Feedback wäre also nicht schlecht.

von asdfghjklöä# (Gast)


Lesenswert?

wie wärs einfach mit ein bisschen C(++)?
liefert ein schlankes programm, das genau das kann was du willst. und 
das ganze läuft dann auch noch ohne zig-mb lufzeitumgebung.

und wenn sorgfältig programmiert kann man (bis auf kleine teile) das 
ganze auf ein anderes os portieren...

von Purzel H. (hacky)


Lesenswert?

Ich hab mal genau so einen Server auf dem Mega644 controller gebaut. Die 
Seiten wurden hochgeladen und waren auf einem externen Flash 
gespeichert. Daher ist es machbar. Aber nicht einfach oder kostenlos. 
Wir wollten dann ein devkit dazu verkloppen. Die Nachfrage war aber 
bescheiden.

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.