Allgemeine Frage: Statemachine, jQuery, bash etc

  • Hallo zusammen,

    ich bin relativ neu beim Raspberry dabei, habe allerdings etliche Jahre Erfahrung in Sachen Elektronik/Hardware und Software (z. B. "C"). Bei meinem Vorhaben habe ich noch ein paar allgemeine Unklarheiten und ich hoffe, dass ihr mir dabei helfen könnt diese zu klären.

    Dazu ein Auszug aus meinem Projekt:
    Ich würde z.B. gerne einen Temperatursensor periodisch auslesen, die Ergebnisse auf einer Website im lokalen Netz darstellen und anhand der ermittelten Temperatur automatisch einen Lüfter ansteuern bzw. über die Website einstellen können, ob dieser automatisch oder manuell gesteuert werden soll.

    Aktuell läuft bei mir ein raspbian mit nginx. Darauf ein Shell-Script, welches alle 5min einen Tempsensor ausliest und die Temperatur mit Uhrzeit und Datum in eine Logfile schreibt.

    Diese Logfile wird beim Website-Start gelesen und die zuletzt gemessene Temperatur wird auch einwandfrei dargestellt.

    Auch kann ich per jQuery-Knopf auf dieser Seite per Ajax ein .php-Script aufrufen, welches dann mit phpSerial serielle Befehle über die UART ausgibt und damit Peripherie steuert. Vieles davon ist in JavaScript programmiert.

    Wie ihr also seht - es läuft schon allerhand. Allerdings läuft der ganze Kram auf der html-Seite nur, wenn ich diese auch offen lasse. Schließe ich die Seite wird der Lüfter im Hintergrund nicht mehr mit der gemessenen Temperatur geregelt. Habt ihr eine Idee, wie ich das umsetzen kann?

    Wenn ich z. B. für einen Mikrocontroller programmiere, dann läuft das Prog ja in einer Dauerschleife. Geht so etwas, also eine Statemachine, beim Raspi auch im Hintergrund? Wenn ja, wie? Über Bash-Script?

    Mein Wunschziel:
    Eine dauerhafte Regelung des Lüfters anhand der Temperatur und dennoch die Möglichkeit aktuelle Werte auf der Website einzusehen und dazu auch die Möglichkeit den Lüfter manuell zu übernehmen und z. B. auszuschalten.

    Viele Worte, um euch einen möglichst guten Einblick zu verschaffen.

    Lieben Gruß,
    Stephan

    • Offizieller Beitrag

    Du lässt die Temperatur z.B. per cronjob messen, das speichern behällst du bei. Dein Lüfterscript greift auf das logfile zu und regelt sich dadurch erstmal immer selbständig. Über die Website holst du dir die Infos auch aus der Textdatei. Den Lüfter übernehmen stoppen kannst du auf Verschiedene Weise. Ob nen per kleinem integriertem Socketserver der immer auf externe kommando lauschst oder bewusstes killen des Prozesses und neustarten eines manuellen Lüfterscriptes. Die Möglichkeiten sind vielfältig ;)

    Im Sinne musst du den Prozess nur vom Webbrowser entkoppeln, der Browser dient nur noch zum eingreifen/umschalten. Den Rest macht der Pi dann auch wenn der Browser zu ist.

  • ist Python eine Alternative für Dich??

    Wenn ja, kann ich Dir gerne meinen TEMP-Logger mal zeigen...

    aber vermutlich könnte man ein PHP-Skript auch per cronjob starten.. muss ich mal gucken...

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.

  • Hey,

    vielen Dank für die ganzen Antworten!

    In welcher Programmiersprache es letztlich läuft ist für mich relativ nebensächlich. Da mache ich mir weniger Gedanken.
    Für mich stellt sich eher die Frage, inwiefern ich es hinkriege das die Scripts praktisch sekündlich mitlaufen und auf Veränderungen reagieren.

    Ich hatte mein Projekt schon komplett als eigenständige PCB realisiert. Inklusive eigenem Schaltregler-DC/DC-Netzteil, eine RTC über SPI, LED-Treibern, Display-Anschluß über I2C, 16-Kanal LED-Dimmer über SPI, Thermometer-Anschluß und das ganze gesteuert mit nem Atmega und ansteuerbar über Bluetooth 4.0.

    Da ich aber zB gerne die Steuerung über eine schöne Oberfläche (jQuery zB) hätte, bin ich auf den Raspberry gekommen.
    Die Website muss ja irgendwoher die aktuellen Daten, z.B. ob der Lüfter gerade an oder aus ist, beziehen um beim Seitenaufbau die Tasten in die richtige Position zu schalten. Macht es da Sinn ne SQL-Datenbank aufzubauen, die per Bash-Script und Website geändert werden kann?
    Oder mache ich es zu kompliziert?

    LG,
    Stephan

    Einmal editiert, zuletzt von Stevil (11. Juni 2014 um 21:55)

Jetzt mitmachen!

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