Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include <TimeLib.h>
- #include <SimpleTimer.h>
- #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();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement