Forum: Mikrocontroller und Digitale Elektronik EEPRIOM als Datenlogger geeignet?


von Christian O. (derbrain)


Lesenswert?

Hallo,
bei meinem aktuellen Projekt müssen ca. alle 12 Minuten Daten
gespeichert werden (ein Datensatz ist ca. 16 Byte groß). Ist das
integrierte EEPROM für sowas geeignet oder sollte man besser einen
externen Speicher verwenden? Ich hab schon an SD-Karten oder so was
gedacht, aber soweit ich weiß haben die Probleme mit niedrigen
Temperaturen (das Ding soll im Freien stehen).
MfG
Christian

von Senf (Gast)


Lesenswert?

Rechne doch selbst nach und lies die Datenblätter! Wenn es an sowas
scheitert würd ich gar nicht erst anfangen.

von Christian O. (derbrain)


Lesenswert?

Mir ging es weniger darum, ob sich das rechnerisch ausgeht (das kann ich
mir in der Tat selber ausrechnen, danke), sondern ob so etwas allgemein
üblich/sinnvoll ist oder ob es normalerweise eher als Notlösung
verwendet wird.

von Elektrikser (Gast)


Lesenswert?

Mein erster Temperaturlogger hatte einen 24C65 als Speicher. Ich hatte
mit dem EEPROM keine Probleme, allerdings aber mit dem DS1621, der mir
als Sensor diente.
Das System bestand aus einem 89C2051, einem PCF8583 mit CR2032-Batterie
und zwei DS1621.
Ich würde nicht das interne EEPROM für die Datenspeicherung verwenden,
sondern gleich einen großeren externen Speicher verwenden. Ob es ein
serielles EEPROM oder eine SD-Karte ist, liegt dann nur noch an den
Umgebungsanforderungen.
Den Temparaturlogger wollte ich eigentlich wiederbeleben und neu
auflegen. Das sollte dann so aussehen:
µC: ATmega8
Temp.Sensoren: DS18S20
Luftdrucksensor: MPXA4100A6U
DCF-Modul für die Uhrzeit und notfalls mit dem zweiten Quarzeingang des
AVRs eine Quarzuhr.
Speicher: SD-Karte oder 24Cxxx (wobei ich da eigentlich die SD-Karte
verwenden wollte)
Ist momentan eingeschlafen, wegen Zeitmangel.

Gruß Elektrikser

von Christian O. (derbrain)


Lesenswert?

Hallo Elektrikser,
stimmt, ich hab mich dem Projekt jetzt nach längerem Stillstand wieder
zugewandt, ich wollte die Daten ursprünglich sowieso in einem externen
EEPROM ablegen. Ich wollte nur wissen, ob das eine übliche
Vorgehensweise ist.
Mein System ist deinem recht ähnlich, nur etwas komplexer. Wär
interessant wenn wir uns darüber ein wenig austauschen könnten. Wie
weit bist du gekommen?

von Elektrikser (Gast)


Lesenswert?

Hallo Christian,

die DS18S20 werden schon in einem Webserver verwendet und funktionieren
gut. Eine DCF-Variante läuft auch schon in einer Uhr. Den
Luftdrucksensor habe ich noch nicht getestet.
Tja, einen 24C65 habe ich mit einem ATmega128 auch schon verwendet.

Momentan bin ich gerade dabei, mir ein FAT16-Dateien-System für
SD-Karten zu basteln. Ich bräuchte es auch für ein anderes Projekt. Es
gibt da genügend Umsetzungen im Internet, auch hier in der
Codesammlung, allerdings will ich es auch verstehen. Deswegen
programmiere ich es selbst. Das wird noch ein bißchen dauern...

Wie soll dein System aussehen?

Bei mir soll die Datenübertragung entweder über die serielle
Schnittstelle oder über die SD-Karte und einem Kartenleser laufen. Ein
Display will ich mir eigentlich schenken.

Gruß Elektrikser

von Elektrikser (Gast)


Lesenswert?

