GPIO-out-Status Abfrage per PHP

  • Hi!


    ich habe per PHP erfolgreich eine Steuerung für mein PicoBorg geschrieben:


    Vielleicht nicht die sauberste und speichersparendste Möglichkeit, aber sie funktioniert. nun fehlt mir aber noch der "Rückkanal" - sprich in der PHP-Seite soll angezeigt werden, ob (zum Beispiel) der GPIO-out-Port 4 high oder low ist (am besten durch ein kleines rundes Icon, welches die Farbe wechselt)...


    Ich hoffe ihr könnt mir helfen!


    MfG Pascal
    [hr]
    Okay - mittlerweile habe ich es selber gelöst...:


    PHP
    <?php $output = shell_exec(' gpio -g read 4');  echo "$output"; ?>


    Das gibt zwar "nur" eine 1 oder 0 aus, das reicht aber vorerst. Das mit dem Icon kann mir ja vllt jmd erklären?

    Edited once, last by pascalts ().

  • Was willst du denn erklärt haben? Jetzt wo du eine 1 oder 0 hast kannst du doch darauf basierend ein Bild anzeigen lassen.

    Code
    if $output == 1{
    Bild1
    else
    Bild2
    }


    Entschuldige bitte das ich mich nicht exakt an die php syntax gehalten habe ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().


  • Was willst du denn erklärt haben? Jetzt wo du eine 1 oder 0 hast kannst du doch darauf basierend ein Bild anzeigen lassen.

    Code
    if $output == 1{
    Bild1
    else
    Bild2
    }


    Entschuldige bitte das ich mich nicht exakt an die php syntax gehalten habe ;)


    Sorry, bin ein totaler PHP-Anfänger. Eben die genau PHP-Syntax brauche ich...


  • Was willst du denn erklärt haben? Jetzt wo du eine 1 oder 0 hast kannst du doch darauf basierend ein Bild anzeigen lassen.

    Code
    if $output == 1{
    Bild1
    else
    Bild2
    }


    Entschuldige bitte das ich mich nicht exakt an die php syntax gehalten habe ;)


    Sorry, bin ein totaler PHP-Anfänger. Eben die genaue PHP-Syntax brauche ich...

    Edited once, last by pascalts ().

  • als Php anfänger gleich an ISSET() gewagt? :)

    PHP
    <?php5
    if ($output == 1) {
    <img src="bildon.png" alt="on" height="42" width="42">
    }
    else
    {
    <img src="bildoff.png" alt="off" height="42" width="42">
    }
    ?>

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.


  • als Php anfänger gleich an ISSET() gewagt? :)

    PHP
    <?php5
    if ($output == 1) {
    <img src="bildon.png" alt="on" height="42" width="42">
    }
    else
    {
    <img src="bildoff.png" alt="off" height="42" width="42">
    }
    ?>


    sorry, das gibt bei mir nur nen syntax error... (Dreamweaver CS6). habe es nun so gelöst:


    PHP
    <?php
    ...
    if ($outputgpio4 == 1) { $color = "green"; }
    if ($outputgpio4 == 0) { $color = "red"; }
    ...
    ?>


    und dann später im HTML:

    PHP
    <img src="img/<?php echo "$color"; ?>.png"></p>


    [hr]
    Und so sieht das ganze im Endeffekt nun aus:


    [Blocked Image: http://www.image-share.eu/image/345794-raspberryg.jpeg]
    Nächster Schritt: ein / aus und status verschmelzen zu einem Button

    Edited once, last by pascalts ().

  • Deswegen gibt es ja debugger, ich vergess grundsätzlich die ";" in php(und C und Bash und...) ;).
    Wenn du eine Lösung gefunden hast, mit der du Leben kannst ist ja alles gut. :)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.


  • Guck mal nach webiopi, das kann dir vielleicht helfen. Ist genau das was du suchst von den Funktionen her, kannst du ja vllt. was abgucken...


    Also ich hatte zuvor WebiOpi drauf. War aber damit nicht glücklich, weil ich es nicht so stark an meine bedürfnisse anpassen konnte, wie ich gern wollte. Deswegen ist ein eigenes projekt immer besser ;-)


    PS: Mittlerweile habe ich das projekt auf GitHub gestellt: http://pascaltippelt.github.io/raspberrypi-gpio-picoborg/

  • (...)


    sorry, das gibt bei mir nur nen syntax error... (Dreamweaver CS6). habe es nun so gelöst:


    PHP
    <?php
    ...
    if ($outputgpio4 == 1) { $color = "green"; }
    if ($outputgpio4 == 0) { $color = "red"; }
    ...
    ?>


    und dann später im HTML:

    PHP
    <img src="img/<?php echo "$color"; ?>.png"></p>


    [hr]
    Und so sieht das ganze im Endeffekt nun aus:


    (...)
    [/quote]


    Ich habe da irgendwie einen Bug. Bei mird nur ein Bildplatzhalter mit ".png">" angezeigt. Ja, die entsprechenden Bilder sind vorhanden und der Pfad "Webseitenordner" -> "Img" ist auch vorhanden, alle anderen Bilder werden ja angezeigt.
    Wo liegt der fehler?

    Edited once, last by Koraun ().

  • Klingt danach als ob die Variable $color leer ist. Wie sieht der HTML-Code aus? Steht nur img='.png' drin? Das wuerde den Verdacht ehrhaerten.


  • Die Bilder 01an und 01aus werden angezeigt und das verlinkte script funzt auch (Relais schalten).

    Edited once, last by Koraun ().

  • Das ist nicht der HTML-Code, das ist der PHP-Code. Was kommt im BROWSER an ist die Frage.

  • Oha. Wie man sieht ist das PHP inline nicht expandiert worden. Das ist ungewoehnlich. Hast du den Code per Copy & Paste aus einem Browser-Fenster geholt? Da koennte dann zB das Leerzeichen ein "non breakable space" sein, und damit ist das nicht gueltig - sieht aber gleich aus.


    Ich wuerde mal alles im src-Attribut loeschen, und von Hand in einem Editor noch mal neu schreiben. Mal schauen, ob das hilft.

  • nope, hilft nicht. Ich habe es einmal im Text-Editor vom Raspian neu geschrieben, danach über die Konsole. Beides brachte das gleiche Ergebnis.

  • Ja, ich hab's auch gerade selber noch mal gesehen - da war ich zu fokussiert auf dein IMG-Tag. Aber es wird *garkein* PHP ausgefuehrt. Das ist also nicht richtig aufgesetzt, du musst erstmal sicherstellen, dass PHP-Seiten funktionieren. Da hilft die Suchfunktion oder Google.

  • So, wahrscheinlich werden mich sämtliche Forenmitglieder plus Familien- und Freundeskreis verprügeln... ich hab den Fehler gefunden. Die Datei war nicht als *.php sondern als *.html gespeichert. Nachdem ich dies korrigierte war ich einen großen Schritt weiter.

    Edited once, last by Koraun ().