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
Rechne doch selbst nach und lies die Datenblätter! Wenn es an sowas scheitert würd ich gar nicht erst anfangen.
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.
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
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?
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
Autsch, da hat wieder mein genialer Satzbau zugeschlagen. Bitte ein "auch" streichen. Ich sollte ins Bett gehen...
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
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?
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?
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.
Vom Timing her müsste es klappen. Ich werde den ATmega32 verwenden, da habe ich mehr Möglichkeiten.
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.