Arduino Datenlogger mit Micro-SD-Karte: Sensordaten dauerhaft speichern
Der Serial Monitor ist super zum Testen – aber sobald du Sensordaten über Tage oder Wochen auswerten willst, brauchst du einen echten Datenlogger. Mit einem Micro-SD-Karten-Modul speichert dein Arduino Messwerte dauerhaft als CSV-Datei, die du später direkt in Excel oder Google Sheets öffnen kannst.
Warum ein Datenlogger?
Viele unserer Sensor-Tutorials – vom DHT22-Temperatursensor bis zur Bodenfeuchtemessung – zeigen Messwerte live im Serial Monitor an. Das reicht zum Testen, aber nicht, um z. B. den Temperaturverlauf einer Woche auszuwerten. Ein Datenlogger schreibt jeden Messwert mit Zeitstempel in eine Datei auf einer Micro-SD-Karte – auch wenn kein Computer angeschlossen ist.
Was du brauchst
| Bauteil | Menge | ca. Preis | Link |
|---|---|---|---|
| Micro SD Card Reader Modul | 1x | ab 1,19 € | Zum Produkt |
| UNO R3 Board | 1x | ab 4,99 € | Zum Produkt |
| AM2302 (DHT22) Sensor | 1x | ab 2,99 € | Zum Produkt |
| Micro-SD-Karte (separat, FAT32) | 1x | ca. 5–10 € | im Elektronikhandel |
Schaltungsaufbau (SPI)
| SD-Modul Pin | UNO R3 Pin | Funktion |
|---|---|---|
| VCC | 5V | Spannungsversorgung |
| GND | GND | Masse |
| MISO | Pin 12 | SPI Daten (Modul → Board) |
| MOSI | Pin 11 | SPI Daten (Board → Modul) |
| SCK | Pin 13 | SPI Takt |
| CS | Pin 10 | Chip Select |
| DHT22 DATA | Pin 7 | Sensordaten |
Formatiere die Micro-SD-Karte vorher am Computer als FAT32 – andere Dateisysteme werden von der Arduino-SD-Bibliothek nicht unterstützt.
Der Code
Installiere zusätzlich zur SD-Bibliothek (in der Arduino IDE bereits vorinstalliert) die Bibliothek „DHT sensor library" von Adafruit.
#include <SPI.h>
#include <SD.h>
#include "DHT.h"
#define DHT_PIN 7
#define DHT_TYPE DHT22
#define CS_PIN 10
DHT dht(DHT_PIN, DHT_TYPE);
unsigned long letzterLog = 0;
const unsigned long logIntervall = 60000; // alle 60 Sekunden loggen
void setup() {
Serial.begin(9600);
dht.begin();
if (!SD.begin(CS_PIN)) {
Serial.println("SD-Karte nicht gefunden!");
return;
}
File logDatei = SD.open("klima.csv", FILE_WRITE);
if (logDatei) {
logDatei.println("Zeit_ms,Temperatur_C,Feuchtigkeit_Prozent");
logDatei.close();
}
Serial.println("Datenlogger bereit.");
}
void loop() {
if (millis() - letzterLog >= logIntervall) {
letzterLog = millis();
float temperatur = dht.readTemperature();
float feuchtigkeit = dht.readHumidity();
if (isnan(temperatur) || isnan(feuchtigkeit)) {
Serial.println("Sensorfehler - Messung uebersprungen");
return;
}
File logDatei = SD.open("klima.csv", FILE_WRITE);
if (logDatei) {
logDatei.print(millis());
logDatei.print(",");
logDatei.print(temperatur);
logDatei.print(",");
logDatei.println(feuchtigkeit);
logDatei.close();
Serial.println("Messwert gespeichert.");
} else {
Serial.println("Fehler beim Oeffnen der Datei!");
}
}
}
So funktioniert's
Jede Zeile in klima.csv enthält Zeitstempel, Temperatur und Feuchtigkeit – getrennt durch Kommas, also im klassischen CSV-Format. Die Datei öffnest und schließt du bei jedem Speichervorgang neu, damit die Daten auch bei einem plötzlichen Stromausfall nicht verloren gehen. Statt millis() (Millisekunden seit Start) kannst du mit einem zusätzlichen RTC-Modul echte Uhrzeiten loggen.
Praxisprojekte
🌡️ Langzeit-Klimaprotokoll: Zeichne über Wochen Temperatur- und Feuchtigkeitsverläufe in Keller, Gewächshaus oder Werkstatt auf.
💧 Bewässerungs-Protokoll: Kombiniere den Logger mit dem Bodenfeuchtesensor aus unserem Pflanzenbewässerungs-Tutorial, um zu sehen, wie oft und wie stark bewässert wurde.
📊 Schul- & Wissenschaftsprojekte: Erfasse reproduzierbare Messreihen für Referate oder Facharbeiten – ganz ohne dauerhaft angeschlossenen Computer.
Häufige Fehler
⚠️ „SD-Karte nicht gefunden": Meist liegt es an einer falsch formatierten Karte (muss FAT32 sein) oder einem falschen CS-Pin in SD.begin().
⚠️ Datei bleibt leer: Prüfe, ob du logDatei.close() nach jedem Schreibvorgang aufrufst – ohne das Schließen werden Daten oft nicht final auf die Karte geschrieben.
⚠️ Instabiler Betrieb bei langer Laufzeit: Häufiges Schreiben verkürzt die Lebensdauer der SD-Karte. Ein Logintervall von 30–60 Sekunden ist für die meisten Umweltmessungen völlig ausreichend.
🔧 Baue deinen eigenen Datenlogger
Alle Bauteile für deinen Datenlogger findest du bei makeroo.
- Sensoren & Module – SD-Kartenleser, DHT22, Bodenfeuchte & mehr
- Mikrocontroller-Boards – UNO R3, Nano V3 und ESP32
Kombiniere den Logger mit unserem BMP280-Luftdruck-Tutorial für ein noch vollständigeres Klimaprotokoll.
Fazit
Mit einem Micro-SD-Modul verwandelst du jedes Sensor-Projekt in einen echten Datenlogger – unabhängig vom angeschlossenen Computer. Die Grundstruktur aus diesem Tutorial lässt sich auf fast jeden Sensor aus unseren anderen Anleitungen übertragen.