Forum: Mikrocontroller und Digitale Elektronik Datenlogger: Auswertung der Messwerte (Diagramme)


von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Hallo Gemeinde.

Ich habe an einem Arduino mehrere Sensoren hängen und schreibe die 
Messwerte in eine einzelne Datei. Das Format sieht momentan so aus:

timestamp; sensor1.temp; sensor2.lux; sensor3.humi; sensor4.pressure;

(Semikolon getrennte Messwerte mit Zeitstempel YYMMDD_HHMM.)
Jetzt möchte ich mir die Daten für die schnelle Analyse natürlich auch 
grafisch darstellen.

Gibt es hierfür ein nützliches Tool (oder auch App für Android)?

Anforderungen:
- Wäre spitze wenn für jeden Messwert ein Diagramm generiert werden 
könnte, wobei die x-Achse natürlich der timestamp sein soll.

- Es wäre praktisch auch alle Werte in ein einziges Diagramm zu plotten, 
wobei ich da ganz gerne die Messwerte dynamisch an- und ausschalten 
möchte.

-[Optional] Vielleicht gibt es eine webbasierte Lösung, die mir 
HTTP-Seiten erstellt mit den Diagrammen. Das wäre dann sehr flexibel 
bzw. dann könnte ich die Daten auf einen Server hochladen und hätte 
diese auf allen unterschiedlichen Geräten, die einen Browser installiert 
haben. (Also eine Art Framework.)

Für eure Anregungen und Ideen bin ich sehr dankbar.

Herzlichen Dank!

von Frank (Gast)


Lesenswert?

Ich hätte pauschal GNUplot oder Octave gesagt.
Gibt es beides scheinbar auch für Android.
Kannst du dir wahrscheinlich ein Script am PC schreiben und ausprobieren 
und musst es danach wahrscheinlich nur auf das Handy übertragen.
Habe allerdings mit beidem noch nicht auf dem Handy gearbeitet.

Server basiert kann man das natürlich auch machen. Ich hatte da seither 
gute Ergebnisse mit Flot.

Wieviele Punkte pro Kanal hast du denn innerhalb einer Datei? Du musst 
dir nämlich bei großen Datenmengen Gedanken um die Datenreduktion 
machen. Ansonsten rödelt selbst ein PC mal schnell mehrere Stunden bevor 
er was anzeigen kann...

von Frank (Gast)


Lesenswert?

Evtl wäre auch Xamarin +ZedGraph eine Möglichkeit.

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Okay, Octave ist ein sehr guter Vorschlag.
Ich habe das mal kurz angetestet und bekomme bereits gute Diagramme 
geliefert...

Nur mit der x-Achse habe ich noch so meine Schwierigkeiten.
Mein timestamp aus dem Logfile wird noch nicht richtig umgesetzt.

Der Timestamp hat folgendes Format.

YYYYMMDD_HHMM

also zum Beispiel
20161123_1415 für den 23.11.2016 um 14:15 Uhr

Wie bekomme ich solche Zeitangaben korrekt skaliert auf meine X-Achse???

Herzlichen Dank!

von Karl Lender (Gast)


Lesenswert?

Es gibt die datenum-Funktion zum Konvertieren und datestr zum Festlegen 
des Eingangsformats - damit hast du nur Integer als x-Werte, musst aber 
eventuell die Beschriftung separat aus den Rohwerten ermitteln

http://octave.sourceforge.net/octave/function/datenum.html
http://octave.sourceforge.net/octave/function/datenum.html

Ich sehe gerade, dass datestr dein Timestamp-Format nicht direkt 
unterstützt, du müsstest also noch ein paar Trennzeichen per 
Stringmanipulation einfügen

von Noch einer (Gast)


Lesenswert?

>Vielleicht gibt es eine webbasierte Lösung

Ist dir http://oss.oetiker.ch/rrdtool/ schon aufgefallen?

Ist aber ein Komplettsystem mit eigenem Datenbankformat. Dafür kümmert 
es sich um alle Probleme, die beim Produktivbetrieb sonst noch auf dich 
zukommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.