Tietojen kirjaaminen Arduinolla ja SD -korttimoduulilla

Data Logging with Arduino and an SD Card Module

Tietojen kirjaaminen on monien ratkaiseva osa IoT-, ympäristön seuranta ja anturipohjaiset projektit. Kanssa Arduino ja SD -korttimoduuli, voit Tallenna anturitiedot, aikaleimat ja muut lukemat Tulevaa analyysiä varten. Tämä opas näyttää kuinka Kytke SD -korttimoduuli Arduinoksi, Kirjoita ja lue tietoja ja vianmääritys yleisiä ongelmia.


1. Mitä tarvitset

Arduino -lautakunta (UNO, Mega, Nano jne.)
Micro SD -korttimoduuli (SPI-pohjainen)
MicroSD -kortti (FAT32 -muotoinen, 2 Gt - 32 Gt suositellaan)
Hyppyjohdot
Anturit (valinnainen, esim. DHT11, BMP280 jne.)

🔹 Huomaa: SD -moduuli kommunikoi Arduinon kanssa käyttämällä SPI (Sarjaperifeerinen rajapinta).


14. SD -korttimoduulin johdotus Arduinolle

SD -korttimoduulin nasta Arduino uno -nasta Arduino Mega Pin
VCC 5V 5V
Hölynpöly Hölynpöly Hölynpöly
Misio 12 (SPI MISO) 50 (SPI MISO)
Mosi 11 (Spi Mosi) 51 (Spi Mosi)
Sck 13 (SPI SCK) 52 (SPI SCK)
CS (Chip Select) 10 (Spi CS) 53 (Spi CS)

3. vaaditun kirjaston asentaminen

  1. Avata Arduino IDE.
  2. Mennä jhk Luonnos → Sisällytä kirjasto → Hallitse kirjastoja.
  3. Etsiä jtk SD ja asenna SD -kirjasto, kirjoittanut Arduino.

4. SD -kortin alustaminen (testi, jos SD -moduuli toimii)

Käytä seuraavia peruskoodi Tarkistaa, toimiiko SD -moduuli:

#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
}

Mitä tämä koodi tekee:

✔ Alustaa SD -moduuli.
✔ Tulosteet "SD -kortti on valmis" Jos havaitaan.
✔ Tulosteet "SD -kortin alustus epäonnistui!" Jos on virhe.

🔹 Vianmääritys:
✅ Tarkista, että SD -kortti on FAT32 muotoiltu.
✅ Varmistaa oikea johdotus (MISO, MOSI, SCK ja CS).
✅ Kokeilla CS -nasta (esim. 4 10: n sijasta) ja päivitä koodi.


5. Tietojen kirjoittaminen SD -kortille

Tämä esimerkki luo tiedoston (data.txt) ja kirjoittaa sille anturin lukemat.

#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
}

Mitä tämä koodi tekee:

✔ Luo tai avautuu data.txt.
✔ Kirjoittaa "Hei, tämä on tesiloki!" tiedostoon.
✔ Sulje tiedosto kirjoittamisen jälkeen.

🔹 Tiedostojen käsittelytoiminnot:
SD.open("filename.txt", FILE_WRITE); → Avaa tiedosto kirjoittamista varten.
dataFile.println("Text"); → Kirjoita tiedot tiedostoon.
dataFile.close(); → Sulje tiedosto tietojen tallentamiseksi.


6. SD -kortin tietojen lukeminen

Käytä tätä koodia Lue ja näytä tiedot SD -kortista.

#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
}

Mitä tämä koodi tekee:

✔ Aukea data.txt lukemiseen.
✔ Tulostaa tiedoston sisällön Sarjamonitori.

🔹 Kärki: Varmista, että tiedosto on olemassa ennen lukemista virheiden välttämiseksi.


7. SKS -anturitiedot SD -kortille

Tämä esimerkki kirjautuu DHT11 -anturin lämpötila- ja kosteustiedot.

Vaadittavat komponentit

DHT11 -lämpötila- ja kosteusanturi
DHT -kirjasto (Adafruit DHT -anturikirjasto)

Johdotus DHT11 -anturille

DHT11 -nasta Arduino -nasta
VCC 5V
Hölynpöly Hölynpöly
Tiedot 2

Koodi: DHT11 -tietojen kirjaaminen SD -kortille

#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
}

Mitä tämä koodi tekee:

✔ Lukema lämpötila ja kosteus peräisin DHT11 -anturi.
✔ Kirjataan tiedot sisään log.txt SD -kortilla.
✔ Tulostaa arvot Sarjamonitori.


8. Vianmääritysvinkit

Ongelma: SD -korttia ei havaittu?
✅ Varmista, että SD -kortti on FAT32 muotoiltu.
✅ Kaksoiskorvaus MISO, MOSI, SCK ja CS -johdotus.
✅ Yrittää erilainen SD -kortti (Jotkut kortit ovat yhteensopimattomia).

Ongelma: Tiedot eivät säästä?
✅ Aina sulje tiedosto käyttäminen dataFile.close();.
✅ Varmistaa Tarpeeksi säilytystila on saatavana SD -kortilla.


9. käytännön sovellukset

Sään seurantajärjestelmä - Tukin lämpötila, kosteus ja ilmanpaine.
Energianvalvonta - levy jännite ja virta Lukemat ajan myötä.
GPS -seuranta - Store leveysaste ja pituusaste GPS -moduulin tiedot.
Tapahtumien kirjaus - Tallenna anturi laukaisee tai painike.


10. Johtopäätös

Käyttämällä SD -korttimoduuli Arduinolla on hieno tapa Tallenna anturitiedot, lokitapahtumat tai luo kannettava tiedonsiirto. Kanssa SPI -viestintä, voit helposti Lue ja kirjoita tiedostoja, mikä tekee siitä ihanteellisen Internet- ja automaatioprojektit.

Jätä kommentti

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.