Bascom Datenlogger - welches Format?

Uwe H.

Neues Mitglied
27. Juli 2011
264
0
0
Hinter die Grenze :-)
Sprachen
  1. BascomAVR
  2. ANSI C
  3. Assembler
Hallo zusammen :)
Wer von euch hat schonmal einen Datenlogger realisiert, der ein fünf versch. Daten + Zeitstempel aufnimmt? Ich bastel grad an sowas und stehe vor der Frage, welches Format ich speichere. Ich hab vier Temperaturen, eine Verbrauchsangabe (W/h) + Zeit und Datum. Entweder ich schicke alles als "Rohes Byte", sprich nicht aufbereitete Daten ins EEPROM (z.B. ohne Umrechnung der DS18B20 Temp-Daten in Dezimal sondern einfach die ersten beiden Teile des Arrays) und lasse diese später erst beim Auslesen am PC umrechnen oder ich forme alles in Strings um und spare mir die spätere Berechnung. Rohdaten brauchen nicht viel Speicher (bei mir wären es 16 Byte), Strings hingegen 46 Byte, also dreimal soviel.
Wie habt ihr das gelöst oder welche Methode zieht ihr vor und warum? Gibts andere Vor- oder Nachteile? Ich würde logischerweise erstmal zu den Rohdaten tendieren wegen des Speicherplatzes.

Grüße, Uwe
 
Hallo Uwe,
wie viele Datensätze willst du denn abspeichern?
Und wenn sie dann im EEPROM sind, wie kommen die dann in den PC zur Auswertung?
Achte darauf, dass du die Daten nicht versehentlich immer auf die gleiche Stelle im EEPROM schreibst. Dort sind nur 100.000 Schreibzugriffe auf jede Zelle garantiert. Besonders während der Entwicklung kanndas mal schnell schief gehen und dann ist dass EEPROM an der Stelle hin.
Da ein µC meiner Meinung nach kein Textverarbeitungssystem ist, empfehle ich immer, die Finger von Strings zu lassen.
Zuviel Speicherplatz, zu langsam zu verarbeiten und eigentlich nur für die Ausgabe sinnvoll.

Grüße

Sebastian

PS. Jetzt wo du hier schreibst erinnere ich mich auch daran, dass du in einem anderen Thema schon danach gefragt hattest. Hatte ich übersehen.
 
Grüß Dich Sebastian

In dem anderen Thema gings nur um einen Zeitstempel. Hier gibts einen ganzen Datensatz, der aus Zeitstempel, vier Temperaturen und einer Energieverbrauchsangabe besteht. Bearbeitet muss das Ganze am PC nur optisch, sprich zur Ausgabe. Mit den Daten wird nicht mehr weitergearbeitet. Es geht mir mehr darum, ob es nicht mehr Arbeit ist, die Daten hinterher erst am PC "aufzubereiten", beispielsweise die Temperaturen, die als Rohdaten erst umgerechnet werden müssen um lesbar zu werden.
 
Hallo Uwe!
... Es geht mir mehr darum, ob es nicht mehr Arbeit ist, die Daten hinterher erst am PC "aufzubereiten", beispielsweise die Temperaturen, die als Rohdaten erst umgerechnet werden müssen um lesbar zu werden.

Ich würde, wie Sebastian auch, die Daten am PC verarbeiten und nicht im Mikrocontroller ... genau aus den Gründen:

Zuviel Speicherplatz, zu langsam zu verarbeiten und eigentlich nur für die Ausgabe sinnvoll.

Ich gehe sogar noch weiter. Stell dir vor, du hättest gundsätzlich Zeit und Temperatur als String. Es wäre dann sinnvoll oder sogar erforderlich im Mikrocontroller einen Algorithmus anzuwenden, der diese Strings in wenige Daten-Bytes konvertiert. Zum Glück liefert der Temperatursensor und die RTC (ich gehe mal davon aus, du verwendest eine) bereits speicheroptimierte Daten ;) Die Verarbeitung am PC läuft auch schneller ab. Ich würde also die Rohdaten im Eeprom speichern.

Grüße,
Dirk
 
Hi,

also Speichern würde ich es an deiner Stelle auf jeden fall als Rohdaten :) ... wie schon von allen gesagt .. es braucht zu viel platz ..

Das Umwandeln ... kannst du wie dirk sagt pc seitig machen .. ich mach es meist jedoch so (bei Datenloggern) bei der Ausgabe zum PC kommt es über einen Printf aus ..

Wieso ich das so mache sind ganz einfache gründe ..

Ich kann zur Syncro von den Daten 0x00 nehmen bzw mich auf 0x0a 0x0d verlassen ... sonst muss man wieder bytes zaehlen oder über Timeouts arbeiten .. da sind mir klare Frame Ende zeichen lieber =).
Das andere ist ganz einfach ... wenn du nen Datenlogger hast macht der in dem Moment wenn du ihn an PC Ansteckst eh nichts anderes als die Daten rauszuschaufeln ... da kann er grad noch nen Printf machen

Vorteil an der Sache ist man kann die Daten auch an nem Normalen Terminal auswerten / debuggen und joar ...

Prinzipiell ist das geschmacksache ...


Wenns an floats geht .. okey dann würd ich auch den PC vorziehen. Wobei ich nen USB Stick als Datenspeicher eh nem EEProm vorziehe und somit ist das sowieso schon Fat und Ascii ^^.


Zum Thema am PC die Daten Umzuformen ..

das ist eigentlich in keiner Sprache ein größeres Problem ... was halt meist ein Problem ist (mal bei Delphi bin ich schon drüber gestolpert z.b.) dass Big & Littl Endian unterschiedlich zum µC sind .. das kann am anfang etwas verwirrend sein.

Beispiel in Delphi von mir :
Die Daten in ein Array aufnehmen (meist über Timeouts) dann in einen TRecord (vergleich zu dem Struct in C) verschiebe das macht es ganz nett die Daten zu erweitern wenn du was anpasst(z.b. nen Datensatz erweiterst).. die words swapen (wegen Endian ..) und dann eben noch mit ner hex to ... (gibts genügend freie im Netz bzw sind auch schnell selbst gemacht) in dein Format umwandeln. Wenn sie in einem Record liegen dann hast du halt alle möglichkeiten offen die du magst ...





Gruß,
Manuel
 
LogView

Hallo Uwe,

wenn Du die Daten auch seriell an den Auswerte-Rechner übergeben magst, ist wäre für mich http://www.logview.info/vBulletin/content.php?9-deutsch das Aufbereitungs- und Auswerte-Programm der Wahl.
Es kann verschiedenste Daten formatieren und in Tabellen, Grafen oder selbst gestalteten Anzeigeformaten darstellen. Dazu ist es kostenlos (bei Gefallen mit einer Spende zu unterstützen) und wird ständig weiterentwickelt.

Gruß Volker
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)