#include #include #include #include #include #include #define ONE_WIRE_BUS D3 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); DeviceAddress temp_klara = { 0x28, 0x9D, 0x5F, 0x59, 0x8, 0x0, 0x0, 0x71 }; DeviceAddress temp_sypialnia = { 0x28, 0x48, 0x7C, 0x59, 0x8, 0x0, 0x0, 0xE8 }; DeviceAddress temp_korytarz = { 0x28, 0xFF, 0x57, 0x50, 0x93, 0x15, 0x4, 0xEA }; DeviceAddress temp_salon = { 0x28, 0xA2, 0x1, 0x59, 0x8, 0x0, 0x0, 0x8F }; DeviceAddress temp_lazienka = { 0x28, 0xF8, 0x73, 0x64, 0x09, 0x00, 0x00, 0xFE }; char auth[] = "xxx"; //zmienne dla załączania PIECA int zmiennaA = 0; int zmiennaB = 0; int zmiennaC = 0; int zmiennaD = 0; //zmienne dla poszczególnych pór dnia: float poranek; float dzien; float noc; SimpleTimer timer; float VIR_4; //tu deklarujesz zmienną globalną BLYNK_WRITE(V4) { VIR_4 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_5; //tu deklarujesz zmienną globalną BLYNK_WRITE(V5) { VIR_5 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_6; //tu deklarujesz zmienną globalną BLYNK_WRITE(V6) { VIR_6 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_7; //tu deklarujesz zmienną globalną BLYNK_WRITE(V7) { VIR_7 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_8; //tu deklarujesz zmienną globalną BLYNK_WRITE(V8) { VIR_8 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_9; //tu deklarujesz zmienną globalną BLYNK_WRITE(V9) { VIR_9 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_10; //tu deklarujesz zmienną globalną BLYNK_WRITE(V10) { VIR_10 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_11; //tu deklarujesz zmienną globalną BLYNK_WRITE(V11) { VIR_11 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_20; //tu deklarujesz zmienną globalną BLYNK_WRITE(V20) { VIR_20 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_21; //tu deklarujesz zmienną globalną BLYNK_WRITE(V21) { VIR_21 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } float VIR_22; //tu deklarujesz zmienną globalną BLYNK_WRITE(V22) { VIR_22 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej } int VIR_23; //tu deklarujesz zmienną globalną BLYNK_WRITE(V23) { VIR_23 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej } int VIR_24; //tu deklarujesz zmienną globalną BLYNK_WRITE(V24) { VIR_24 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej } int VIR_25; //tu deklarujesz zmienną globalną BLYNK_WRITE(V25) { VIR_25 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej } int VIR_26; //tu deklarujesz zmienną globalną BLYNK_WRITE(V26) { VIR_26 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej } WidgetLED led1(V12); WidgetLED led2(V13); WidgetLED led3(V14); WidgetLED led4(V15); WidgetLED led5(V16); void setup() { Blynk.begin(auth, "xx", "xxx"); sensors.begin(); timer.setInterval(5000L, sendTemps); // Temperature sensor polling interval (5000L = 5 seconds) //sypialnia pinMode(D5, OUTPUT); //salon pinMode(D7, OUTPUT); //klara pinMode(D8, OUTPUT); //piec pinMode(D4, OUTPUT); //lazienka pinMode(D6, OUTPUT); } void sendTemps() { sensors.requestTemperatures(); // Polls the sensors float tempklara = sensors.getTempC(temp_klara); // Gets first probe on wire in lieu of by address Blynk.virtualWrite(0, tempklara); float tempsypialnia = sensors.getTempC(temp_sypialnia); // Gets first probe on wire in lieu of by address Blynk.virtualWrite(1, tempsypialnia); float tempkorytarz = sensors.getTempC(temp_korytarz); // Gets first probe on wire in lieu of by address Blynk.virtualWrite(2, tempkorytarz); float tempsalon = sensors.getTempC(temp_salon); // Gets first probe on wire in lieu of by address Blynk.virtualWrite(3, tempsalon); float templazienka = sensors.getTempC(temp_lazienka); // Gets first probe on wire in lieu of by address Blynk.virtualWrite(17, templazienka); //regulacje temperatur: // regulacja temp KLARA if(tempklara < VIR_4) { float tempklara = sensors.getTempC(temp_klara); if(tempklara < VIR_4) { led1.on(); digitalWrite(D8, LOW); zmiennaA = 1; } } if(tempklara > VIR_5) { float tempklara = sensors.getTempC(temp_klara); if(tempklara > VIR_5) { led1.off(); digitalWrite(D8, HIGH); zmiennaA = 0; } } // regulacja temp sypilania if(tempsypialnia < VIR_6) { float tempsypialnia = sensors.getTempC(temp_sypialnia); if(tempsypialnia < VIR_6) { led2.on(); digitalWrite(D5, LOW); zmiennaB = 1; }} if(tempsypialnia > VIR_7) { float tempsypialnia = sensors.getTempC(temp_sypialnia); if(tempsypialnia > VIR_7) { led2.off(); digitalWrite(D5, HIGH); zmiennaB = 0; }} // regulacja temp lazienka if(templazienka < VIR_8) { float templazienka = sensors.getTempC(temp_lazienka); if(templazienka < VIR_8) { led3.on(); digitalWrite(D6, LOW); zmiennaC = 1; }} if(templazienka > VIR_9) { float templazienka = sensors.getTempC(temp_lazienka); if(templazienka > VIR_9) { led3.off(); digitalWrite(D6, HIGH); zmiennaC = 0; }} // regulacja temp salon if(tempsalon < VIR_10) { float tempsalon = sensors.getTempC(temp_salon); if(tempsalon < VIR_10) { led4.on(); digitalWrite(D7, LOW); zmiennaD = 1; }} if(tempsalon > VIR_11) { float tempsalon = sensors.getTempC(temp_salon); if(tempsalon > VIR_11) { led4.off(); digitalWrite(D7, HIGH); zmiennaD = 0; }} if(zmiennaA == 1 || zmiennaB == 1 || zmiennaC == 1 || zmiennaD == 1 ) { digitalWrite(D4, LOW); //załączenie pieca led5.on(); } else { digitalWrite(D4, HIGH); led5.off(); } //aktywacja sterowania automatycznego if(VIR_26 == 1) { // Sterowanie dzień noc poranek: //poranek poranek = VIR_20; dzien = VIR_21; noc = VIR_22; // jeśli timer wskarze 1 na pinie v23 czyli że jest poranek pomiędzy np. 5:00 a 6:00 if(VIR_23 == 1) { //zmiana temperatur załączeń Blynk.virtualWrite(V10, poranek); Blynk.virtualWrite(V6, poranek); Blynk.virtualWrite(V4, poranek); Blynk.virtualWrite(V8, poranek); //zmiana temperatur wyłączeń Blynk.virtualWrite(V11, poranek+1); Blynk.virtualWrite(V7, poranek+1); Blynk.virtualWrite(V5, poranek+1); Blynk.virtualWrite(V9, poranek+1); } // jeśli timer wskarze 1 na pinie v24 czyli że jest dzien pomiędzy np. 6:00 a 20 if(VIR_24 == 1) { //zmiana temperatur załączeń Blynk.virtualWrite(V10, dzien); Blynk.virtualWrite(V6, dzien); Blynk.virtualWrite(V4, dzien); Blynk.virtualWrite(V8, dzien); //zmiana temperatur wyłączeń Blynk.virtualWrite(V11, dzien+1); Blynk.virtualWrite(V7, dzien+1); Blynk.virtualWrite(V5, dzien+1); Blynk.virtualWrite(V9, dzien+1); } // jeśli timer wskarze 1 na pinie v25 czyli że jest noc pomiędzy np. 20:00 a 5:00 if(VIR_25 == 1) { //zmiana temperatur załączeń Blynk.virtualWrite(V10, noc); Blynk.virtualWrite(V6, noc); Blynk.virtualWrite(V4, noc); Blynk.virtualWrite(V8, noc); //zmiana temperatur wyłączeń Blynk.virtualWrite(V11, noc+1); Blynk.virtualWrite(V7, noc+1); Blynk.virtualWrite(V5, noc+1); Blynk.virtualWrite(V9, noc+1); } } } void loop() { Blynk.run(); timer.run(); }