GPIO-out-Status Abfrage per PHP

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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

    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?

    Einmal editiert, zuletzt von pascalts (25. Juni 2013 um 22:09)

    • Offizieller Beitrag

    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 ;)


  • 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...

    Einmal editiert, zuletzt von pascalts (25. Juni 2013 um 22:27)


  • 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>



    Und so sieht das ganze im Endeffekt nun aus:

    345794-raspberryg.jpeg
    Nächster Schritt: ein / aus und status verschmelzen zu einem Button

    Einmal editiert, zuletzt von pascalts (25. Juni 2013 um 23:20)


  • 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>



    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?

    Einmal editiert, zuletzt von Koraun (20. Januar 2017 um 12:04)

  • 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).

    Einmal editiert, zuletzt von Koraun (20. Januar 2017 um 12:47)

  • 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.

  • 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.

    Einmal editiert, zuletzt von Koraun (22. Januar 2017 um 11:33)

Jetzt mitmachen!

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