Temperatur Sensor - Werte auf Website darstellen

  • Hallo,


    Ich stehe zurzeit vor einem Problem.

    Undzwar habe ich folgenden Sensor (DHT22) ordnungsgemäß mit dem Raspberry Pi verbunden und auch alle nötigen Pakete installiert.

    Im Terminal kann ich bereits auch Werte über die vorhandene Testdatei (AdafruitDHT.py) anzeigen.


    Nun möchte ich diese Werte auf meiner Website anzeigen. Dafür habe ich folgendes Python Skript programmiert:

    Code
    import Adafruit_DHT
    sensor = Adafruit_DHT.DHT22
    pin = 4
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    
    if humidity is not None and temperature is not None:
       print 'Temp:{0:0.1f}*C  Humidity:{1:0.1f}%'.format(temperature, humidity)
    else:
       print 'Failed to obtain a reading. Try again!



    Und passend dazu das PHP Programm:

    PHP
    <?php
    $output = shell_exec("python /var/www/html/python/temperatur.py 22 4"); 
    var_dump ($output);
    ?>


    Leider bekomm ich auf meiner Website nichts angezeigt.

    Habt ihr eventuell Ideen woran es liegen kann bzw. wie ich es zum laufen kriegen könnte?


    Schonmal Danke im voraus.


    Mit freundlichen Grüßen

    ~Ludaris

  • Ich haette ein Vorschlag für ein Konzept für Deine Messung.

    * Erstmal muesstest Du die gelesenen Temperaturwerte in eine Datei schreiben.

    * Wenn Du einen Temperaturwert nicht öfter als einmal pro minute aufzeichenen willst, geht das ganz prima mit einem cron-job. Dafuer kannst Du Dein Python script recyclen. Zusätzlich solltest Du aber noch einen Timestamp ausgeben, damit man die Werte nachher zuordnen und plotten kann.

    * Weiterhin musst Du überlegen, was passieren soll, wenn die Datei mit den Temperaturwerten zu gross wird. Soll sie dann gelöscht werden, oder möchtest Du die tageweise archivieren? Das kann ein weiterer cron-job erledigen, der nur einmal am Tag aufgerufen wird.


    Für die Ausgabe auf eine Web-Seite gibt es zwei unterschiedliche Herangehensweisen:

    1. Bei jedem aufruf der WEB.Seite wird ein Plot erzeugt und dann in eine Seite eingebettet (das kann ein CGI-Script machen) oder

    2. Es wird regelmaessig z.B. jede Stunde der Plot und die Webseite generiert (von wieder einem cron-job).


    Wenn Du viele Seitenaufrufe hast, ist Version 2 besser.

    Wenn Du nur selbst die WEB-Seite aiufrufst ist Version 1 einfacher zu realisieren.


    Jetzt zur der Frage, wie man einen Plot aus daten in einem File macht. Ich empfehle hier das paket "gnuplot". Das kann normal installiert werden. Gnuplot wird mit einem speziellen Script aufgerufen, was dann ein Plot (in form einer .png Datei) erzeugt.


    Das iste eigentlich alles, was Du brauchst.

    • Official Post

    klingt nach vergangenem Jahrtausend

    und funktioniert hervorragend, da der Server das macht was er kann - Leistung und Dienste bereitstellen, etwas was der Client per Definition schon nicht soll. Aber nö, lass uns alles auf dem Client rendern...und plötzlich funktionieren simple Webseiten auf älterer Hardware nicht mehr und machen die Hardware obsolet. Wie viele Notebooks könnten noch von Schülern/Rentnern benutzt werden wenn nicht wenn nicht alles auf den Client ausgelagert würde?