Messwerte in Txt auf Arduino speichern

Liebes Arduino Forum,
zurzeit sitze ich an dem Problem dass ich keine Ahnung habe wie ich die Werte die mein Arduino aufzeichnet speichern kann (Temperatur und Luftfeuchtigkeit). Am besten wäre es wenn dieser die Daten in einer Txt speichern könnte damit man später mit diesen arbeiten kann. Der Speicherort soll wenn möglich der Arduino selbst sein, weil die Messungen nicht über einen längeren Zeitraum stattfinden sollen. Dies ist mein bisheriger Code:

#include <dht.h>
#define dht_apin A0 // Analog Pin sensor is connected to

dht DHT;

void setup(){
 Serial.begin(9600);
 delay(500);//Delay to let system boot
 Serial.println("DHT11 Humidity & temperature Sensor\n\n");
 delay(1000);//Wait before accessing Sensor
}//end "setup()"

void loop(){
 //Start of Program 
 DHT.read11(dht_apin);
   Serial.print("Current humidity = ");
   Serial.print(DHT.humidity);
   Serial.print("%  ");
   Serial.print("temperature = ");
   Serial.print(DHT.temperature);
   Serial.println("C  ");
 delay(5000);//Wait 5 seconds before accessing sensor again.
 //Fastest should be once every two seconds.
}// end loop()

noch einen schönen Tag und danke für jede Hilfe!

Setze deinen Sketch bitte in Code-Tags, damit dieser besser zu lesen ist.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.

Im Arduino kannst du direkt keine “txt-Datei” speichern, dazu kannst du aber eine SD-Karte verwenden.
Einen SD-Card-Reader gibt es sehr preiswert für den Arduino.

Wenn wirklich nur wenige Messungen gespeichert werden müssen, können die in einem int oder char Array gespeichert werden, im RAM oder im EEPROM. Dazu eine Funktion zum Übertragen der gespeicherten Daten und Rücksetzen des Puffers.

ArdiunoNoob:
... und danke für jede Hilfe!

Direkt auf/im Arduino kannst Du keine TXT-Datei speichern.

Was Du aber machen kannst: Die Werte im EEPROM speichern. Dazu brauchst Du dann einen extra-Sketch, um die Daten dort rauszuholen. Evtl. hilft das hier.

Teste Aufzeichnung und das Holen der Daten aus dem EEPROM auf jeden Fall „trocken“. Als ich damit anfing, mit dem EEPROM zu spielen, habe ich einige Messreihen „für die Katz'“ gemacht, weil das Auslesen noch nicht richtig funktionierte.

Gruß

Gregor

Nachtrag: Was ist das eigentlich für eine dht.h? Von wo stammt die? Auf der hiesigen Bibliotheksseite ist die nicht aufgeführt.

gregorss:
Nachtrag: Was ist das eigentlich für eine dht.h? Von wo stammt die? Auf der hiesigen Bibliotheksseite ist die nicht aufgeführt.

Die ist für die DHT Feuchte Sensoren, z.B. den DHT22.
http://playground.arduino.cc/Main/DHTLib

Mach doch in einer Woche ein neuen Thread auf, vielleicht postet dann jemand ein fertigen Sketch.

Wenn du wirklich nur 5 min lang alle 5 sek 2 Werte speichern willst, also 60 Wertepaare, reicht wirklich das interne EEPROM.

Am besten du erzeugst dir ein Array, in dem du die 60 Wertepaare ablegst.
Um Speicher zu sparen, kannst du ja die Werte als int ablegen. z.B. die Temperatur als Temperatur*10, dann hast du eine Nachkommstelle drin.

int Messwerte[2][60];

Hier schreibst du dann 5 min lang deine Messwerte rein.
(z.B. in einer for-Schleife)

 for (int i; i<60; i++){
   DHT.read11(dht_apin);
   Messwerte[i][0] = DHT.humidity *10;
   Messwerte[i][1] = DHT.temperature *10;
   delay(5000);
 }

Nun sind sie im Arduino gespeichert, aber im RAM.
Sobald der Strom weg ist, sind auch alle Messwerte verloren.

Deshalb musst du sie vorher noch ins EEPROM kopieren.
Dort bleiben sie auch gespeichert, wenn die Spannung weg ist.
Wie das geht, ist hier beschrieben: Arduino - EEPROM

Um die Werte dann auszulesen könntest du entweder ein neues Programm schreiben, oder du packst am Anfang deines Codes einen Teil rein, der erstmal das EEPROM ausliest und am Seriellen Monitor ausgibt, bevor er die Messung neue startet.

Der Speicherort soll wenn möglich der Arduino selbst sein, weil die Messungen nicht über einen längeren Zeitraum stattfinden sollen

"weil ... nicht" verstehe ich nicht ganz.

Alle 5 sec wird gemessen und über Serial angezeigt.
Das ganze läuft zur Zeit ewig, soll aber nur ca. 5 Minuten gehen. (Kein Problem, oder?)
Was dann, wofür überhaupt speichern ?

Vieleicht ist die Idee, das im Arduino zu speichern, nicht so gut (und komplizierter als gedacht).

Es gibt auch TerminalProgramme für den PC, die alles was der Arduino über Serial ausgibt, in einer Datei speichern. Hier im deutschen Internet ist hterm sehr beliebt...