CSV-Datei

  • Hallo,


    Liebe Mitglieder bin neu in diesem Forum und auch frisch mit dem Raspberry Fieber infiziert.


    Ich habe nun eine Frage zum Aulesen einer CSV-Datei und zwar benutze ich den DHT22 Sensor um die Temperatur in einem Raum abzufragen. Mit HIlfe eines Bashs-Scriptes wird diese minütlich in eine CSV Datein gespeichert. Nun möchte ich diese CSV-Datei mit Hilfe eines weiteren Bash-Scriptes z.B. visualisieren, also als Grpah darstellen der mir den Temperaturverlauf anzeigt. Könnte mir da einer behilflich sein?


    Danke im Vorraus.

    • Official Post

    Soll das ganze im Browser einsehbar sein, oder soll das wirklich komplett offline erfolgen, sprich du kopierst dir das erstellte Bild dann manuell auf deinen PC und schaust es dir da an.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hallo dbv,


    ich habe es so verstanden:
    Auf Raspberry Pi mit Temperatursensor läuft ein Skript, das die Temperaturen aufzeichnet. Jetzt geht es darum, wie man diese CSV-Datei (Zeit,Temperatur) auf dem Raspberry in einer hübschen Graphik bewundern kann.
    Von einem Browser war nicht die Rede - kann aber die Lösung sein.
    Vom Kopieren auf einen weiteren Räscheknäscht auch nicht.


    Die Lösung kann aber auch ein vorhandenes Linux-Programm sein, das begierig CSV-Dateien aufsaugt und xy-Graphiken ausspuckt.


    Vermutlich bringt gezieltes Suchen mittels eines Linkfinders ganz erheblich weiter. Und eine Lösung kann dann das Tool rrdtool darstellen.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Nun gut, da findet man eigentlich zahlreiche Beispiele mit einer einfachen Google-Suche, aber weil ich gerade Zeit habe:


    Eine CSV Datei ist schon mal eine gute Lösung, aber wenn Dein Sensor 24/7 läuft kommen da mit der Zeit ne Menge Daten zusammen und wenn Dich das "Fieber" gepackt hat, dann werden da sicherlich noch mehr Sensoren angeschlossen.


    Ich rate Dir deshalb die Daten in einer MySQL-Datenbank oder mit SQLite zu sichern. Die Daten kann man sich dann nämlich auch über das Netz holen, ggf. auch über OBDC in OpenOffice oder Excel importieren. Wenn man anschließend einen Plot erstellen möchte kann man die benötigten Daten immer noch in eine CSV exportieren und zugleich unerwünschte oder fehlerhafte Messwerte rausschmeissen.


    Um Plots zu erstellen gibt es 'ne Menge Möglichkeiten. Das geht mit R oder ganz klassisch mit GNUplot. Wenn man einen Webserver (apache, lighttpd oder nginx) auf dem Pi hat, kann man solche Plots "On-The-Fly" generieren z.B. mit JGraph. Diese Plots sind dann zwar auf die Minute aktuell, es kostet den Pi aber eine Menge Resourcen bei jedem Seitenaufruf einen neuen Plot zu generieren.


    Etwas ressourcen-schonender geht es so:


    Die Daten speichere ich in einer MySQL Datenbank. In 10 Minuten Intervallen oder nach Belieben exportiere ich den gewünschten Datensatz in eine CSV Datei z.B. im Format:


    timestamp*;temp1;hum1


    *timestamp = UNIX Zeitstempel in Sekunden seit dem 01.01.1970


    Mit GNUPlot kann man dann den Plot erstellen. Dabei kann man sogar mit den Daten rechnen - z.B. aus Temperatur und rel. Luftfeuchte den Taupunkt bestimmen.


    Das klingt zwar nach vielen einzelnen Schritten, doch kann man das alles in EINEM bash script unterbringen :cool: , das man dann nur noch per crontab alle X minuten laufen lässt. Den Plot kann man dann
    als PNG Datei speichern und z.B. auf einer Webseite einbinden.


    [Blocked Image: http://luetzels.raspiblog.com/images/day.png]


    Das bash script findest Du in meinem Blog-Posting, dass ich vor einiger Zeit mal geschrieben habe.


    Du must im Script die Pfade zu den Dateien (CSV, plot.png) ändern, sowie die Nummern der CSV-Spalten in der "plot" Zeile, die für den Plot verwendet werden sollen. Mit den Kommentaren in meinem bash script solltest Du jedoch klarkommen.


    Und: etwas Geduld mit meinem Blog - die Seiten laden manchmal etwas langsam, weil mein Blog auf einem RasPi bzw. BananaPi läuft :thumbs1: