[Problem] GPIOs mit webIOPi und Webseite ein- und ausschalten

  • [font="Arial"]Hallo Leute,[/font]


    [font="Arial"]ich habe folgendes auf meinem RPI installiert:[/font]
    [font="Arial"]wheezy[/font]
    [font="Arial"]wiringPI[/font]
    [font="Arial"]webIOPi[/font]



    [font="Arial"]Jetzt habe ich ein kleines Problem mit dem setzten meiner GPIOs über eine Webseite im gleichen Netzwerk (nicht auf der Pi selber). [/font]
    [font="Arial"]Zum Beispiel die Statusabfrage des GPIO 4 Pins mit folgendem Link:[/font]


    [font="Arial"]http://raspberryIP:8000/GPIO/4/value[/font]


    [font="Arial"]funktioniert und die Seite gibt mir eine 1 und 0 aus.[/font]


    [font="Arial"]Wenn ich jedoch wie in der webIOPi-Anleitung beschrieben ist, einen Ausgang der Pi mit Link setzten will:[/font]


    [font="Arial"]http://raspberryIP:8000/GPIO/4/value/1
    [/font]

    [font="Arial"]bekomme ich folgende Seite angezeigt:[/font]



    [hr]
    [font="Times New Roman"]Error response[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"][font="Times New Roman"]Error code: 404[/font][/font]
    [font="Tahoma, Verdana, Arial, sans-serif"][font="Times New Roman"]Message: 4/value/1 Not Found.[/font][/font]
    [font="Tahoma, Verdana, Arial, sans-serif"][font="Times New Roman"]Error code explanation: 404 - Nothing matches the given URI.[/font][/font]
    [hr]


    [font="Arial"]Habt ihr da eine Idee wie ich ich mit webIOPi und einer HTML/PHP-Webseite (im gleichen Netzwerk, nicht über das Internet) meine GPIOs schalten kann?[/font]
    [font="Arial"]In den ganzen Foren habe ich leider keine Lösung für mein Problem gefunden.[/font]


    [font="Arial"]Danke im Voraus[/font]


    [font="Arial"]Gruß[/font]
    [font="Arial"]Lolipop49[/font]

  • Hat keiner eine Idee, wie man es vielleicht auch anders realisieren kann?
    Möchte einfach "nur" meine GPIOs über eine Webseite per html- oder php-Befehle steuern können.


    Bitte helft mir :daumendreh2:


    Gruß

  • Warscheinlich musst du mal in deiner HTACCESS Datei schauen, wie die Pfade übersetzt werden.
    Da passt halt was nicht mit dem letzten Zeichen, da er unter der /1 eine Datei sucht und das nicht als Parameter übersetzt wird.

  • [font="Arial"]Bei dem WebIOPi habe ich keinerlei Webserver installiert. Funktioniert komischerweise über die mitgelieferte Seite und ein paar Scripten von alleine, nur habe ich da keine Möglichkeit einen eigenen Code mit PHP zu realisieren.[/font]
    [font="Arial"]Also nehme ich an, dass es kein .htaccess gibt.[/font]


    [font="Arial"]In der Zwischenzeit habe ich es mal mit diesem Tutorial versucht und auch zum laufen gebracht. Nur gefällt mir bei dieser Variante die Verzögerung bis zum ein- oder schalten nicht wirklich.[/font]
    [font="Arial"]Die Lösung läuft mit:[/font]
    [font="Arial"]- Apache web server[/font]
    [font="Arial"]- PHP5[/font]
    [font="Arial"]- MySQL Server[/font]
    [font="Arial"]- phpMyAdmin[/font]
    [font="Arial"]- dieser sql Datenbank[/font]
    [font="Arial"]- dieser sh-Datei[/font]
    [font="Arial"]und dieser php-Seite[/font]


    [font="Arial"]Hat jemand das nötige PHP Wissen, um es nahezu Verzögerungsfrei zu realisieren? Aslo ohne diese ständige Abfrage?[/font]
    [font="Arial"]Sorry wenn ich hier so viel Frage, aber ich möchte das unbedingt[/font][font="Arial"] realisiert haben [/font]:blush:



    [font="Arial"]Danke schonmal[/font]


  • Hat keiner eine Idee, wie man es vielleicht auch anders realisieren kann?
    Möchte einfach "nur" meine GPIOs über eine Webseite per html- oder php-Befehle steuern können.


    Bitte helft mir :daumendreh2:


    Gruß


    Du könntest dir das auch ganz einfach mit PHP machen. Voraussetzung ist, dass du ein wenig Ahnung von PHP hast.




    In PHP gibt es den Befehl shell_exec();


    Syntax hier: http://php.net/manual/de/function.shell-exec.php




    Damit habe ich mir selber schonmal so etwas gebaut. Habe die Befehle der Kommandozeile so über PHP abgefeuert ;)



    Bei Fragen, frag einfach.


    Grüße

    Edited once, last by Nidro ().


  • Damit habe ich mir selber schonmal so etwas gebaut. Habe die Befehle der Kommandozeile so über PHP abgefeuert ;)


    Bei Fragen, frag einfach.



    Also wenn ich ehrlich bin, habe ich nicht wirklich Ahnung von PHP. Nur halt die Basics um ein bisschen was zu ändern, jedoch nicht etwas neu zu schreiben.


    Hast du da ein fertiges Script für das Schalten eines GPIO als Ausgang mit jeweils ein Befehl für das Ein- und ein Befehl für das Ausschalten? - Damit würdest du mir einen riesigen Gefallen tun :)


    Danke

  • Schreiben :

    Code
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1"));


    Lesen

    Code
    $val = trim(@shell_exec("/usr/local/bin/gpio -g read 23"));

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Also wenn ich ehrlich bin, habe ich nicht wirklich Ahnung von PHP. Nur halt die Basics um ein bisschen was zu ändern, jedoch nicht etwas neu zu schreiben.


    Hast du da ein fertiges Script für das Schalten eines GPIO als Ausgang mit jeweils ein Befehl für das Ein- und ein Befehl für das Ausschalten? - Damit würdest du mir einen riesigen Gefallen tun :)


    Danke


    Klar, wenn ich wieder zu Hause bin suche ich dir mal meins raus....


  • Schreiben :

    Code
    $val = trim(@shell_exec("/usr/local/bin/gpio -g write 23 1"));


    Lesen

    Code
    $val = trim(@shell_exec("/usr/local/bin/gpio -g read 23"));


    ..und wie sieht das in einer HTML-Datei auf dem Webserver auf dem Pi aus und wie würde ein externer Befehl von einem anderen Computer aussehen? :blush:

  • Habe mein eigenes Skript leider grade nicht gefunden. Desshalb versuche ich dir das mal ein wenig zu erleutern.


    Hier mal eine (meiner Meinung nach gute) Erklärung für die Grundlagen:
    http://www.raspiprojekt.de/anl…-gpios-ansteuern-led.html




    Darin stehen ja die Befehle, die genutzt werden können. Wenn du es dir ganz einfach machen möchtest schreibst du einfach in eine PHP-Datei soetwas rein:

    PHP
    <?php
    echo shell_exec("DEIN SHELLBEFEHL"); //Führt den Befehl zwischen " " aus und gibt die Rückgabe des Befehls aus
    ?>



    Natürlich kann man dem PHP-Script auch Parameter übergeben und das ganze dynamisch gestallten (If-abfragen etc). Aber dafür sind ein wenig PHP-Kenntnisse erforderlich.



    Bei Rückfragen melde dich


    Grüße