FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Gegevensregistratie met Arduino en een SD -kaartmodule

Data Logging with Arduino and an SD Card Module

Data logging is een cruciaal aspect van veel IoT-, milieu-monitoring- en sensor-gebaseerde projecten. Met een Arduino en een SD-kaartmodule sensorgegevens, tijdstempels en andere metingen opslaan voor toekomstige analyse. Deze gids laat u zien hoe u connecteer een SD-kaartmodule naar Arduino, gegevens schrijven en lezen, en veelvoorkomende problemen oplossen.


1. Wat u nodig hebt

✅ Arduino-board (Uno, Mega, Nano, etc.)
✅ Micro SD-kaartmodule (op SPI-basis)
✅ MicroSD-kaart (FAT32-geformatteerd, 2GB–32GB aanbevolen)
✅ Jumperdraden
✅ Sensoren (optioneel, bijv. DHT11, BMP280, enz.)

🔹 Opmerking: De SD-module communiceert met Arduino via SPI (Serial Peripheral Interface).


2. Bedrading van de SD-kaartmodule naar Arduino

SD-kaartmodule Pin Arduino Uno Pin Arduino Mega Pin
VCC 5V 5V
GND GND GND
MISO 12 (SPI MISO) 50 (SPI MISO)
MOSI 11 (SPI MOSI) 51 (SPI MOSI)
SCKk 13 (SPI SCK) 52 (SPI SCK)
CS (Chip Select) 10 (SPI CS) 53 (SPI CS)

3. De vereiste bibliotheek installeren

  1. Open Arduino IDE.
  2. Ga naar Sketch → Bibliotheek toevoegen → Bibliotheken beheren.
  3. Zoeken naar SD installeer de SD Library van Arduino.

4. De SD-kaart initialiseren (testen of de SD-module werkt)

Gebruik het volgende basistestcode om te controleren of de SD-module werkt:

#include 
#include 

const int chipSelect = 10;  // Stel CS-pin in voor SD-kaart

void setup() {
    Serial.begin(115200);
    Serial.print("SD-kaart initialiseren...");

    if (!SD.begin(chipSelect)) {
        Serial.println("Initialisatie SD-kaart mislukt!");
        return;
    }
    Serial.println("SD-kaart is gereed.");
}

void loop() {
    // Hier niets
}

Wat deze code doet:

✔ Initialiseert de SD-module.
SD-kaart is gereed indien gedetecteerd.
SD-kaart initialisatie mislukt! als er een fout optreedt.

🔹 Problemen oplossen:
✅ Controleer of de SD-kaart FAT32 geformatteerd.
✅ Zorg voor correcte bedrading (MISO, MOSI, SCK en CS).
✅ Probeer een andere CS-pin (bijv. 4 in plaats van 10) update de code.


5. Gegevens naar de SD-kaart schrijven

Dit voorbeeld maakt een bestand aan (data.txt) and writes sensor readings to it.

#include 
#include 

const int chipSelect = 10;  

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD-kaart initialisatie mislukt!");
        return;
    }
    
    File dataFile = SD.open("data.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.println("Hallo, dit is een testlog!");
        dataFile.close();
        Serial.println("Gegevens naar SD-kaart geschreven.");
    } else {
        Serial.println("Fout bij het openen van bestand.");
    }
}

void loop() {
    // Niets hier
}

Wat deze code doet:

✔ Maakt of opent data.txt.
✔ Schrijft "Hallo, dit is een testlog!" aan het bestand.
✔ Sluit het bestand na het schrijven.

🔹 Bestandsbeheerfuncties:
✔ SD.open("filename.txt", FILE_WRITE); → Open bestand om te schrijven.
✔ dataFile.println("Tekst"); → Gegevens naar bestand schrijven.
✔ dataFile.close(); → Sluit het bestand om gegevens op te slaan.


6. Gegevens lezen van de SD-kaart

Gebruik deze code om gegevens van de SD-kaart lezen en weergeven.

#include 
#include 

const int chipSelect = 10;

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("Initialisatie SD-kaart mislukt!");
        return;
    }

    File dataFile = SD.open("data.txt");
    if (dataFile) {
        Serial.println("Bestand lezen...");
        while (dataFile.available()) {
            Serial.write(dataFile.read());  // Bestandsinhoud afdrukken
        }
        dataFile.close();
    } else {
        Serial.println("Openen van bestand mislukt.");
    }
}

void loop() {
    // Hier gebeurt niets
}

Wat deze code doet:

✔ Opent data.txt om te lezen.
✔ Drukt de inhoud van het bestand af op Serial Monitor.

🔹 Tip: Zorg ervoor dat het bestand bestaat al voor het lezen om fouten te voorkomen.


7. Sensorgegevens registreren op de SD-kaart

Dit voorbeeld registreert temperatuur- en vochtigheidsgegevens van een DHT11-sensor.

Required componenten

✅ DHT11 temperatuur- & vochtigheidssensor
✅ DHT-bibliotheek (Adafruit DHT Sensor Library)

Bedrading voor DHT11-sensor

DHT11-pin Arduino Pin
VCC 5V
GND GND
DATA 2

Code: DHT11-gegevens registreren op een SD-kaart

#include 
#include 
#include 

#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-kaart initialisatie mislukt!");
        return;
    }
}

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

    if (isnan(temp) || isnan(humidity)) {
        Serial.println("Mislukt om van DHT-sensor te lezen!");
        return;
    }

    File dataFile = SD.open("log.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.print("Temperatuur: ");
        dataFile.print(temp);
        dataFile.print(" °C, Luchtvochtigheid: ");
        dataFile.print(humidity);
        dataFile.println(" %");
        dataFile.close();
    } else {
        Serial.println("Mislukt om naar SD-kaart te schrijven.");
    }

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

    delay(2000);  // Log elke 2 seconden
}

Wat deze code doet:

✔ Leest temperatuur & vochtigheid van de DHT11-sensor.
✔ Registreert de gegevens in log.txt op de SD-kaart.
✔ Drukt de waarden af naar Serial Monitor.


8. Tips voor probleemoplossing

Probleem: SD-kaart niet gedetecteerd?
✅ Zorg ervoor dat de SD-kaart FAT32 geformatteerd.
✅ Dubbelchecken MISO-, MOSI-, SCK- en CS-bedrading.
✅ Probeer een andere SD-kaart (sommige kaarten zijn niet compatibel).

Probleem: Worden de gegevens niet opgeslagen?
✅ Altijd sluit het bestand met behulp van dataFile.close();.
✅ Zorg voor voldoende opslagruimte is beschikbaar op de SD-kaart.


9. Praktische toepassingen

✔ Weather-monitoringsysteem – Registreer temperatuur, luchtvochtigheid en luchtdruk.
✔ Energy-monitoring – Opnemen spanning en stroom readings over time.
✔ GPS-tracking breedtegraad en lengtegraad gegevens van een gps-module.
✔ Gebeurtenisregistratie – Registreer sensortriggers of knopdrukken.


10. Conclusie

Met behulp van een SD-kaartmodule met Arduino is een geweldige manier om sensorgegevens opslaan, gebeurtenissen registreren of een draagbare datalogger maken. Met SPI-communicatie bestanden lezen en schrijven IoT- en automatiseringsprojecten.

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.

Laat een reactie achter