Autsch, da hat wieder mein genialer Satzbau zugeschlagen. Bitte ein
"auch" streichen. Ich sollte ins Bett gehen...

von Christian O. (derbrain)


Lesenswert?

Bei meinem System werden es ein paar mehr Sensoren werden (einige nur
optional): 3 bis 4 Temperatursensoren, Niederschlagsmenge, Luftfeuchte
etc.

Die Datenübertragung soll über ein GSM-Modul erfolgen, und zwar per SMS
eine Statusabfrage und per Datenanruf eine Synchronisation mit einer
Datenbank. Display brauch ich auch keins, kommt aber später vielleicht
doch noch dazu.

Nach welchen Kriterien hast du deine Sensoren denn ausgewählt? Die
Anzahl an angebotenen Teilen ist ja ziemlich unüberschaubar.

Steht dein System nur in Innenräumen? Was ich bis jetzt gesehen habe,
sind SD-Karten ja nicht besonders wetterfest.

@ Uhr: Hast du da ein zusätzliches Modul oder macht das der ATmega? Ich
wollte eigentlich den Controller verwenden, aber wenns mal kracht ist
die Zeit futsch, und die wär schon ziemlich wichtig. Der PCF8583 klingt
ja interessant, da brauch ich den internen Timer auch nicht mehr.

Grüße
Christian

von Christian O. (derbrain)


Lesenswert?

Ich hab mich jetzt mal wegen einem seriellen EEPROM umgeschaut und hab
gesehen, dass auch Atmel so was anbietet. Jetzt kenn ich mich aber gar
nicht mehr aus: es gibt serielle EEPROMs, seriellen Flash und
"DataFlash", letzteres entweder in Chip-Form mit integriertem RAM
oder in SD-Form.
Ich dachte immer, Flash ist nichts für Datalogging. In den
Beschreibungen steht aber, dass die genau für sowas gedacht sind.
Allerdings sind auch da die Page-Größen mindestens 256 Byte, was bei
meinem System doch ziemliche Verschwendung ist.
Ich hab mich mit Flash-Speicher bzw. SD-Karten noch nicht wirklich
auseinandergesetzt. Wieso brauchst du da ein FAT16-System? Nur weil dus
auch in einem anderen System brauchst oder geht das bei SD-Karten nicht
ohne?

von Elektrikser (Gast)


Lesenswert?

Den DS18S20 habe ich gewählt, weil ich da an einem Bus mehrere Sensoren
ansteuern kann. Können schon bis zu fünf werden. Für aussen wird er
eingegossen. Benötigt wird dazu nur ein beliebiger Pin.

Der Drucksensor kam auf meine Liste, weil er relativ einfach zu
bekommen ist und schon temparaturkompensiert ist. Ob ich damit
glücklich werde, muss erstmal getestet werden.

Die SD-Karte bekommt ein FAT16-System, weil ich die Daten z. B. jede
halbe Stunde in einer Textdatei abspeichere und wenn ich die Daten
brauche, einfach die Karte ziehe und in den Kartenleser meines PCs
stecken will. Anschliessend die Textdatei in Excel importieren und
schon kann man sie auswerten, wie man will. Man kann auch ohne FAT
schreiben und lesen, allerdings muss dann der Controller die Daten
richtig ausgeben. Normalerweise schreibt man auf einer SD in Blöcken
von 512 Bytes, aber man kann in einem Block weiterschreiben. D.h. man
schreibt dann bündig weiter und verliert keinen Speicher.

Wie gut eine SD-Karte mit dem Wetter klar kommt, bin ich gerade am
testen. Allerdings ist das Gerät erst seit einer Woche draussen. (Das
hat momentan kein Dateisystem.)

Mein alter Templogger hatte ein Terminalprogramm um über die serielle
Schnittstelle die Daten auszulesen und die Quarzuhr zu stellen. Er
hatte die Daten auch schon im richtigen Format ausgegeben, so dass ich
sie nur in Excel importieren musste.

