Arduino Projeleri
#18Gelişmiş

SD Kart Veri Kayıt İstasyonu

~1,5 saatSPI haberleşme kavramı

Proje Amacı

Sıcaklık verisini zaman damgasıyla birlikte bir SD karta CSV formatında yazar — WiFi'siz bir Arduino Uno'nun veriyi 'gerçek zamanlı görmek' yerine 'sonradan analiz etmek' için nasıl kullanılabileceğinin en net örneği.

Gerekli Malzemeler

  • Arduino Uno
  • SD Kart Modülü
  • LM35
  • MicroSD Kart
  • Breadboard

Gerekli Kütüphaneler

SD — Arduino IDE ile birlikte gelir, ekstra kurulum gerekmez. SPI.h de yerleşiktir.

Pin Bağlantıları

Bileşen PiniBağlantı
SD Modülü CS
D10
SD Modülü MOSI
D11
SD Modülü MISO
D12
SD Modülü SCK
D13
SD Modülü VCC
5V
SD Modülü GND
GND
LM35 OUT
A0

Devre Şeması

Arduino Kodu

arduino-18-sd-kart-veri-kayit-istasyonu.ino
1#include <SPI.h>
2#include <SD.h>
3const int chipSelect = 10;
4const int lm35 = A0;
5unsigned long sayac = 0;
6
7void setup(){
8 Serial.begin(9600);
9 if(!SD.begin(chipSelect)){
10 Serial.println("SD kart bulunamadı!");
11 return;
12 }
13 Serial.println("SD kart hazır.");
14}
15
16void loop(){
17 float sicaklik = analogRead(lm35) * (5.0/1023.0) * 100.0;
18 File dosya = SD.open("veriler.csv", FILE_WRITE);
19 if(dosya){
20 dosya.print(sayac++); dosya.print(","); dosya.println(sicaklik);
21 dosya.close();
22 Serial.println("Kaydedildi: " + String(sicaklik));
23 } else {
24 Serial.println("Dosya açılamadı!");
25 }
26 delay(2000);
27}

Çalışma Açıklaması

SD kart modülü SPI hattını (D10-D13) kullanır, bu pinler aynı anda başka bir SPI cihazıyla çakışabilir. Kart takılı değilse veya bozuksa kod sessizce başarısız olabilir, 'SD.begin()' kontrolü bu yüzden önemlidir.

Test Bilgisi

SD kartı FAT32 formatlayın, modüle takın. Devreyi kurun, kodu yükleyin. Birkaç dakika çalıştırıp SD kartı bilgisayara takarak 'veriler.csv' dosyasında kayıtlı verileri kontrol edin.

Olası Sorunlar ve Çözümleri

SD kart tanınmıyorsa: kartın FAT32 formatlı olduğunu ve chipSelect pininin (10) doğru tanımlandığını kontrol edin. Dosya yazılamıyorsa: kartın yazma korumalı olmadığını ve boş alanı olduğunu kontrol edin. Kayıtlar bozuk/eksik görünüyorsa: dosya.close() çağrısının her yazmadan sonra yapıldığından emin olun (kod bunu zaten yapıyor, eklenen ek sensörlerde de aynı prensip korunmalı).

Alternatif Çözümler

LM35 yerine birden fazla sensör (nem, ışık, hareket) aynı anda kaydedilerek kapsamlı bir veri günlüğü sistemi kurulabilir. RTC (gerçek zamanlı saat) modülü eklenerek her kayda gerçek tarih/saat damgası eklenebilir. Kayıtlar WiFi modülüyle (ESP32'ye geçilerek) bir web sunucusuna da gönderilebilir.

Bu projenin kodunu AI ile özelleştir

Farklı pin, ek özellik ya da başka bir sensör mü istiyorsun?