Tutorial Project Arduino Data Logger Menggunakan SD Card


Sebelumnya telah diulas mengenai membuat data logger dengan internal EEPROM pada Arduino, untuk bahasan kali ini akan dibahas sedikit tentang data logger dengan menggunakan external media storage, yakni menggunakan SD card. Data yang akan dicatat dan disimpan di SD card ialah data suhu. Sehingga dalam tutorial ini akan digunakan sensor suhu LM35.

Wiring Diagram

<img src="arduino_sd_card.png" alt="arduino_sd_card">


Untuk pengkabelan tampak seperti pada gambar.
  • Pin SS (Slave Select) modul SD card terhubung ke pin digital 4 Arduino
  • Pin MOSI (Master Output Slave Input) modul SD card terhubung ke pin digital 11 Arduino
  • Pin MISO (Master Input Slave Output) modul SD card terhubung ke pin digital 12 Arduino
  • Pin SCK (Serial Clock) modul SD card terhubung ke pin digital 13 Arduino
  • Pin Vcc (5V) modul SD card terhubung ke pin Vcc 5 volt Arduino
  • Pin GND modul SD card terhubung ke pin GND Arduino

Perlu diketahui bahwa antarmuka board Arduino Uno dengan module SD card menggunakan komunikasi SPI, oleh karena itu fungsi dari pin digital 11, 12, dan 13, tidak dapat diganti dengan pin digital lainnya. Sedangkan untuk pin yang terhubung dengan Slave Select module SD card dapat diganti dengan pin manapun, tidak harus menggunakan pin digital 4. Deklarasi pin Slave Select harus dimasukkan dalam source code (sketch), meski pin tersebut tidak digunakan.
Sementara itu untuk pin data sensor suhu LM35 akan dihubungkan ke pin analog A0 Arduino, demikian pula Vcc dan ground sensor LM35 dihubungkan ke pin Arduino yang sesuai.

Source Code
Berikut adalah source code (sketch) aplikasi data logger suhu dengan menggunakan media penyimpan SD card.

/*
Program data logger suhu
dengan SD card

Loki Lang
*/

#include <SD.h>

const int slaveSelect = 4;

void setup()
{
  Serial.begin(9600);
  Serial.print("Proses identifikasi SD card...");
  pinMode(10, OUTPUT);
  if(!SD.begin(slaveSelect))
  {
    Serial.println("SD card tidak terbaca");
    return;
  }
  Serial.println("SD card ditemukan");
}

void loop()
{
  String langString = "";
  int temp;
  int sensor = analogRead(A0);
  delay(10);
  temp = sensor * 0,488758553;
  langString += String(temp);
  langString += " celsius, ";
  File langFile = SD.open("data_logger.txt", FILE_WRITE);
  if(langFile)
  {
    langFile.println(langString);
    langFile.close();
    Serial.println(langString);
  }
  else
  {
    Serial.println("Error membuka data_logger.txt");
  }
}



Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment atau melalui page Facebook berikut.