KRITSADA icon

Clone Blynk

KRITSADA | PRO | 10/04/18 11:08:19 AM UTC | 0 ⭐ | 797 👁️ | Never ⏰ | []
C++ |

7.74 KB

|

None

|

0 👍

/

0 👎

#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();
 
 
  
}

Comments