kostenloser Webspace werbefrei: lima-city


Relaiskarte über Webinterface ansteuern (PHP + Linux)

lima-cityForumHeim-PCBetriebssysteme

  1. Autor dieses Themas

    freewareecke

    Kostenloser Webspace von freewareecke

    freewareecke hat kostenlosen Webspace.

    Hey Leute,

    kann mir jemand eine Art Anleitung oder Hilfe geben?

    also es geht darum eine Relaiskarte per HP an zu steuern, welche per Serielle Schnittstelle über ein kleines Programm aufgerufen wird.

    es geht um folgende Relaiskarte:
    http://www.conrad.de/goto.php?artikel=190989

    und dafür gibts beim hersteller ein bereits fertiges c programm.

    mein Problem ist, wie kann ich dieses über eine HP in PHP / HTML ansteuern, vorallem weil ich ja an sich auch die rechte brauche für die com schnittstelle.

    Ich benutze an sich Suse Linux 10.3

    ich hoffe jemand kann mir möglichst viel helfen. den ich hab schon einige zeit damit verbracht um das zu relisieren. und ich möchte nicht über ssh steuern sondern über eine richtige hp, diese würde eh nur im netzwerk ersma laufen und was weiter kommt wird man sehen.



    Michael

    edit fatfox: Link klickbar gemacht

    Beitrag zuletzt geändert: 23.10.2009 22:17:02 von fatfox
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also mit PHP würde ich das nicht machen...

    Ich würde ein cgi Script verwenden und ne geeignetere Programmiersprache auswählen, C oder Python ev.

    Dann musst du mit
    chmod xxx /dev/ttysN x und N sind durch sinnige Werte zu ersetzen
    den Zugriff auf die serielle Schnittstelle erlauben oder den Benutzer der dein Script ausführt auf andere Art und Weise den Zugriff zur Hardware gestatten z.B. indem der cgi Prozess in eine Gruppe kommt die Zugriff auf /dev/ttysN bekommt.

    Ach ja, sowas macht man natürlich nur lokal, die ansonsten kann das recht gefährlich sein.

    Beitrag zuletzt geändert: 23.10.2009 22:06:39 von fatfox
  4. Autor dieses Themas

    freewareecke

    Kostenloser Webspace von freewareecke

    freewareecke hat kostenlosen Webspace.

    wenn du mir eine art hp in cgi machst wo paar links und so sind gut. den ich muss ja lediglich das schon erwähnte fertige C Programm mit parameter aufruft. also diese funktioniert tadellos. also brauch ich mich um die eigentliche ansteuerung der karte ja keine gedanken mehr machen. nur um das aufrufen der datei mit parametern.

    und an sich würde ich php vorziehen weil mit php komm ich soweit klar und mit cgi habe ich bislang nie was zu tun gehabt. und wie kompliziert das ist weiß ich ja auch nicht wirklich.


    Michael

    PS:

    Also die HP soll lediglich paar button haben wo ich 16 Relais ein und ausschalten kann. also 32 butten im ganzen da ich 2 relaiskarten habe brauch ich so viele dinger.

    Beitrag zuletzt geändert: 23.10.2009 22:12:40 von freewareecke
  5. Aso das ist schon fertig, Konserven wie langweilig *g*

    Na dann guck halt mal das du in PHP ne funktion zum ausführenvon weiteren Programmen findest...
    damit ev. http://php.net/manual/en/function.exec.php ich kann kein PHP aber das führt wohl Batch Scripte aus, damit könnte man dann Rechte setzen, das Steuerscript starten und dann Rechte wieder zurück setzen...
  6. Autor dieses Themas

    freewareecke

    Kostenloser Webspace von freewareecke

    freewareecke hat kostenlosen Webspace.

    naja wieso sollte ich mir die arbeit machen und ein neues programm bauen wenns was fertiges gibt und wenn du meinst, dass man per cgi solche butten sachen einfacher machen kann kannst mir dazu helfen? also wenn es einfacher wäre. also button erstellen und so.

    Michael
  7. freewareecke schrieb: naja wieso sollte ich mir die arbeit machen und ein neues programm bauen wenns was fertiges gibt


    Du kannst von mir aus machen was du willst, das war ein Missverständnis, ich dachte zuerst die Ansteuerung der Platine müsste auch noch implementiert werden.

    Ich habe dir in meinem vorherigen Beitrag bereits einen Link gepostet der dir helfen sollte das Ganze mit PHP umzusetzen (Funktion excec()), zusätzlich sei dir noch die Funktion system() empfohlen die wohl ähnliches leistet, worin die Unterschiede bestehen musst du selbst herausfinden.

    Ich habe dir auch gesagt das du die Rechte für den verwendeten seriellen Anschluss entsprechend anpassen musst, in Unix und somit auch in Linux ist alles eine Datei, somit ist auch der Serielle Port nur eine Datei, nämlich eine sogenannte Gerätedatei und die liegen in /dev.

    Serielle Anschlüsse sind historisch für Fernschreiber mit 20mA Schnittelle vorgesehen gewesen und heißten deswegen tty (tele typewriter) später wurde das dann erweitert und die Benennung der seriellen Ports wurde zu ttyS<n> verändert. (wobei <n> eine positive ganze Zahl, inklusive der 0 ist)

    Der erste serielle Port an einem PC würde unter Windows also COM1 heißen und unter Linux /dev/ttyS0, damit man Zugriff auf den Port hat benötigt man allerdings Schreibrechte auf die entsprechende Gerätedatei das kann man nun auf mehreren Wegen bewerkstelligen (die ich auch bereits genannt habe)

    a) man setzt die Reche einfach entsprechend mit chmod so das jeder den port beschreiben darf, das ist aber nicht ungefährlich kann zum testen aber benutzt werden.

    b) man kreiert eine Gruppe die Zugriff auf den Port hat, (bei mir ist das die Gruppe "dialout") dann muss der entsprechende Prozess der die Ansteuerung durchführt entsprechend als Angehöriger der Gruppe markiert werden, und hier wird es knifflig: Du musst also herausfinden unter welcher Benutzerkennung dein Prozess über den Webserver gestartet wird und dann den entsprechenden Benutzer zu "dialout" hinzufügen.

    Noch ein paar Sachen:

    1) Das ausführen von lokalen Befehlen über eine Weboberfläche ist ein Sicherheitsrisiko, du musst dir also gut überlegen wie du das ganze absicherst.

    2) Benötigt man natürlich entsprechenden Root Zugriff und Hardwarezugriff auf den Server der das ganze hosten soll, is ja logisch.

    3) Wird bei Benutzung einer Gerätedatei diese gesperrt (/var/lock) man muss diese Sperre wieder aufheben wenn man fertig mit seinem Zugriff ist, normalerweise wird das entsprechend vom System erledigt wenn das zugreifende Programm terminiert, stelle also sicher das sich das Steuerscript sauber beendet

    Beitrag zuletzt geändert: 24.10.2009 10:06:56 von fatfox
  8. Autor dieses Themas

    freewareecke

    Kostenloser Webspace von freewareecke

    freewareecke hat kostenlosen Webspace.

    ja gut danke erstmal soweit, wenns noch weitere tipps gibt immer her damit.

    und wenn ich auf disen einen seriellen port das schreibrecht setze für den apache benutzer ist doch nix groß bei weil höchstens die relaiskarten kann er ansteuern wenn jemand rein hackt und da ich da höchstens sowas wie eine lampe oder so drüber ansteuern will hält es sich im rahmen was passieren könnte. den ich öffne ja nur die serielle schnittstelle.

    und das ganze des logins soll mittels php von statten gehen also mit einer db im hintergrund und ein normalen login. da ich mit htacess im eigenen system noch nicht wirklich was angefangen habe und wenn man als pw nicht 1234 sondern mit allem was die tastatur her gibt für ein pw nimmt sollte es ja einiger maßen sicher sein, selbst wenn der server mal online sein sollte.

    Michael
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!