Arduino ve bir SD kart modülü ile veri günlüğü

Data Logging with Arduino and an SD Card Module

Veri günlüğü birçok kişinin önemli bir yönüdür IoT, çevre izleme ve sensör tabanlı projeler. Bir Arduino ve bir SD kart modülü, yapabilirsiniz Sensör verilerini, zaman damgalarını ve diğer okumaları saklayın Gelecek analiz için. Bu rehber size nasıl yapılacağını gösterecek Arduino'ya bir SD kart modülü bağlayın, veri yazın ve okuyun ve yaygın sorunları giderin.


1. Ne İhtiyacınız Var

Arduino Kurulu (UNO, Mega, Nano, vb.)
Micro SD kart modülü (SPI tabanlı)
MicroSD kart (FAT32 Biçimlendirilmiş, 2GB - 32GB Önerilen)
Jumper telleri
Sensörler (isteğe bağlı, örn., DHT11, BMP280, vb.)

🔹 Not: SD modülü, Arduino ile iletişim kurar. SPI (seri periferik arayüz).


2. SD kart modülünü Arduino'ya bağlama

SD kart modülü pimi Arduino uno pin Arduino mega pimi
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. Gerekli kütüphaneyi yükleme

  1. Açık Arduino IDE.
  2. Gidip gelmek Eskiz → Kütüphane Ekle → Kütüphaneleri Yönetin.
  3. Araştırmak SD ve yükle Arduino tarafından SD Kütüphanesi.

4. SD kartı başlatma (SD modülünün çalışıp çalışmadığını test edin)

Aşağıdakileri kullanın Temel Test Kodu SD modülünün çalışıp çalışmadığını kontrol etmek için:

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

Bu kod ne yapar:

✔ Başlatır SD modülü.
✔ Baskılar "SD kart hazır" tespit edilirse.
✔ Baskılar "SD kart başlatma başarısız oldu!" Bir hata varsa.

🔹 Sorun Giderme:
✅ SD kartın FAT32 Biçimlendirilmiş.
✅ Emin olmak Doğru Kablolama (MISO, MOSI, SCK ve CS).
✅ Bir başkasını dene CS PIN (örneğin 10 yerine 4) ve kodu güncelleyin.


5. SD karta veri yazma

Bu örnek Bir dosya oluşturur (data.txt) ve sensör okumaları yazıyor.

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

Bu kod ne yapar:

✔ Yaratır veya açar data.txt.
✔ Yazıyor "Merhaba, bu bir test günlüğü!" dosyaya.
✔ Yazdıktan sonra dosyayı kapatır.

🔹 Dosya İşleme İşlevleri:
SD.open("filename.txt", FILE_WRITE); → Yazmak için dosyayı açın.
dataFile.println("Text"); → Dosyaya veri yazın.
dataFile.close(); → Verileri kaydetmek için dosyayı kapatın.


6. SD karttan veri okuma

Bu kodu kullanın SD karttan verileri okuyun ve görüntüleyin.

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

Bu kod ne yapar:

✔ Açılır data.txt okumak için.
✔ Dosyanın içeriğini şu adrese yazdırıyor Seri monitör.

🔹 Uç: Dosyanın emin olun okumadan önce var hataları önlemek için.


7. SD karta oturum açma sensörü verileri

Bu örnek günlükler DHT11 sensöründen sıcaklık ve nem verileri.

Gerekli Bileşenler

DHT11 Sıcaklık ve Nem Sensörü
DHT Kütüphanesi (Adafruit DHT sensörü kütüphanesi)

DHT11 sensörü için kablolama

DHT11 PIN Arduino pimi
VCC 5V
Gnd Gnd
VERİ 2

Kod: DHT11 verilerinin SD karta kaydedilmesi

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

Bu kod ne yapar:

✔ Okuma Sıcaklık ve Nem ondan DHT11 sensörü.
✔ Verileri günlüğe kaydeder log.txt SD kartta.
✔ Değerleri yazdırır Seri monitör.


8. Sorun Giderme İpuçları

Sorun: SD kart tespit edilmedi mi?
✅ SD kartın FAT32 Biçimlendirilmiş.
✅ Çift kontrol etmek MISO, MOSI, SCK ve CS kablolama.
✅ Denemek Farklı bir SD kart (Bazı kartlar uyumsuzdur).

Sorun: Veriler kaydedilmiyor mu?
✅ Her zaman Dosyayı kapat kullanma dataFile.close();.
✅ Emin olmak Yeterli Depolama alanı SD kartta mevcuttur.


9. Pratik uygulamalar

Hava Durumu İzleme Sistemi - Log sıcaklığı, nem ve hava basıncı.
Enerji izleme - Kayıt voltaj ve akım Zamanla okumalar.
GPS izleme - Mağaza enlem ve boylam GPS modülünden veriler.
Etkinlik Günlüğü - Sensör tetikleyicilerini veya düğmeye basmalarını kaydedin.


10. Sonuç

Bir Arduino ile SD kart modülü harika bir yol Sensör verilerini depolayın, günlüğe kaydedin veya taşınabilir bir veri kaydedici oluşturun. İle SPI İletişimi, kolayca yapabilirsin Dosyaları oku ve yaz, için ideal IoT ve Otomasyon Projeleri.

Yorum bırak

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.