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