View difference between Paste ID: emg570p2 and 5ZLX9Mr1
SHOW: | | - or go back to the newest paste.
1
#include <ESP8266WiFi.h>
2
#include <BlynkSimpleEsp8266.h>
3
#include <OneWire.h>
4
#include <DallasTemperature.h>
5
#include <TimeLib.h>
6
#include <SimpleTimer.h>
7
#define ONE_WIRE_BUS D3
8
9
OneWire oneWire(ONE_WIRE_BUS);
10
DallasTemperature sensors(&oneWire);
11
12
DeviceAddress temp_klara = { 0x28, 0x9D, 0x5F, 0x59, 0x8, 0x0, 0x0, 0x71 };
13
DeviceAddress temp_sypialnia = { 0x28, 0x48, 0x7C, 0x59, 0x8, 0x0, 0x0, 0xE8 };
14
DeviceAddress temp_korytarz = { 0x28, 0xFF, 0x57, 0x50, 0x93, 0x15, 0x4, 0xEA };
15
DeviceAddress temp_salon = { 0x28, 0xA2, 0x1, 0x59, 0x8, 0x0, 0x0, 0x8F };
16
DeviceAddress temp_lazienka = { 0x28, 0xF8, 0x73, 0x64, 0x09, 0x00, 0x00, 0xFE };
17
18
char auth[] = "xxx";
19
20
//zmienne dla załączania PIECA  
21
int zmiennaA = 0;
22
int zmiennaB = 0;
23
int zmiennaC = 0;
24
int zmiennaD = 0;
25
26
//zmienne dla poszczególnych pór dnia:
27
float poranek;
28
float dzien;
29
float noc;
30
31
SimpleTimer timer;
32
33
float VIR_4; //tu deklarujesz zmienną globalną 
34
BLYNK_WRITE(V4) 
35
{ 
36
VIR_4 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
37
}
38
float VIR_5; //tu deklarujesz zmienną globalną 
39
BLYNK_WRITE(V5) 
40
{ 
41
VIR_5 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
42
}
43
float VIR_6; //tu deklarujesz zmienną globalną 
44
BLYNK_WRITE(V6) 
45
{ 
46
VIR_6 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
47
}
48
float VIR_7; //tu deklarujesz zmienną globalną 
49
BLYNK_WRITE(V7) 
50
{ 
51
VIR_7 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
52
}
53
float VIR_8; //tu deklarujesz zmienną globalną 
54
BLYNK_WRITE(V8) 
55
{ 
56
VIR_8 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
57
}
58
float VIR_9; //tu deklarujesz zmienną globalną 
59
BLYNK_WRITE(V9) 
60
{ 
61
VIR_9 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
62
}
63
float VIR_10; //tu deklarujesz zmienną globalną 
64
BLYNK_WRITE(V10) 
65
{ 
66
VIR_10 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
67
}
68
float VIR_11; //tu deklarujesz zmienną globalną 
69
BLYNK_WRITE(V11) 
70
{ 
71
VIR_11 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
72
}
73
74
float VIR_20; //tu deklarujesz zmienną globalną 
75
BLYNK_WRITE(V20) 
76
{ 
77
VIR_20 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
78
}
79
80
float VIR_21; //tu deklarujesz zmienną globalną 
81
BLYNK_WRITE(V21) 
82
{ 
83
VIR_21 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
84
}
85
86
float VIR_22; //tu deklarujesz zmienną globalną 
87
BLYNK_WRITE(V22) 
88
{ 
89
VIR_22 = param.asFloat(); // teraz wpisujesz V1 do zmiennej globalnej 
90
}
91
92
int VIR_23; //tu deklarujesz zmienną globalną 
93
BLYNK_WRITE(V23) 
94
{ 
95
VIR_23 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej 
96
}
97
98
int VIR_24; //tu deklarujesz zmienną globalną 
99
BLYNK_WRITE(V24) 
100
{ 
101
VIR_24 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej 
102
}
103
104
int VIR_25; //tu deklarujesz zmienną globalną 
105
BLYNK_WRITE(V25) 
106
{ 
107
VIR_25 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej 
108
}
109
int VIR_26; //tu deklarujesz zmienną globalną 
110
BLYNK_WRITE(V26) 
111
{ 
112
VIR_26 = param.asInt(); // teraz wpisujesz V1 do zmiennej globalnej 
113
}
114
115
WidgetLED led1(V12);
116
WidgetLED led2(V13);
117
WidgetLED led3(V14);
118
WidgetLED led4(V15);
119
WidgetLED led5(V16);
120
void setup()
121
{
122
  Blynk.begin(auth, "xx", "xxx");
123
  sensors.begin();
124
  timer.setInterval(5000L, sendTemps); // Temperature sensor polling interval (5000L = 5 seconds)
125
126
  //sypialnia
127
  pinMode(D5, OUTPUT);
128
  //salon
129
  pinMode(D7, OUTPUT);
130
  //klara
131
  pinMode(D8, OUTPUT);
132
  //piec
133
  pinMode(D4, OUTPUT);
134
  //lazienka
135
  pinMode(D6, OUTPUT);
136
 
137
}
138
139
void sendTemps()
140
{
141
  sensors.requestTemperatures(); // Polls the sensors
142
  float tempklara = sensors.getTempC(temp_klara); // Gets first probe on wire in lieu of by address
143
  Blynk.virtualWrite(0, tempklara);
144
  float tempsypialnia = sensors.getTempC(temp_sypialnia); // Gets first probe on wire in lieu of by address
145
  Blynk.virtualWrite(1, tempsypialnia);
146
  float tempkorytarz = sensors.getTempC(temp_korytarz); // Gets first probe on wire in lieu of by address
147
  Blynk.virtualWrite(2, tempkorytarz);
148
  float tempsalon = sensors.getTempC(temp_salon); // Gets first probe on wire in lieu of by address
149
  Blynk.virtualWrite(3, tempsalon);
150
  float templazienka = sensors.getTempC(temp_lazienka); // Gets first probe on wire in lieu of by address
151
  Blynk.virtualWrite(17, templazienka);
152
153
//regulacje temperatur:
154
155
// regulacja temp KLARA
156
if(tempklara < VIR_4)
157
{
158
  float tempklara = sensors.getTempC(temp_klara);
159
  if(tempklara < VIR_4)
160
    {
161
      led1.on();
162
      digitalWrite(D8, LOW); 
163
      zmiennaA = 1;
164
    }
165
}
166
if(tempklara > VIR_5)
167
{
168
  float tempklara = sensors.getTempC(temp_klara);
169
  if(tempklara > VIR_5)
170
    {
171
      led1.off();
172
      digitalWrite(D8, HIGH); 
173
      zmiennaA = 0;
174
     }
175
}
176
     
177
// regulacja temp sypilania
178
179
if(tempsypialnia < VIR_6)
180
{
181
  float tempsypialnia = sensors.getTempC(temp_sypialnia);
182
183
    if(tempsypialnia < VIR_6)
184
    {
185
    led2.on();
186
    digitalWrite(D5, LOW); 
187
    zmiennaB = 1;
188
    }}
189
190
if(tempsypialnia > VIR_7)
191
{
192
 float tempsypialnia = sensors.getTempC(temp_sypialnia);
193
    
194
195
    if(tempsypialnia > VIR_7)
196
    {
197
      led2.off();
198
      digitalWrite(D5, HIGH); 
199
      zmiennaB = 0;
200
     }}
201
     
202
// regulacja temp lazienka
203
204
if(templazienka < VIR_8)
205
{
206
  float templazienka = sensors.getTempC(temp_lazienka);
207
208
    if(templazienka < VIR_8)
209
    {
210
    led3.on();
211
    digitalWrite(D6, LOW);
212
    zmiennaC = 1; 
213
    }}
214
    
215
if(templazienka > VIR_9)
216
{
217
    float templazienka = sensors.getTempC(temp_lazienka);
218
    if(templazienka > VIR_9)
219
    {
220
    led3.off();
221
    digitalWrite(D6, HIGH); 
222
    zmiennaC = 0; 
223
    }}
224
    
225
// regulacja temp salon
226
if(tempsalon < VIR_10)
227
{
228
  float tempsalon = sensors.getTempC(temp_salon);
229
  if(tempsalon < VIR_10)
230
  {
231
  led4.on();
232
  digitalWrite(D7, LOW); 
233
  zmiennaD = 1; 
234
}}
235
if(tempsalon > VIR_11)
236
{
237
  float tempsalon = sensors.getTempC(temp_salon);
238
239
if(tempsalon > VIR_11)
240
{
241
led4.off();
242
digitalWrite(D7, HIGH); 
243
zmiennaD = 0; 
244
}}
245
246
if(zmiennaA == 1 || zmiennaB == 1 || zmiennaC == 1 || zmiennaD == 1 )
247
{
248
digitalWrite(D4, LOW); //załączenie pieca
249
led5.on();
250
}
251
else
252
{
253
digitalWrite(D4, HIGH);
254
led5.off();
255
}
256
257
//aktywacja sterowania automatycznego 
258
259
if(VIR_26 == 1)
260
{
261
// Sterowanie dzień noc poranek:
262
263
//poranek
264
265
poranek = VIR_20;
266
dzien = VIR_21;
267
noc = VIR_22;
268
269
// jeśli timer wskarze 1 na pinie v23 czyli że jest poranek pomiędzy np. 5:00 a 6:00
270
if(VIR_23 == 1)
271
{
272
  //zmiana temperatur załączeń
273
  Blynk.virtualWrite(V10, poranek);
274
  Blynk.virtualWrite(V6, poranek);
275
  Blynk.virtualWrite(V4, poranek);
276
  Blynk.virtualWrite(V8, poranek);
277
  //zmiana temperatur wyłączeń
278
  Blynk.virtualWrite(V11, poranek+1);
279
  Blynk.virtualWrite(V7, poranek+1);
280
  Blynk.virtualWrite(V5, poranek+1);
281
  Blynk.virtualWrite(V9, poranek+1); 
282
}
283
284
285
// jeśli timer wskarze 1 na pinie v24 czyli że jest dzien pomiędzy np. 6:00 a 20
286
if(VIR_24 == 1)
287
{
288
  //zmiana temperatur załączeń
289
  Blynk.virtualWrite(V10, dzien);
290
  Blynk.virtualWrite(V6, dzien);
291
  Blynk.virtualWrite(V4, dzien);
292
  Blynk.virtualWrite(V8, dzien);
293
  //zmiana temperatur wyłączeń
294
  Blynk.virtualWrite(V11, dzien+1);
295
  Blynk.virtualWrite(V7, dzien+1);
296
  Blynk.virtualWrite(V5, dzien+1);
297
  Blynk.virtualWrite(V9, dzien+1); 
298
}
299
300
// jeśli timer wskarze 1 na pinie v25 czyli że jest noc pomiędzy np. 20:00 a 5:00
301
302
if(VIR_25 == 1)
303
{
304
  //zmiana temperatur załączeń
305
  Blynk.virtualWrite(V10, noc);
306
  Blynk.virtualWrite(V6, noc);
307
  Blynk.virtualWrite(V4, noc);
308
  Blynk.virtualWrite(V8, noc);
309
  //zmiana temperatur wyłączeń
310
  Blynk.virtualWrite(V11, noc+1);
311
  Blynk.virtualWrite(V7, noc+1);
312
  Blynk.virtualWrite(V5, noc+1);
313
  Blynk.virtualWrite(V9, noc+1); 
314
}
315
}
316
317
318
}
319
320
void loop()
321
{
322
  Blynk.run();
323
  timer.run();
324
325
326
  
327
}