#include "RTClib.h"
RTC_DS1307 rtc;
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
float Rum_set = 21; //temperaturen der er sat til rumvarme.
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup() {
// setup pinmode
pinMode(34, OUTPUT);
pinMode(49, OUTPUT);
Serial.begin(115200);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
}
void loop() { //programmet starter---------------------------------------
//-- tiden findes i RTC enheden-----------------------------------------------
DateTime now = rtc.now();
Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
//-- temperaturer udlæses-------------------------------------------------------------------------
float celsius_VVB = 1 / (log(1 / (1023. / analogRead(A2) - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature-VVB: ");
Serial.print(celsius_VVB);
Serial.println(" ℃");
float T_rum = 1 / (log(1 / (1023. / analogRead(A3) - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature_rum: ");
Serial.print(T_rum);
Serial.println(" ℃");
delay(3000);
//--- VVB pumpe ----------------------------------------------------------------
//VVB-pumpe relæ tænder hvis ...
//if time is nigth -> then off -> else ... 0-24 kan pt kun sættes til hele timer ???
if( now.hour() >= 0 && now.hour() < 24 ){
Serial.print("VVB-pumpe kan tænde [tid]");
Serial.println();
if(celsius_VVB < 40){
digitalWrite(34, LOW); // varmepumpen skal slukkes hvis der skal VVB tændes
digitalWrite(49, HIGH);
Serial.print("temperaturen er under 40 = VVB-pumpe er tændt");
Serial.println();
}
else{
digitalWrite(49, LOW);
int port49 = digitalRead(49);
Serial.print(port49);
Serial.println();
Serial.print("temperaturen er over 40 = VVB-pumpe er slukket");
Serial.println();
}
}
else{
Serial.print("VVB-pumpe kan ikke tænde, det er nat");
Serial.println();
}
//---pumpe til varme-------------------------------------------------------------------
// skal tænde hvis VVB er Slukket og der er brug for rum varme.
if (digitalRead(49)==LOW){ //sandt hvis VVB-pumpen er slukket
Serial.print("varme-pumpe kan tænde");
Serial.println();
if(T_rum < Rum_set){
digitalWrite(34, HIGH);
}
else {
digitalWrite(34, LOW);
}
}
// hvis pumpen til VVB IKKE er tændt kan varmen tændes.
else{
Serial.print("varme-pumpe ikke kan tænde");
Serial.println();
}
}