#include <SD.h>
#include <Wire.h>
#include <RTClib.h>
#include <DHT.h>
#include <LiquidCrystal.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
RTC_DS3231 rtc;
File dataFile;
LiquidCrystal lcd(6, 5, 4, 9, 8, 7);
int control = 0;
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
while (!Serial) {}
if (!SD.begin(10)) {
Serial.println("SD card initialization failed!");
return;
}
if (!rtc.begin()) {
Serial.println("RTC initialization failed!");
return;
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
dht.begin();
}
void loop() {
DateTime now = rtc.now();
float temperature = dht.readTemperature();
if (control<10){
Serial.print(control);
control ++;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print(' ');
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.setCursor(0,1);
lcd.print(temperature);
lcd.println("C");
}
else{
dataFile = SD.open("logTemp.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(now.year(), DEC);
dataFile.print('/');
dataFile.print(now.month(), DEC);
dataFile.print('/');
dataFile.print(now.day(), DEC);
dataFile.print(' ');
dataFile.print(now.hour(), DEC);
dataFile.print(':');
dataFile.print(now.minute(), DEC);
dataFile.print(':');
dataFile.print(now.second(), DEC);
dataFile.print(',');
dataFile.print("Temperature: ");
dataFile.print(temperature);
dataFile.print("ºC");
dataFile.println();
dataFile.close();
}
else
{
Serial.println("Error opening logTemp.txt!");
}
Serial.println();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.print(',');
Serial.println();
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("ºC");
//Serial.println("fui");
control = 0;
}
delay(1000);
}