Messwerte auf einer Webseite darstellen

Wie in den vorhergegangenen Beiträgen beschrieben habe ich nun Temperatur (in °C) und Luftfeuchtigkeit (in %) über einen am Raspberry Pi angeschlossenen DHT-11 Sensor ausgelesen und in ein Textfile geschrieben. Verwirklicht habe ich das alles bisher mit Python. Das Script habe ich bisher gestartet, laufen lassen und die Werte so bekommen. Nun möchte ich dieses aber unabhängig meiner Anwesenheit oder einem SSH Zugriff durchführen.

Dazu habe ich mein Script so verändert:

Wieder habe ich Wert darauf gelegt, dass zu den Messwerten immer eine Zeit- und Datumsangabe geschrieben wird. Das soll später auch dazu dienen, Werte genauer abzurufen. Das Script führe ich nicht mehr manuell aus, sonder starte es als Superuser via Cronjob:

Zuvor habe ich dem Script, mit „chmod a+x“ die Rechte zum ausführen gegeben werden.

Damit werden nun jede Minute Messungen durchgeführt und in das von mir angegebene Textfile geschrieben. (In meinem Fall liegt dieses direkt im Webverzeichnis.) Ich habe es nicht ohne Probiert, aber ich glaube das Textfile sollte die Rechte besitzen, beschreibbar zu sein („chmod 755“).

Als nächstes habe ich mir überlegt, wie das Design der Seite aussehen soll. Hier meine Überlegungen:

  • Schnelle Übersicht am oberen Bildschirmrand
  • Diagramm/Grafen der Temperatur
  • Diagramm/Grafen der Luftfeuchtigkeit

Begonnen habe ich mit der Erstellung der Grafen. Nach einigen Suchen habe ich mich für das Tool PHPlot entschieden. Damit habe ich schon vorher gearbeitet und ist relativ einfach zu verstehen und zu konfigurieren. Die einzige Schwierigkeit die hier auftreten könnte sind die Funktionen. Auch hier habe ich sehr lange rumprobiert und bin zum Schluss auf diese Lösung gekommen:

Graf für die Anzeige der Temperatur

Dieser Beitrag beinhaltet meinen Code zur Darstellung der oben beschriebenen Grafen. Ggf. sind diese nicht nachvollziehbar, kompliziert gedacht, erstellt oder anderes. Für Verbesserungen bin ich gerne offen.

Das gleiche habe ich für die Luftfeuchtigkeit gemacht.
Hierzu: Ich habe einfach das obrige File kopiert und die Variabeln und Werte angepasst. Hier nochmal das komplette File:

Graf für die Anzeige der Luftfeuchtigkeit

Danach musste ich dieses File nur noch als Bild auf meine index.php Datei einbinden und schon war es fertig. In diesen Schritten und bei der Erstellung der Funktionen habe ich sehr viel rumprobiert und auch einige Fehlschläge gehabt. Hierbei half mir oft, die Werte mittels „print“ ausgeben zu lassen, um diese zu kontrollieren. Dabei musste ich nur die „phplot“ Funktionen auskommentiern. Danach konnte ich die Datei im Browser öffnen (Hier nicht per Bild einbinden, sonder komplett öffnen. z.B.: http://raspberrypi/grafen/test.php) und habe die Ausgabe mit den Werten bekommen.

Nun ist der größte Teil auch schon getan. Jetzt zu der kurzen Übersicht. Diese soll Temperatur, Luftfeuchtigkeit, das Datum und die Uhrzeit der letzten Messung ausgeben.

PHP-Datei zur Ausgabe der Übersicht von Temperatur und Luftfeuchtigkeit Version 1

Nachdem das alles sehr langweilig und eintönig wirkte, habe ich mir noch eine Balkenanzeige eingebildet. Diese habe ich hier eingebaut:

PHP-Datei zur Ausgabe der Übersicht von Temperatur und Luftfeuchtigkeit Version 2

Soweit so gut, jetzt bin ich an meinem ersten Zwischenziel angekommen und einigermaßen zufrieden gestellt. Was ich mir noch wünsche:

  • Schnelleres laden der Webseite (wobei dies eine sehr geringe Priorität hat)
  • Temperatur ähnlich wie die Luftfeuchtigkeit in eine Grafik zusammenfassen
  • Eine Alarmanzeige, die Rot wird, sobald die letzten 5 Werte der Messung fehlgeschlagen sind. Hier würde ich mir auch vorstellen, ähnlich wie bei der Luftfeuchtigkeit mit Farben zu arbeiten.

Ein Gedanke zu „Messwerte auf einer Webseite darstellen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.