Advertisement
omnixcrs

Untitled

Oct 4th, 2018
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.74 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement