Hallo, erst mal hoffe ich, mit meinem Problem im richtigen Forum gelandet zu sein. Meine Problemstellung ist folgende: ich möchte eine HTML Seite erstellen, die auf meinem Homeserver liegt und mit Apache ausgeliefert wird. Auf der Seite möchte ich 1.: Buttons haben, die mir beim anklicken ein bestimmtes Byte an die Serielle Schnittstelle (Com) senden, 2.: Werte, welche von der seriellen Schnittstelle kommen anzeigen. Hintrgrund : Die Seite will ich von Rechnern im Netzwerk, aber auch von außen, evtl. mit dem Handy abrufen können um damit Daten meiner Heizungssteuerung und Heimautomatisierung anzuzeigen und Befehle an diese senden zu können. Die serielle Schnittstelle kann eine echte Com-Schnittstelle sein oder an einem USB-Adapter hängen, da habe ich die freie Auswahl. Die Daten werden dann von einem ATMega ausgewertet beziehungsweise gesendet. Wenn es nötig ist, kann der µC auch die Daten auf einen Befehl vom Server senden (Senden nach Empfang eines bestimmten Bytes). Ich habe geringfügig Ahnung von HTML, aber leider überhaupt keinen Schimmer was Scriptsprachen angeht. Deshalb möchte ich mir zuerst einmal einen Überblick verschaffen, was ich überhaupt für dieses Projekt benötige. Ich kann auf dem Homeserver der unter Linux läuft, installieren, was dafür benötigt wird (PHP, Perl?), weiß aber nicht, ob ich damit weit genug bin, um irgend wie auf die serielle Schnittstelle zuzugreifen und wenn ja, wie ich das programmieren muß weiß ich nicht. den µC kann ich programmieren, aber was die PC-Seite angeht habe ich keine große Ahnung, was ich brauche und wie ich es machen muß. Frank
Benutz doch mal die Suche, es gibt sogar nen Artikel im Wiki Ich habe die Suchwörter "php com" verwendet
also buttons sind kein problem
1 | >input type="button" name="b1" value="Licht" onclick=""> |
einfach mal genauer google nach html button und javascript. Was mir eher zu denken gibt, ist das mit dem bytes senden. Das geht soweit ich weiß nicht mit JS. Aber schua mal hier: http://thomaspfeifer.net/ Der hat sich einen Webserver mit nem AVR gebaut und kann auch übers Handy, PC drauf zugreifen und steuern. Wie das PC-Seitig gemacht wurde keine Ahnung. Einfach mal schauen.
Wenn man es richtig machen will, sollte man eine im Hintergrund laufende Anwendung schreiben die sich nur im die COM kümmernt. Aus der Scriptsprache kommuniziert man das mit dem Hintergrundprogramm. Das hat den Vorteil das die Schnittstelle nur von einer Anwendung ansgeprochen wird. Wenn es ein weniger unsauber sein soll, dann kan man einfach eine PERL CGI script schreiben was bei jedem request die com öffnen und wieder schliesst. Aber was ist wenn mal 2 Request gleichzeigt ankommen? Wenn es unter windows laufen soll, könnte man es mit einer ASP-Anwendung machen, die Anwendung selber läuft nur einmal aber für jeden Request wird einen neues Request objekt gebildet.
Julian O. schrieb: > Benutz doch mal die Suche, es gibt sogar nen Artikel im Wiki > > Ich habe die Suchwörter "php com" verwendet Den Artikel hab ich auch gefunden, aber wie binde ich das ganze in eine HTML Seite ein? Artikel ausdem Wiki > Man sollte sich in PHP auskennen und nötigenfalls in der Lage sein PHP > neu zu kompilieren Mit PHP kenne ich mich überhaupt nicht aus. Ich wusste bis eben nicht einmal, daß man das compilieren muß und bin davon ausgegangen, daß es eine Scriptsprache ist. cube schrieb: > Webserver mit nem AVR gebaut Es gibt ja einige Webserver mit Mikrocontrollern als Bausatz, fertig oder im Netz, aber eine solche Lösung wollte ich eigentlich vermeiden, da ich die Anzahl der Module/Geräte für meine Hausautomation minimieren wollte. Deshalb wollte ich den schon vorhandenen Server mit verwenden. Alles in allem suche ich eine einfache Lösung, die mir mit steiler Lern/Erfolgskurve zu einer Lösung verhilft, was nicht heißen soll, das ich nicht bereit wäre zu lernen, aber die Zusammenhänge PHP, HTML, Hardware sind mir wirklich überhaupt nicht klar. Natürlich könnte ich ein fertiges Script wie aus dem Beispiel im Wiki verwenden, aber trotzdem fehlt mir der Zusammenhang mit der HTML Seite, den ich nicht verstehe. Frank
Hey, also ich denke hier gibt es viele Wege - empfehlen würde ich dir folgenden: Zunächst musst du lernen mit PHP ein wenig umzugehen, da wirst du nicht großartig drum rum kommen. Das ist allerdings auch gar nicht so schwierig, da gibt es genug Anleitungen zu. Weiter solltest du dich mit Datenbank-Systemen beschäftigen. Stichwort MySQL. Jetzt setzt du dir einen kleinen Server, auf welchem dann ein Web- sowie Datenbank-Server läuft. Deine Web-Applikation kann dann einfach Daten in eine Tabelle schreiben (eine Art "Command"-Tabelle). Ein zweites Programm sollte dann im Hintergrund regelmäßig die Datenbank pollen - natürlich nicht zu häufig, damit nicht zu viel traffic entsteht (minütlich?). Findet dieses Programm dann Daten in der "COmmand"-Tabelle, kann es den entsprechenden Befehl abarbeiten. Eventuell kann man hier noch angeben, ob das Programm den Befehl ausgeführt hat und wann - oder ob eben etwas schief gegangen ist. Für diesen Fall brauchst du allerdings auch erfahrung in Anwendungsentwicklung, um eben dein "Üebrwachungsprogramm" zu erstellen. Vom Web direkt auf die Com-Schnittstelle zuzugreifen halte ich nicht für sinnvoll - es ist halt einfach nicht dafür gemacht. Viele Grüße, Kalka
Eine weitere, recht mächtige Möglichkeit wäre JSP (Java Server Pages). Beim Page-Request werden Teile der Web-Page (HTML-Code) dynamisch durch Java-Programme (Servlets) auf dem Web-Server erzeugt und and den Client geschickt. Es handelt sich dabei NICHT um Java-Script, das clientseitig ausgeführt wird. Der Vorteil bei einer derartigen Lösung ist, man braucht auf dem Client keinerlei Plugins, Addons, Softwarepakete... Auf dem Server benötigt man einen Web-Server, der JSP kann, z.B. den Open-Source-Server Tomcat. Von dort aus hat man dann Zugriff auf alle Resourcen, die von Java aus zugänglich sind, z.B. Datenbanken, Com-Schnittstellen, Dateissystem, ... Hier ein Tutorial dazu: http://www.jsptutorial.org/ @Kalka > Vom Web direkt auf die Com-Schnittstelle zuzugreifen halte ich nicht für > sinnvoll - es ist halt einfach nicht dafür gemacht. Das ist leider ziemlicher Unsinn. Mir fällt da spontan ein Com-Port-Server ein, dessen Oberfläche remote über Web-Clients dargestellt wird. Läuft bei uns in der Firma, um die Systemconsolen von mehreren OpenVMS-Servern remote verfügbar zu machen. Serverseitige Zugriffe auf irgendwelche Resourcen des Servers sind dank Web-/Applicationserver überhaupt kein Problem, man hat damit sämtliche Möglichkeiten, die solch eine Architektur bietet. Selbst clientseitige Zugriffe auf Peripherie sind machbar (was im vorliegenden Fall des TOs aber garnicht gefragt ist), dann allerdings nur über Plugins. Gruß Markus
Markus Volz schrieb: > @Kalka >> Vom Web direkt auf die Com-Schnittstelle zuzugreifen halte ich nicht für >> sinnvoll - es ist halt einfach nicht dafür gemacht. > > Das ist leider ziemlicher Unsinn. Mir fällt da spontan ein > Com-Port-Server ein, dessen Oberfläche remote über Web-Clients > dargestellt wird. Läuft bei uns in der Firma, um die Systemconsolen von > mehreren OpenVMS-Servern remote verfügbar zu machen. Das ist leider ziemlicher Unsinn. Auf dem Com-Port-Server ist ein Webserver (+ggfs Applikationsserver), der auf den Comport zugreift. Der Webbrowser kommuniziert über HTTP (vermutlich AJAX) mit diesem. Wär ja auch komisch, wenn man von jedem Webbrowser, der potenziel auf den Com-Port-Server zugreifen könnte, ein dediziertes RS232-Kabel ziehen müsste. Genau das braucht der TE auch... Web-Application-Server liest Infos vom Comport und sendet Komandos dort hin. Webbrowser kommuniziert über HTTP mit dem Server.
Hallo noch mal, ich habe mir die komplexität des Themas deutlich geringer vorgestellt als sie es anscheinend ist. Also werde ich das ganze wie es aussieht fallen lasen und notgedrungen doch auf einen der externen Webserver wie den Digi connect ME zurück greifen. Danke für alle die helfen wollten. Frank
Ich hab mal ein Jahr lang auf diesem Thema gearbeitet. Ein Webserver auf dem AVR, der mit einer seriellen Schnittstelle mit dem PC verbunden ist. Die Verbindung zu diesem PC kann auch ueber das Internet laufen. Und die serielle Verbindung zwischen PC und Webserver, benoetigt nicht unbedingt ein Kabel, wie RS232, RS422, RS485, sondern kann auch ueber Zigbee, oder Bluetooth laufen. Der Ethernet-Serial Dienst benoetigt nicht zwingend einen PC, das kann auch was anderes sein.
Frank B. schrieb: > Mit PHP kenne ich mich überhaupt nicht aus. Ich wusste bis eben nicht > einmal, daß man das compilieren muß und bin davon ausgegangen, daß es > eine Scriptsprache ist. PHP ist eine Scriptsprache, die man nicht kompilieren muss.
Nico22 schrieb: > PHP ist eine Scriptsprache, die man nicht kompilieren muss. PHP muß man sehr wohl kompilieren, es sei den man nutzt fertige Pakete. Und genau darauf bezog sich der Kommentar, da man PHP (welches im Source vorliegt) durchaus auch auf der Ebene "RS232 Tauglich" machen kann, nur muß man den PHP Interpreter dann natürlich neu kompilieren. "PHP-Skripte" werden meist nicht compiliert sondern interpretiert, aber es gibt durchaus "Optimizer" welche den Code zumindest in einen Zwischensprache "kompilieren"...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.