Für DCF würde ich ein Modul verwenden, wie man es von Conrad, Elv usw.
kaufen kann. Der Controller muss da die Signale noch richtig
auswerten.

Der PCF8583 war schon nicht schlecht und ich hatte wenige Probleme
damit. Allerdings ist er diesmal nicht auf meinen Plan.

Bis jetzt war mein Plan so, dass ich DCF verwende. Der ATmega soll mit
dem zweiten Quarzeingang eine Quarzuhr machen, die sich mit dem DCF
abgleicht. Dann reicht es auch, wenn es nur einmal am Tag einen
DCF-Empfang gibt. Vielleicht verwende ich statt den ATmega8 einen
ATmega32.

Das Gerät soll innen und aussen eingesetzt werden und hauptsächlich
Langzeitmessungen erledigen.

Welchen Luftfeuchtenmesser willst du verwenden?

von Christian O. (derbrain)


Lesenswert?

Ich bin jetzt draufgekommen, dass das GSM-Modul sowieso eine Uhr
eingebaut hat. Ich könnte also die Zeit vom DCF-Modul übernehmen und
die Uhr einfach über einen AT-Befehl stellen. So hab ich auch keine
Probleme mit der Zeit, wenn es aus irgendeinem Grund einen Reset beim
Controller gibt.
Ich könnte sogar auf den internen Timer verzichten und stattdessen die
Alarm-Funktion des Moduls verwenden. Muss aber noch überlegen, ob das
sinnvoll/möglich ist.

Ich benutze einen ATmega1281, ich weiß noch nicht wie groß das Programm
insgesamt wird, aber ich hätt gern ein bisschen Reserve beim Speicher.
Außerdem hat er einen Haufen ADC-Eingänge, dann kann ich auch
einfachere Sensoren verwenden.

Wegen Datenspeicherung weiß ich eben noch nicht, welches Format am
sinnvollsten ist. Ich hab mir gedacht, es reicht auch, die Daten erst
beim Senden in Text umzuwandeln, das sollte sich vom Timing her doch
ausgehen, oder? Außerdem kann die Umwandlung in Text auch erst am PC
erfolgen.

Als Luftfeuchtesensor werde ich ein Modul von Humirel nehmen
(wahrscheinlich HTM1505). Die haben auch gleich einen Temperatursensor
dabei, da spar ich mir einen zusätzlichen.

von Elektrikser (Gast)


Lesenswert?

Vom Timing her müsste es klappen.

Ich werde den ATmega32 verwenden, da habe ich mehr Möglichkeiten.

von Christian O. (derbrain)


Lesenswert?

Bei mir ist eventuell auch noch eine Fernprogrammierung geplant, ist
aber noch in weiter Ferne. Kommunikation findet bei dir höchstens
direkt zum PC statt, oder? Hast du Erfahrung mit der Verwendung von
GSM-Modulen?

von Elektrikser (Gast)


Lesenswert?

Leider nein. Das einzige, was ich gemacht habe, war einem Siemens Handy
über PDU Befehle zu erteilen. Das war nur spaßeshalber, eine richtige
Anwendung wurde nicht daraus.

Bei mir läuft es hauptsächlich mit dem PC. Vielleicht noch auslesen
über einen alten Palm oder doch ein LCD.

von marc989 (Gast)


Lesenswert?

Habe einen Datenlogger am laufen mit einer MMC als speicher. Da ich
viele Messwerte speicher, ist mir die Blockgröße egal. den rest füll
ich halt mit leeren bytes. Die Übertragung zum auslesen läuft, entweder
über RS232kabel (wetterfester stecker) oder bluetooth. Die Möglichkeit
dür GSM habe ich auch angedacht, da gibt es sehr schöne Module, die
sich integrieren lassen und über at kommandos steuern lassen. Glaub die
preise liegen so bei ca 75 euro.

Gruß Marc

P.S. bei 98% Luftfeuchtigkeit und zeitweise unter 0°C, läuft das modul
noch einwandfrei draussen im wald, in einem erdbunker. Die MMC ist
wegen Korrosion natürlich angelötet.

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.