GPIO über Button AN/AUS

  • Hallo

    steige grade ins "Programmieren" ein und bräuchte Hilfe.

    Ich möchte ganz einfach über PHP eine LED steuern.

    Es soll einfach ein Button auf der Seite erscheinen welcher je nach GPIO value die LED an oder aus macht. Daneben soll die Value des GPIOS stehen ( 1 oder 0 )

    Habe folgendes geschirieben:[code=php]<?php
    $value23 = trim(@shell_exec("/usr/local/bin/gpio -g read 23"));
    echo $value23;

    function led23() {

    if ($value23 == 1){
    system ( "gpio -g mode 23 out" );
    system ( "gpio -g write 23 0" );
    } else {
    system ( "gpio -g mode 23 out" );
    system ( "gpio -g write 23 1" );
    }
    }


    ?>
    <input type="button" name="reset" value="reset" style="width:80px;" onclick="led23()"/>[/php]

    Das einzigste was klappt ist, dass ich den richtige Value dort stehen habe. Der Button macht nichts beim KLICK


    Nun meine Frage bzw. mein Problem:

    • Wenn ich die letzte Zeile in den PHP code packe, ist das Script fehlerhaft. Ist der Button nicht PHP?
    • Es passiert nichts beim Klick auf den Button
    • Die Funktion scheint fehlerhaft zu sein, denn wenn die Funktion ausführt, schaltet sich die led ein, auch die value ändert sich auf 1. Führe ich die Funktion nun nochmals aus muss sie doch ausschalten da value nun 1 ist, tut sie aber nicht, was mache ich falsch?


    Ich bitte euch um Vergebung für so dumme Fragen, beschäftige mich noch nicht so lange mit der Materie

    gruß
    Saixo

  • HTML gehört nicht zu PHP, man kann aber mittels HTML Werte an PHP übergeben und PHP Scripte ausführen lassen.
    Dazu muss auf Deinen RasPi ein Webserver laufen. Das PHP installiert ist und mit dem Webserver funktioniert sollte klar sein.
    Du lässt mit HTML eine Schaltfläche erstellen, die nichts macht. Erstmal gehört um einen Input ein Form-Tag. Der Formtag beinhaltet eine Aktion, mit der Aktion übergibst Du an ein PHP-Script einen Wert. Der Wert wird im PHP-Script verarbeitet und PHP generiert eine neue Anzeige. Such mal nach "GPIO schalten PHP HTML"! Bzw. damits nicht zu schwierig wird schau hier: http://www.raspberrypi-tutorials.de/projekte/gpio-…p-schalten.html

  • Hallo, danke für diese schnelle Antwort. Werde ich bei Gelegenheit nochmals testen.

    Eine frage hätte ich noch. Wenn ich die buttons färben will je nach zustand (an grün, aus rot) und das alles live aktualisieren soll ohne dass man dann immer zu der stelle zurückscrollen muss da man die ganze seite aktualisiert hat, müsste ich mich auch noch mit ajax auseinandersetzen seh ich das richtig?

  • raspiprojekt kann zwar für die von ihm verlinkte Seite nichts - aber eigentlich sollte er gesehen habe das die dortige Anleitung großer Mist ist und auch eine gewaltige Sicherheitslücke aktiviert... Also lasst davon blos die Finger!


    Wenn ich die letzte Zeile in den PHP code packe, ist das Script fehlerhaft. Ist der Button nicht PHP?

    Die letzte Zeile ist HTML-Code welche getrennt von PHP behandelt werden muss. PHP kann und kennt nur PHP Code ;)
    Du könntest innerhalb des PHP Bereiches ein 'echo' verwenden um HTML auszugeben...

    Es passiert nichts beim Klick auf den Button

    Weil der HTML Code nur für den Button ohne Funktion ist. Dazu gehört eigentlich noch ein sog. Formular.

    Die Funktion scheint fehlerhaft zu sein, denn wenn die Funktion ausführt, schaltet sich die led ein, auch die value ändert sich auf 1. Führe ich die Funktion nun nochmals aus muss sie doch ausschalten da value nun 1 ist, tut sie aber nicht, was mache ich falsch?

    Hier vermischst du leider JavaScript mit PHP. onClick ist ein Event welches JavaScript Code ausführt. Du müsstest also eine in JavaScript definierte Function einbauen - du kannst damit aber nicht eine PHP Function ausführen.
    AJAX hat damit übrigens nur bedingt etwas zu tun - eigentlich hat es mit dem was du bisher wolltest Nichts zu tun.

    Am besten wäre es wenn du dir folgendes mal durchlesen würdest, da du nämlich auch versuchst wiringPi über php auszuführen, das so ohne weiteres aber auch nicht funktionieren wird... FAQ --> Nützliche Links / Linksammlung --> Befehle über PHP mit root Rechten ausführen (sudo webscript)

Jetzt mitmachen!

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