Datavoggning med Arduino och en SD -kortmodul

Data Logging with Arduino and an SD Card Module

Datavoggning är en avgörande aspekt av många IoT, miljöövervakning och sensorbaserade projekt. Med en Arduino och en SD -kortmodul, du kan Lagra sensordata, tidsstämplar och andra avläsningar för framtida analys. Den här guiden visar hur du gör Anslut en SD -kortmodul till Arduino, Skriv och läs data och felsöka vanliga problem.


1. Vad du behöver

Arduinstyrelse (Uno, Mega, Nano, etc.)
Micro SD-kortmodul (SPI-baserad)
MicroSD -kort (FAT32 formaterat, 2 GB - 32 GB rekommenderas)
Bulttrådar
Sensorer (valfritt, t.ex. DHT11, BMP280, etc.)

🔹 Notera: SD -modulen kommunicerar med Arduino med SPI (serieperifert gränssnitt).


2. Koppla av SD -kortmodulen till Arduino

SD -kortmodulstift Arduino uno stift Arduino mega
Vcc 5V 5V
Gard Gard Gard
Miso 12 (SPI MISO) 50 (SPI MISO)
Mosi 11 (SPI MOSI) 51 (SPI MOSI)
Säck 13 (SPI SCK) 52 (SPI SCK)
CS (Chip Select) 10 (spi cs) 53 (spi cs)

3. Installera det nödvändiga biblioteket

  1. Öppna Arduino IDE.
  2. Gå till Skiss → Inkludera bibliotek → Hantera bibliotek.
  3. Leta efter SD och installera SD -bibliotek av Arduino.

4. Initiera SD -kortet (Test om SD -modulen fungerar)

Använd följande grundläggande testkod För att kontrollera om SD -modulen fungerar:

#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;  // Set CS pin for SD card

void setup() {
    Serial.begin(115200);
    Serial.print("Initializing SD card...");

    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
    Serial.println("SD card is ready.");
}

void loop() {
    // Nothing here
}

Vad den här koden gör:

✔ Initialiserar SD -modul.
✔ Grafik "SD -kort är klart" Om detekteras.
✔ Grafik "SD -kortinitiering misslyckades!" Om det finns ett fel.

🔹 Felsökning:
✅ Kontrollera att SD -kortet är FAT32 formaterad.
✅ Säkerställa Korrekt ledning (Miso, Mosi, SCK och CS).
✅ Prova en annan CS Pin (t.ex. 4 istället för 10) och uppdatera koden.


5. Skriva data till SD -kortet

Detta exempel skapar en fil (data.txt) och skriver sensoravläsningar till det.

#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;  

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
    
    File dataFile = SD.open("data.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.println("Hello, this is a test log!");
        dataFile.close();
        Serial.println("Data written to SD card.");
    } else {
        Serial.println("Failed to open file.");
    }
}

void loop() {
    // Nothing here
}

Vad den här koden gör:

✔ Skapar eller öppnar data.txt.
✔ Skrivande "Hej, det här är en testlogg!" till filen.
✔ Stänger filen efter att ha skrivit.

🔹 Filhanteringsfunktioner:
SD.open("filename.txt", FILE_WRITE); → Öppna fil för att skriva.
dataFile.println("Text"); → Skriv data till filen.
dataFile.close(); → Stäng filen för att spara data.


6. Läser data från SD -kortet

Använd den här koden till Läs och visa data från SD -kortet.

#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }

    File dataFile = SD.open("data.txt");
    if (dataFile) {
        Serial.println("Reading file...");
        while (dataFile.available()) {
            Serial.write(dataFile.read());  // Print file content
        }
        dataFile.close();
    } else {
        Serial.println("Failed to open file.");
    }
}

void loop() {
    // Nothing here
}

Vad den här koden gör:

✔ Öppet data.txt för läsning.
✔ Skriver ut innehållet i filen till Serieövervakare.

🔹 Dricks: Se till att filen finns innan du läser för att undvika fel.


7. Loggningssensordata till SD -kortet

Detta exempel loggar Temperatur- och fuktdata från en DHT11 -sensor.

Obligatoriska komponenter

DHT11 Temperatur- och fuktighetssensor
DHT Library (Adafruit DHT Sensor Library)

Ledningar för DHT11 -sensor

DHT11 -stift Arduinosnål
Vcc 5V
Gard Gard
DATA 2

Kod: Logging DHT11 -data till SD -kort

#include <SPI.h>
#include <SD.h>
#include <DHT.h>

#define DHTPIN 2      // Pin connected to DHT sensor
#define DHTTYPE DHT11 // Define sensor type (DHT11 or DHT22)
DHT dht(DHTPIN, DHTTYPE);

const int chipSelect = 10;

void setup() {
    Serial.begin(115200);
    dht.begin();

    if (!SD.begin(chipSelect)) {
        Serial.println("SD card initialization failed!");
        return;
    }
}

void loop() {
    float temp = dht.readTemperature();
    float humidity = dht.readHumidity();

    if (isnan(temp) || isnan(humidity)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
    }

    File dataFile = SD.open("log.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.print("Temperature: ");
        dataFile.print(temp);
        dataFile.print(" °C, Humidity: ");
        dataFile.print(humidity);
        dataFile.println(" %");
        dataFile.close();
    } else {
        Serial.println("Failed to write to SD card.");
    }

    Serial.print("Logged: Temp = ");
    Serial.print(temp);
    Serial.print(" °C, Humidity = ");
    Serial.println(humidity);

    delay(2000);  // Log every 2 seconds
}

Vad den här koden gör:

✔ Avläsningar temperatur och fuktighet från den DHT11 -sensor.
✔ Loggar in data log.txt på SD -kortet.
✔ Skriver ut värdena till Serieövervakare.


8. Felsökningstips

Problem: SD -kort upptäcks inte?
✅ Se till att SD -kortet är FAT32 formaterad.
✅ Dubbelkontroll Miso, Mosi, SCK och CS -ledningar.
✅ Försök Ett annat SD -kort (Vissa kort är oförenliga).

Problem: Data sparar inte?
✅ Alltid Stäng filen användning dataFile.close();.
✅ Säkerställa Tillräckligt med lagringsutrymme är tillgängligt på SD -kortet.


9. Praktiska applikationer

Väderövervakningssystem - Loggtemperatur, luftfuktighet och lufttryck.
Energiövervakning - Registrera spänning och ström Läsningar över tiden.
GPS -spårning - förvara latitud och longitud Data från en GPS -modul.
Evenemangsloggning - Spela sensor triggers eller knapptryckningar.


10. Slutsats

Med hjälp av en SD -kortmodul med Arduino är ett bra sätt att Förvara sensordata, logga händelser eller skapa en bärbar datalogger. Med SPI -kommunikation, du kan enkelt Läs och skriv filer, vilket gör det idealiskt för IoT och automatiseringsprojekt.

Lämna en kommentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.