#include <Wire.h>
#include "RTClib.h"
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
//definiЕЎemo pinove i objekte
RTC_DS1307 rtc;
DHT dht;
const int SD_CS = 10;
int ledPin = 6;
#define DHTPin 7
File dataFile;
void setup () {//pokrecemo objekte rtc, dht i sd
    Serial.begin(9600);
    rtc.begin();
    SD.begin(SD_CS);
    dht.setup(DHTPin);
    File dataFile = SD.open ("log.csv",FILE_WRITE); //kreiramo fajl
    dataFile.println("vreme,temperatura,vlaznost");
    dataFile.close();
}
void loop () {
    File dataFile = SD.open ("log.csv",FILE_WRITE); //otvaramo log.csv datoteku
    float temp = dht.getTemperature(); //prikupljamo podatke o temperaturi
    float vlaga = dht.getHumidity(); //prikupljamo podatke o vlaznosti vazduha
    DateTime now = rtc.now(); 
    Serial.print(now.hour(), DEC); //pratimo na serijal monitoru upis
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    Serial.print("Temperatura: ");
    Serial.println(temp);
    Serial.print("Vlaznost: ");
    Serial.println(vlaga);
    Serial.println();  
    if(dataFile) { //ako je kreirana datoteka, ako fajl postoji, vrsimo upis podataka
        dataFile.print(now.hour(), DEC);
        dataFile.print(':');
        dataFile.print(now.minute(), DEC);
        dataFile.print(':');
        dataFile.print(now.second(), DEC);
        dataFile.print(",");   
        dataFile.print(temp);
        dataFile.print(",");
        dataFile.print(vlaga);
        dataFile.println();
        dataFile.close();
        digitalWrite(ledPin,HIGH); //prilikom svakog upisa LED ce trepnuti
        delay(100);
        digitalWrite(ledPin,LOW); 
    } else {
        Serial.println("nije kreirana datoteka"); //datoteka nije kreirana (losa kartica, SD_CS nije na pinu 10...
    }
    delay(60000); //pravimo razmak od jednog minuta pre sledeceg upisa
}