Messstation mit Python programmieren | Teil 2

    • Neu
    • Offizieller Beitrag

    Im letzten Teil haben wir ei n Dashboard angefangen, dass die ermittelten Sensordaten unserer Messstation anzeigen kann. Wir haben einen Temperatursensor genommen, Sie können aber jeden beliebigen anderen Sensor verwenden, der mit dem Raspberry kompatiebel ist und dem man mit Python auslesen können. Es ist natürlich auch möglich viele verscheide Sensoren einzubinden und so beispielsweise eine Wetterstation zu bauen. Um unser Beispiel einfach zu halten, beschränken wir uns erstmal nur auf unseren 1-Wire Temperatusensor.


    Unser Bisheriger Code für die Datenermittlung und das Dashboard sieht wie folgt aus:

    Da hier die Temperatur immer nur beim Aufruf der Seite neu ermittelt wird und keine Daten zwischengespeichert werden, ist die Darstellung eines Verlaufes im Dashboard bisher nicht möglich. Um das umzusetzen benötigen wir als erstes eine Funktion die alle 5 Minuten, oder in einem anderen Zeitintervall den Sensor ausließt und die Dateien speichert.

    Code
    import datetime
    with open('data.txt', 'w') as f:
        f.write('//'+aktuelleTemperatur()+'/'+datetime.datetime.now())

    Das Programm legt die Datei data.txt an und fügt die aktuelle Temperatur und das Datum an. Dafür wird auch das datatime Modul eingebunden. Die Struktur der Daten in der Datei besteht aus Abschnitten, die mit // von einander getrennt sind. Jeder Abschnitt wird dann nocheinmal durch einen einzelnen / in Temperatur und Datum unterteilt. Jetzt wo wir eine Möglichkeit haben Daten zu erfassen und zu speichern müssen wir nur noch dafür sorgen, dass die Funktion auch regelmäßig aufgerufen wird. Zum Beispiel so:

    Code
    import time, datetime
    while(True): 
        with open('data.txt', 'w') as f:
            f.write('//'+aktuelleTemperatur()+'/'+datetime.datetime.now())
        time.sleep(300)

    Die Zahl 300 gibt die Sekunden bis zur nächsten Messung an, in unserem Fall 300, also 5 Minuten. Ein kleiners Zeitintervall würde genauere Temperaturverläuft messen lassen, allerdings auch deutlich mehr Speichern und Leistung für die Auswertung und Darstellung benötigen. Und da Temperaturschankungen in den meinsten Anwendungsfällen nicht derart genau aufgezeichnet werden müssen, da es zum Besipiel so schnelle Änderungen gar nicht gibt, reciht es alle 5 Minuten einen Messwert zu speichern. Für zum Besipiel eine langfristig betribene Wettersation würde es auch locker ausrechen nur alle halben Stunde einen Wert zu speichern. Unsere Funktions setzen wir ans Ende des Programmes:

    Dieses Programm würde zwar die Werte regelmäßig ermitteln und Speichern ist jedoch noch nicht in der Lage, alte Werte einzulesen und anzuzeigen. Dafür ist eine Anpassung des http-Servers und dessen Antworten nötig. Die zurückgegebene Html Seite soll anzeigen können, wie die Tendenz der Temperatur aussieht, also steigend oder fallend und dazu die Stärke des Ansteiges oder des Abfalls. Eine Möglichkeit wäre es, dies wie folgt zu tun:

    Jetzt haben wir eine Dashboard, dass sowohl die aktuelle Temperatur, als auch die Tendenz, mit der sich die Temperatur verändert anzeigt. Ein nächster Schritt, wäre es den Temperaturverlauf darzustellen. Meldet euch gerne, wenn Ihr dazu oder zu einem anderen Thema fragen habt 😊

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!