FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Adatnaplózás Arduino -val és egy SD -kártya modullal

Data Logging with Arduino and an SD Card Module

An adatnaplózás kulcsfontosságú szempont számos IoT-, környezetvédelmi megfigyelő és szenzoralapú projektek. Egy Arduino és egy SD-kártya modul tárolja a szenzoradatokat, időbélyegeket és egyéb mérési eredményeket a jövőbeli elemzésekhez. Ez az útmutató bemutatja, hogyan kell csatlakoztasson egy SD-kártya modul az Arduinohoz, adatok írása és olvasása, valamint a gyakori problémák hibaelhárítása.


1. Amire szüksége lesz

✅ Arduino kártya (Uno, Mega, Nano stb.)
✅ Micro SD-kártya modul (SPI-alapú)
✅ MicroSD-kártya (FAT32 formátumú, 2GB–32GB ajánlott)
✅ Mérőzsinórok
✅ Szenzorok (opcionális, pl. DHT11, BMP280, stb.)

🔹 Megjegyzés: Az SD-modul az Arduino-val a következő módon kommunikál: SPI (Serial Peripheral Interface).


2. A huzalozás SD-kártya modul az Arduinohoz

SD-kártya modul Pin Arduino Uno kivezetés Arduino Mega láb
VCC 5V 5V
GND GND GND
MISO 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. A szükséges könyvtár telepítése

  1. Megnyitás Arduino IDE.
  2. Ugrás ide: Vázlat → Könyvtár hozzáadása → Könyvtárak kezelése.
  3. Keresés: SD SD Library by Arduino.

4. Az SD-kártya inicializálása (Az SD-modul működésének tesztelése)

Use the following alapvető tesztkód az SD-modul működésének ellenőrzéséhez:

c
#include 
#include 

const int chipSelect = 10;  // CS pin beállítása az SD-kártyához

void setup() {
    Serial.begin(115200);
    Serial.print("SD-kártya inicializálása...");

    if (!SD.begin(chipSelect)) {
        Serial.println("Az SD-kártya inicializálása sikertelen!");
        return;
    }
    Serial.println("Az SD-kártya készen áll.");
}

void loop() {
    // Itt nincs semmi
}

Mit csinál ez a kód:

✔ Inicializálja a SD modul.
✔ Nyomatok An SD-kártya készen áll ha észlelhető.
✔ Nyomatok SD-kártya inicializálása sikertelen! hiba esetén.

🔹 Hibaelhárítás:
✅ Ellenőrizze, hogy az SD-kártya FAT32 formátumú.
✅ Biztosítsa helyes bekötés (MISO, MOSI, SCK és CS).
✅ Próbáljon ki egy másikat CS láb (pl. 4 a 10 helyett)


5. Adatok írása az SD-kártyára

Ez a példa létrehoz egy fájlt (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 kártya inicializálása sikertelen!");
        return;
    }
    
    File dataFile = SD.open("data.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.println("Hello, ez egy teszt napló!");
        dataFile.close();
        Serial.println("Adatok kiírva az SD kártyára.");
    } else {
        Serial.println("Fájl megnyitása sikertelen.");
    }
}

void loop() {
    // Itt nincs semmi
}

Mit csinál ez a kód:

data.txt.
✔ Írja Hello, ez egy tesztnapló! a fájlhoz.
✔ Írás után bezárja a fájlt.

🔹 Fájlkezelő függvények:
✔ SD.open("filename.txt", FILE_WRITE); → Fájl megnyitása írásra.
✔ java dataFile.println("Szöveg"); → Adatok írása fájlba.
✔ dataFile.close(); → Az adatok mentéséhez zárja be a fájlt.


6. Adatok olvasása az SD-kártyáról

Használja ezt a kódot a adatok olvasása és megjelenítése az SD-kártyáról.

#include 
#include 

const int chipSelect = 10;

void setup() {
    Serial.begin(115200);
    if (!SD.begin(chipSelect)) {
        Serial.println("SD kártya inicializálása sikertelen!");
        return;
    }

    File dataFile = SD.open("data.txt");
    if (dataFile) {
        Serial.println("Fájl olvasása...");
        while (dataFile.available()) {
            Serial.write(dataFile.read());  // Fájltartalom kiírása
        }
        dataFile.close();
    } else {
        Serial.println("Nem sikerült megnyitni a fájlt.");
    }
}

void loop() {
    // Ide nem kerül semmi
}

Mit csinál ez a kód:

data.txt az olvasáshoz.
✔ Kinyomtatja a fájl tartalmát ide: Serial Monitor.

🔹 Tipp: Győződjön meg arról, hogy a fájl olvasás előtt létezik az hibák elkerülése érdekében.


7. Szenzoradatok mentése az SD-kártyára

Ez a példa naplózza hőmérsékleti és páratartalom-adatok egy DHT11 érzékelőből.

Szükséges összetevők

✅ DHT11 hőmérséklet- és páratartalom-szenzor
✅ DHT Library (Adafruit DHT Sensor Library)

DHT11 érzékelő bekötése

DHT11 lábkiosztás Arduino Pin
VCC 5V
GND GND
DATA 2

Kód: DHT11 adatok mentése SD-kártyára

c
#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-kártya inicializálása sikertelen!");
        return;
    }
}

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

    if (isnan(temp) || isnan(humidity)) {
        Serial.println("Nem sikerült olvasni a DHT szenzorból!");
        return;
    }

    File dataFile = SD.open("log.txt", FILE_WRITE);
    if (dataFile) {
        dataFile.print("Hőmérséklet: ");
        dataFile.print(temp);
        dataFile.print(" °C, Páratartalom: ");
        dataFile.print(humidity);
        dataFile.println(" %");
        dataFile.close();
    } else {
        Serial.println("Nem sikerült írni az SD-kártyára.");
    }

    Serial.print("Naplózva: Hőm = ");
    Serial.print(temp);
    Serial.print(" °C, Páratartalom = ");
    Serial.println(humidity);

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

Mit csinál ez a kód:

✔ Olvasás hőmérséklet és páratartalom -ből a DHT11 szenzor.
✔ Adatok naplózása itt: log.txt az SD-kártyán.
✔ Kinyomtatja az értékeket ide: Serial Monitor.


8. Hibaelhárítási tippek

Probléma: Nem észlelhető az SD-kártya?
✅ Győződjön meg arról, hogy az SD-kártya FAT32 formátumú.
✅ Ellenőrzés MISO, MOSI, SCK és CS bekötés.
✅ Próbálja ki egy másik SD-kártya (egyes kártyák nem kompatibilisek).

Probléma: Nem mentődnek az adatok?
✅ Mindig fájl bezárása használatával dataFile.close();.
✅ Biztosítsa elegendő tárhely elérhető az SD-kártyán.


9. Gyakorlati alkalmazások

✔ Időjárás-megfigyelő rendszer – Hőmérséklet, páratartalom és légnyomás rögzítése.
✔ Energy Monitoring feszültség és áramerősség readings over time.
✔ GPS nyomkövetés szélesség és hosszúság adatok egy GPS-modulból.
✔ Eseménynaplózás


10. Összegzés

Használatával egy SD-kártya modul Arduino-val nagyszerű módja annak, hogy tárolhat szenzoradatokat, naplózhat eseményeket, vagy készíthet hordozható adatnaplózót. A(z) SPI-kommunikáció, könnyedén fájlok olvasása és írása, így ideális a IoT és automatizálási projektek.

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.

Hagyj egy megjegyzést