GPIO über PHP steuern

  • Hallo liebe Community

    Ich bin gerade dabei meine Smart Home ein Update zu verpassen.

    Dabei wollte ich die GPIO mit PIGPIO steuern. Funktioniert auch soweit. Nun kam mir die Idee PIGPIO über den Webserver in PHP direkt anzusteuern.

    Leider konnte ich nichts finden wie man die darüber ansteuert.

    Ist das überhaupt Möglich, oder muss ich über Python etc gehen.

    Wenn das mit PHP geht kann mir dann einer ein Beispiel Skript schreiben ?

  • Ist das überhaupt Möglich, oder muss ich über Python etc gehen.

    Mit PHP direkt ist das IMHO nicht möglich, wobei ich mir in Verbindung mit PIGPIO nicht sicher bin. Du wirst ein Skript anschubsen müssen, z.B.:

    PHP
    <?php
    
    $output = shell_exec("/Pfad/zum/Skript.py <ggf. Argumente>");
    
    // evtl. die Ausgabe anzeigen lassen
    echo $output;
    
    ?>
  • Es wird sicherlich noch andere geben.

    Wenn man eine Sprache erlernt, versucht man möglichst diese Sprache vollumfänglich zu nutzen.

    In diesem speziellen Fall wäre es ein Socket, über den mit pigpiod kommuniziert wird.

    Es hat auch den Vorteil, dass der pigpiod nur das macht, wofür er programmiert worden ist und wozu er die Berechtigungen hat.

    Er kann z.B. nicht das Netzwerk steuern oder den Rechner herunterfahren.

    Webserver und pigpiod haben unterschiedliche Benutzer. Das trägt auch noch mal zur Sicherheit bei.

    pigpio muss z.B. direkt auf den Speicherbereich des GPIO zugreifen können. Der Webserver braucht das aber nicht.

  • Mit PHP direkt ist das IMHO nicht möglich, wobei ich mir in Verbindung mit PIGPIO nicht sicher bin. Du wirst ein Skript anschubsen müssen, z.B.:

    PHP
    <?php
    
    $output = shell_exec("/Pfad/zum/Skript.py <ggf. Argumente>");
    
    // evtl. die Ausgabe anzeigen lassen
    echo $output;
    
    ?>

    So ungefähr habe ich das bis jetzt am laufen. Habe nur gedacht das man dadurch den Umweg über ein Skript sparen könnte. Dann werde ich das so lassen wie ich es bis jetzt habe. Da weiß ich, das es funktioniert.

    Trotz alledem Danke für eure Infos

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!