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 | } |