Kommunikation PHP -> Serial

  • Grüßt Euch!


    Ich baue gerade an einem kleinen Homeautomation Projekt. Der Webserver läuft soweit, also das Design ist von der Optik her im finalen Zustand. Jetzt fehlt "nur" noch der gesamte Inhalt der Steuerung.


    Erster Meilenstein soll die Lichtsteuerung sein. Dazu habe ich symbolisch eine LED über einen Button aus meinem Webinterface an und aus gemacht.
    Zunächst hatte ich das ganze mit Flask umgesetzt, was mich auf Dauer aber einfach nur genervt hat, weil ich meine Templates aus Dreamweaver jedes mal Flask-spezifisch umbauen musste.


    Jetzt bin ich auf PHP umgestiegen. Leider sind meine Kenntnisse auf diesem Bereich etwas beschränkt. Deswegen habe ich mit aus unserer Hochschul Bibliothek nen PHP5 Buch besorgt, was ich gerade nach und nach durcharbeite. Kann ja nicht verkehrt sein ;)


    Es hat auch schon funktioniert jene LED mittels PHP an/aus zu machen, was für mich schon ein kleiner Erfolg ist.


    Das ganze habe ich dort folgendermaßen umgesetzt:
    mehr copy+paste, als eigenes Wissen!


    PHP
    <?php
    trim(@shell_exec("/usr/local/bin/gpio -g mode 25 out"));
    if(isset($_GET['btnledon'])){
    trim(@shell_exec("/usr/local/bin/gpio -g write 25 1"));
    }
    else if(isset($_GET['btnledoff'])){
    trim(@shell_exec("/usr/local/bin/gpio -g write 25 0"));
    }
    ?>


    Mein eigentliches Problem ist jetzt jedoch die serielle Kommunikation.
    Ich betreibe an dem RPi ein Arduino Mega und daran über VirtualWire noch einige Nano's.
    Was die Arduinos angeht steht das grobe Gerüst der Programmierung.


    In python konnste ich schon ein wenig mit der seriellen Kommunikation spielen, hat auch alles funktioniert.
    Die serielle Kommunikation soll in beide Richtungen funktionieren!


    Jetzt zu meiner eigentlichen Frage:


    Was würdet ihr empfehlen, wie man diese serielle Kommunikation am besten umsetzt? In PHP? oder mit externen Skripts?
    Ich hab da noch keinen blassen Schimmer. Ich möchte ungern die Arbeit doppelt machen.
    Das ganze ist nicht abhängig von meinen Kompetenzen, ich lese mich in alles neu ein, was auch kein Problem ist, da das ganze sowieso als Langzeitprojekt gedacht ist. Nur muss ich eben wissen, was der sinnvollste Weg dafür ist. Ewig soll es ja auch nicht dauern und neu anzufangen demotiviert mich extrem.



    Gruß
    Jan

    Edited once, last by lengi ().

  • du kannst im Prinzip auch ein cgi-script in bash scheiben, aus dem du gpio ausführen kannst. Aber deine PHP-Lösung ist auch völlig in Ordnung.

  • =================================
    Edit: Achso, hab nochmal drübergelesen. Hast also schon flask probiert...
    Naja, hatte auch was mit Flask gemacht:
    =================================


    Wenn du python lieber magst (hab das heute mal gebastelt, beschäftige mich mit python webapps proggen):


    python module flask + waitress installieren (raspberry pi, raspbian):


    sudo apt-get install python-pip
    sudo pip install flask
    sudo pip install waitress


    dann kann man so simpel ne webapp in python schreiben:



    Hier die Dateien mit den Bildern, die zum code gehören:
    flask_webapp_lampe_pi_steuerung_simple.tar.bz2