Aufgabe: Abspeichern auf einer SD-Karte und Importieren nach Excel

Um die Messwerte mit Hilfe von Excel zu verarbeiten, sollen diese zunächst auf einer SD- Karte abgespeichert werden. 

Das Ethernetshield, welches auf den Arduino gesteckt wird, hat einen SD-Kartenslot. Wir nutzen diesen zur Messwerterfassung. Anscheinend blockiert das Ethernetshield den analogen Port A0 und A1. Deswegen bleiben nur noch die restlichen analogen Ports für unsere Messungen.

Man muss auch darauf achten, dass der Dateiname nicht mehr als 8 Buchstaben und keine Leerzeichen bzw. Sonderzeichen enthält, da der Arduino sonst diese Datei nicht erkennen kann.

Quelltext
#include <SD.h>
 
const int chipSelect = 4;
 
void setup()
{
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
  pinMode(10, OUTPUT);
   
  if (!SD.begin(chipSelect)) {
    Serial.println("Fehler beim Erkennen der Karte.");
    return;
  }
  Serial.println("Karte OK.");
}
 
void loop()
{
  String dataString = "";
  
  int SensorWert = analogRead(A5);  // nicht A0 oder A1 benutzen 
  long zeit = millis();  // Zeit in Millisekunden nach Start
  dataString = String(zeit) +";"+ String(SensorWert);
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    Serial.println(dataString);
  }  
  else {
    Serial.println("Fehler beim Lesen der Datei");
  }
  delay(100); // Messung alle 100 Millisekunden 
}

Datenlogger der seriellen Schnittstelle

Alternativ zum Abspeichern auf der SD Karte könnte man ein Programm verwenden, welches den Datenverkehr über die serielle Schnittstelle abgreift und in eine Datei protokolliert. Hierzu eignet sich der RS232 Data Logger (Eltima Software) das als Freeware bei www.heise.de (https://www.heise.de/download/product/rs232-data-logger-32478) heruntergeladen werden kann.

Import der Daten nach Excel

Die vom Arduino aufgenommenen Daten werden auf der SD-Karte in einer Textdatei gespeichert. Diese Datenreichen sollen nach Excel importiert werden und als Diagramm dargestellt werden. 

 

Hier habe ich exemplarisch Daten vom Sensor DHT22 importiert. Die erste Spalte gibt die Laufzeit in Millisekunden, die zweite Spalte die Luftfeuchtigkeit in Prozent und die dritte die Temperatur in Grad Celsius an.