#include <SPI.h>
#include <SD.h>
#include <dht11.h>
#include <Wire.h>
#include <DS3231.h>
#define DHT11_PIN 2
#define chipSelect_pin 4
DS3231 clock;
RTCDateTime dt;
dht11 DHT;
String SD_data = "";
void setup() {
Serial.begin(9600);
clock.begin();
Serial.print("Preparazione SD card...");
if (!SD.begin(chipSelect_pin)) {
Serial.println("Preparazione fallita o SD non presente");
return;
}
Serial.println("SD pronta.");
SD_data +="Data \t Ora \t \t Temperatura in C \t \t Umidita' in %";
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(SD_data);
dataFile.close();
// print to the serial port too:
Serial.println(SD_data);
SD_data="";
}
}
void loop() {
// preparo la stringa da scrivere nel SD
dt = clock.getDateTime();
SD_data +=dt.day; SD_data +="-";
SD_data +=dt.month; SD_data +="-";
SD_data +=dt.year; SD_data +="\t";
SD_data +=dt.hour; SD_data +=":";
SD_data +=dt.minute; SD_data +="\t";
/* SD_data += "RTC Temperatura: ";
SD_data += clock.readTemperature();
SD_data += " C \t";*/
DHT.read(DHT11_PIN);
SD_data += "Temperatura in C: \t";
SD_data += (DHT.temperature);
SD_data += "\t Umidita' in %: \t";
SD_data += (DHT.humidity);
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.println(SD_data);
dataFile.close();
// print to the serial port too:
Serial.println(SD_data);
SD_data="";
}
// if the file isn't open, pop up an error:
else {
Serial.println("File datalog.txt non accessibile");
}
delay(60000);
}







