SD Kart Veri Kayıt İstasyonu
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 Pini | Bağ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
| 1 | #include <SPI.h> |
| 2 | #include <SD.h> |
| 3 | const int chipSelect = 10; |
| 4 | const int lm35 = A0; |
| 5 | unsigned long sayac = 0; |
| 6 | |
| 7 | void 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 | |
| 16 | void 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.
Benzer Projeler
GPS Konum Takip Cihazı
NEO-6M GPS modülünden enlem/boylam okuyup Seri Monitör'de gösterir; modül NMEA formatında ham metin cümleleri gönderir, TinyGPS++ kütüphanesi bu cümleleri ayrıştırıp kullanılabilir sayılara çevirir.
Parmak İzi ile Kapı Kilidi
R307 parmak izi sensörüyle önceden kaydedilmiş bir parmak izini tanıyıp doğrulandığında servo ile kilidi açar; tanıma işlemi sensörün kendi üzerinde yapılır, Arduino sadece sonucu okuyup kilide iletir.
RFID Kartlı Erişim Sistemi
RC522 RFID okuyucu ile yetkili kartları tanıyıp servo motorla kilidi açar, yetkisiz kartlarda buzzer ile uyarır — RC522'nin 3.3V-only oluşu bu projedeki en sık yapılan bağlantı hatasının kaynağıdır (bkz. Çalışma Açıklaması).