Advertisement
Krzyspx

brama4main

Dec 5th, 2016
3,965
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.94 KB | None | 0 0
  1. /*******************************************************************
  2.   V1 - vLED OK -
  3.   V2 - VLED przełącznik
  4.   V29 - Terminal
  5.   V6 - show temp DS
  6.   V10 - on/off menu pilot
  7.   V11 - menu pilot
  8.   V12 - button on/off
  9.   v13 - gate open/close
  10.   V15 - pompa on
  11.   V16 timer pompy
  12.   V17 - temp piec
  13.   V18 - temp--
  14.   v19 - temp++
  15.  
  16.   V34 -
  17.   A5 - przełącznik
  18.   13 - DS18b20
  19.   11 transoptor
  20.   #ifndef
  21. #define
  22. ********************************************************************/
  23.  
  24. #include "klaw.h"
  25. #include "transmit.h"
  26. #include "dallas.h"
  27. #include "pompa.h"
  28. #include "piec_co.h"
  29.  
  30. #include <OneWire.h>
  31. #include <DallasTemperature.h>
  32. #include <RCSwitch.h>
  33.  
  34. #include <Timers.h> //  my favorite timer
  35. Timers <6> akcja; //
  36.  
  37. #define led_green 7  // przyłączenia do fizycznych portów NANO
  38. #define led_red   8 //
  39. #define przelacznik A5
  40. #define resetesp  4
  41. #define czasresetesp 60
  42. #define pilotbrama  11
  43.  
  44.  
  45.  
  46. //zmienne globalne
  47.  
  48. int sendnotifi = 0; //wyślij noti
  49. int sendemail = 0;  // wyślij email
  50.  
  51. //>>>>>>>>>>>>>>>>>>> my NANO Programs
  52.  
  53. void setupstart() { //początkowe ustawienia widgetow
  54.   BlynkvirtualWrite_col(30, _GREEN);
  55.   BlynkvirtualWrite_col(1, BLYNK_GREEN);
  56.   BlynkvirtualWrite_col(2, _RED);
  57.   BlynkvirtualWrite_col(10, _BLUE);
  58. }
  59.  void setupstart1()
  60. {
  61.   BlynkvirtualWrite_col(11, _BLUE);
  62.   BlynkvirtualWrite_col(12, _MAGENTA);
  63.   BlynkvirtualWrite_col(15, _YELLOW);
  64.     BlynkvirtualWrite_col(18, _BLUE);
  65.       BlynkvirtualWrite_col(19, _RED);
  66. }
  67. void setupstart2()
  68. {
  69.   BlynkvirtualWrite_Off(10, "PILOT");
  70.   BlynkvirtualWrite_On(10, "PILOT");
  71.   BlynkvirtualWrite_On(12, "k1");
  72.   BlynkvirtualWrite_Off(12, "k1");
  73. }
  74. void setupstart3()
  75. {
  76.   BlynkvirtualWrite_On(15, "POMPA");
  77.   BlynkvirtualWrite_Off(15, "POMPA");
  78.     BlynkvirtualWrite_Off(18, "DOWN");
  79.       BlynkvirtualWrite_Off(19, "UP");
  80. }
  81. void setupstart4()
  82. {
  83.    wyslij_V11();
  84. }
  85.  
  86. int ESPonline = czasresetesp; //licznik watchdog dla esp
  87. byte flagasetup1 = 0; //czy wysłać dane początkowe z APP
  88. void Program_vPin0(String strvPin) {
  89.   digitalWrite(led_red, intfromstr(strvPin));  //miganie led red przez ESP
  90.   ESPonline = czasresetesp;
  91.   if (flagasetup1 == 0) {
  92.     flagasetup1 = 1;
  93.     BlynkvirtualWrite_order(1, "a");
  94.   }
  95. }
  96. void Program_vPin10(String strvPin) {
  97.   sendkodpilot(jakikod(menupilot, intfromstr(strvPin)), impuls_pilot); // wysyła kod z pozycji menupilot i on/off zależne od ppolot
  98.   //    BlynkvirtualWrite_order(2, "to ja blynk");
  99.   //   akcja.updateInterval(3, 500);
  100. }
  101. void Program_vPin11(String strvPin) {
  102.   menupilot = intfromstr(strvPin);
  103. }
  104. void Program_vPin12(String strvPin) {
  105.   sendkodpilot(jakikod(1, intfromstr(strvPin)), impuls_pilot);  //wysyła kod z 1 pozycji menu on lub off
  106.   //  BlynkvirtualWrite_order(10, "500");
  107.   //  akcja.updateInterval(3, 1500);
  108. }
  109. void Program_vPin13(String strvPin) {//pilot brama
  110.   sterujbrama(intfromstr(strvPin)); // zmiana stanu pin 11 - naciskanie pilota bramy
  111. }
  112. void Program_vPin15(String strvPin) {
  113.   pomparunprzycisk(strvPin);
  114. }
  115. void Program_vPin16(String strvPin) {
  116.   timerpompa(strvPin);
  117. }
  118. void Program_vPin29(String strvPin) {}
  119.  
  120. void Program_vPin34(String strvPin) {
  121.   if (intfromstr(strvPin)) termesp = 1; else termesp = 0;
  122. }
  123.  
  124. int intfromstr(String str) {
  125.   String    strdata3 = str.substring(str.indexOf(':') + 1);  // if nr vPin typ int
  126.   return strdata3.toInt();
  127. }
  128.  
  129.  
  130. //>>>>>>>>>>>>>>>>>>>>>>>> gate
  131.  
  132. void infgateopen() { //czujnik otwarcia bramy
  133.   // BlynkvirtualWrite_col(8, _RED);
  134.   // BlynkvirtualWrite_str(8, "BRAMAA OPEN");
  135.   BlynkvirtualWrite_Off(13, "BR OPEN");
  136.   BlynkvirtualWrite_col(13, _RED);
  137.  
  138. }
  139. void infgateclose() {
  140.   // BlynkvirtualWrite_col(8, _GREEN);
  141.   // BlynkvirtualWrite_str(8, "BRAMAA CLOSE");
  142.   BlynkvirtualWrite_Off(13, "BR CLOSE");
  143.   BlynkvirtualWrite_col(13, _GREEN);
  144. }
  145.  
  146. void  sterujbrama(int stanvPin) //steroanie pilotem bramy
  147. {
  148.   if (stanvPin) {
  149.     digitalWrite(pilotbrama, HIGH);
  150.     akcja.updateInterval(3, 300); //led green miga szybko gdy naciśnięty VPin bramy
  151.   } else {
  152.     digitalWrite(pilotbrama, LOW);
  153.     akcja.updateInterval(3, 2000);
  154.   }
  155. }
  156. //ssssssssssssssssssssssssssssssssssssssssssss
  157. void setup()
  158. {
  159.   pinMode(led_red, OUTPUT); //test
  160.   pinMode(led_green, OUTPUT); //test
  161.   pinMode(przelacznik, INPUT_PULLUP);
  162.   digitalWrite(led_green, HIGH);
  163.   digitalWrite(led_red, HIGH);
  164.   pinMode(pilotbrama, OUTPUT);
  165.   digitalWrite(pilotbrama, LOW);
  166.  
  167.   Serial.begin(115200);
  168.   delay(100);
  169.   Serial.println(F(__FILE__));  //BLYNK .3.10 Arduino IDE.cc 1.6.12
  170.   setupstart();
  171.   delay(500);
  172.   setupstart1();
  173.   delay(500);
  174.   setupstart2();
  175.   delay(500);
  176.   setupstart3();
  177.   delay(500);
  178.  setupstart4();
  179.   delay(500);
  180.  
  181.   akcja.attach(0, 2000, timer1sek); //  5 sek
  182.   akcja.attach(1, 10000, licznikobiegu); // pętla dłuższa 10 s licznik grzania
  183.   akcja.attach(2, 20000, notemail); //by nie wysyłać za częto emaili i noti
  184.   akcja.attach(3, 5000, timerled); //
  185.    akcja.attach(4, 5000, pieconoff);
  186.  
  187.   setrcswitch(); //setup for rcswitch
  188.   setdallas(); //setup for ds18b20
  189.  
  190.   flagasetup1 = 0; //flaga do jednokrotnego wysłania aktualnych stanów vPinów z APP
  191. }
  192.  
  193. void loop()
  194. {
  195.   akcja.process(); // timer
  196.   recivestrfromserial(); //dekodowanie danych z serial
  197.   kod_run(); //analiza odbioru 433 MHz
  198. }
  199.  
  200. void notemail() {// wysyłanie emaili i noti
  201.   if (sendnotifi) {
  202.     sendnotifi = 0;
  203.     BlynkvirtualWrite_order(2, "noti od BLYNKa");
  204.   }
  205.   if (sendemail) {
  206.     sendemail = 0;
  207.     BlynkvirtualWrite_order(3, "Email od BLYNKa");
  208.   }
  209. }
  210.  
  211. void timer1sek() { //różne rzeczy wykonywane cyklicznie
  212.   testprzelacznik();
  213.   watchdogESP();  //watchdog for ESP
  214.   sensorT();    //dallas
  215.   miganiegrzanie(); //miganie v12 kiedy piec grzeje
  216.   oldrecivecod = 0; // by nie wysyłać za często powtarzających się kodów
  217. }
  218.  
  219. void timerled() {// osobny timer dla leda green
  220.   blinkLedgreen(); // blink led on NANO
  221.     blinkvLed2(); //blink vLed from NANO
  222. }
  223.  
  224. void watchdogESP () { //watchdog dla esp
  225.   ESPonline--;
  226.  //   Serial.println("reset esp za " + String(ESPonline));
  227.   if (ESPonline == 0) { //reset esp
  228.     digitalWrite(resetesp, LOW);
  229.     pinMode(przelacznik, OUTPUT);
  230.     Serial.println(F("Reset ESP"));
  231.   }
  232.   if (ESPonline == -1) {
  233.     pinMode(przelacznik, INPUT);
  234.     Serial.println(F("END Reset ESP"));
  235.     ESPonline = czasresetesp;
  236.   }
  237. }
  238. int oldprzelacznik = 0;
  239. void testprzelacznik() { //sprawdzanie stany przełącznika
  240.   if (oldprzelacznik != digitalRead(przelacznik))
  241.   {
  242.     oldprzelacznik = digitalRead(przelacznik);
  243.     if (!digitalRead(przelacznik)) {
  244.       BlynkvirtualWrite_led(2, 255);
  245.     }
  246.     else {
  247.       BlynkvirtualWrite_led(2, 0);
  248.     }
  249.   }
  250. }
  251.  
  252. bool flagaled = 0; //blink NANO led NANO
  253. void blinkLedgreen() {
  254.   flagaled = !flagaled;
  255.   digitalWrite(led_green, flagaled);
  256. }
  257. bool flagaled2 = 0;
  258. void blinkvLed2() {
  259.   flagaled2 = !flagaled2;
  260.   if (flagaled2)  {
  261.     BlynkvirtualWrite_led(1, 255); //blink NANO in APP
  262.   }
  263.   else   {
  264.     BlynkvirtualWrite_led(1, 0);
  265.   }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement