Advertisement
martinius96

Untitled

Jun 30th, 2018
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.01 KB | None | 0 0
  1. #include <SPI.h>                     //kniznica SPI
  2. #include <Ethernet.h>                //kniznica k ethernet shieldu
  3. #include <OneWire.h>                 //Onewire kniznica
  4. #include <DallasTemperature.h>       //knižnica senzorov  DS18B20
  5. #define ONE_WIRE_BUS 8               //definovany pin OneWire zbernice
  6. OneWire oneWire(ONE_WIRE_BUS);       //inicializacia pinu
  7. DallasTemperature sensors(&oneWire); //priradenie ds18b20 senzorov na onewire zbernicu
  8. const int relechladenie = 6; //rele chladenia
  9. const int relekurenie = 7; //rele kurenia
  10. const int dazdovysenzor = A0; //analog pin pre dazdovy senzor
  11. const int releokruh1 = 5; //rele okruhu1
  12. const int releokruh2 = 4; //rele okruhu2
  13. const int releokruh3 = 3; //rele okruhu3
  14. const int releokruh4 = 2; //rele okruhu4
  15. byte mac[] = { 0x20, 0x1A, 0x06, 0x75, 0x8C, 0xAA };  
  16. char server[] = "www.anemonka.php5.sk";  
  17. IPAddress dnServer(192, 168, 0, 1);
  18. IPAddress gateway(192, 168, 0, 1);
  19. IPAddress subnet(255, 255, 255, 0);
  20. IPAddress ip(192, 168, 0, 45);                    
  21. EthernetClient client;
  22. String readString;
  23. int x=0;
  24. char lf=10;
  25. int pocitadlo=0;
  26. void setup() {
  27.   pinMode(dazdovysenzor, INPUT);
  28.   pinMode(relechladenie, OUTPUT);
  29.   pinMode(relekurenie, OUTPUT);
  30.   pinMode(releokruh1, OUTPUT);
  31.   pinMode(releokruh2, OUTPUT);
  32.   pinMode(releokruh3, OUTPUT);
  33.   pinMode(releokruh4, OUTPUT);
  34.   Serial.begin(9600);
  35.   if (Ethernet.begin(mac) == 0) {                  //V PRIPADE ZLYHANIA NASTAVENIA DHCP
  36.     Serial.println("Chyba konfiguracie, manualne nastavenie");
  37.     Ethernet.begin(mac, ip, dnServer, gateway, subnet);
  38.   }
  39. }
  40. void odosli_data(){
  41.    sensors.requestTemperatures();
  42.  delay(1000);
  43.  int dazd = analogRead(dazdovysenzor);
  44.  client.stop();
  45. if (client.connect(server, 80)) {              
  46.     Serial.println("Pripojenie uspesne na webserver - odosielam teploty");
  47.     client.print("GET /system/arduino/data.php?teplota=");
  48.     client.print(sensors.getTempCByIndex(0));
  49.     client.print("&dazd=");
  50.     client.print(dazd);
  51.     client.println(" HTTP/1.1");        
  52.     client.println("Host: www.anemonka.php5.sk");
  53.     client.println("Connection: close");        
  54.     client.println();                          
  55.     client.stop();
  56.     Serial.println("Teploty odoslane na web");  
  57.     pocitadlo=0;                      
  58.   } else {                                      
  59.     Serial.println("Pripojenie zlyhalo - teploty neodoslane");  
  60.     pocitadlo++;
  61.   }  
  62.   }
  63.  void aktualizuj_vystupy(){
  64.   client.stop();
  65. if (client.connect(server, 80)) {              
  66.     Serial.println("Pripojenie uspesne na webserver - vykurovanie chladenie");
  67.     client.print("GET /system/vykurovanie_chladenie.php");
  68.     client.println(" HTTP/1.1");        
  69.     client.println("Host: www.anemonka.php5.sk");
  70.     client.println("Connection: close");        
  71.     client.println();                          
  72.     client.stop();  
  73.     Serial.println("Uspesne aktualizacia chladenia a vykurovania z internetu");
  74.     pocitadlo=0;                      
  75.   } else {                                      
  76.     Serial.println("Pripojenie zlyhalo - chladenie a vykurovanie");
  77.     pocitadlo++;  
  78.   }
  79.   }
  80.     void aktualizuj_okruhy(){
  81.       client.stop();
  82. if (client.connect(server, 80)) {              
  83.     Serial.println("Pripojenie uspesne na webserver - aktualizacia okruhov");
  84.     client.print("GET /system/okruhy.php");
  85.     client.println(" HTTP/1.1");        
  86.     client.println("Host: www.anemonka.php5.sk");
  87.     client.println("Connection: close");        
  88.     client.println();                          
  89.     client.stop();  
  90.     Serial.println("Uspesne aktualizacia okruhov z internetu");  
  91.     pocitadlo=0;                  
  92.   } else {                                      
  93.     Serial.println("Pripojenie zlyhalo - aktualizacia okruhov");
  94.     pocitadlo++;  
  95.   }  
  96.   }
  97.  
  98.  void vystup_okruh1(){
  99.   client.stop();
  100.        if (client.connect(server, 80)){
  101.   client.print("GET /system/values/stavokruh1.txt");
  102.   client.println(" HTTP/1.1");
  103.   client.println("Host: www.anemonka.php5.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
  104.     client.println("Connection: close");         //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
  105.     client.println();            
  106.   while(client.connected() && !client.available())
  107.   while (client.connected() || client.available()) { //pramenna
  108.     char c = client.read(); //dostan bity z buffera
  109.     if (c==lf) x=(x+1); //pocitaj
  110.     else if (x==12) readString += c; //nasa premenna
  111.    }
  112. if(readString=="ZAP"){
  113.   digitalWrite(releokruh1, LOW);
  114.   Serial.println("Zapinam okruh1");
  115.   }else if(readString=="VYP"){  
  116.     digitalWrite(releokruh1, HIGH);
  117.     Serial.println("Vypinam okruh1");
  118.   }
  119.   client.stop(); //ukonc spojenie
  120.   readString = ("");
  121.   x=0;
  122.   }else{
  123.     Serial.println("Pripojenie neuspesne pre stav okruhu1");
  124.     }
  125.  
  126.     }
  127.     void vystup_okruh2(){
  128.       client.stop();
  129.        if (client.connect(server, 80)){
  130.   client.print("GET /system/values/stavokruh2.txt");
  131.   client.println(" HTTP/1.1");
  132.   client.println("Host: www.anemonka.php5.sk");
  133.     client.println("Connection: close");
  134.     client.println();            
  135.   while(client.connected() && !client.available())
  136.   while (client.connected() || client.available()) { //pramenna
  137.     char c = client.read(); //dostan bity z buffera
  138.     if (c==lf) x=(x+1); //pocitaj
  139.     else if (x==12) readString += c; //nasa premenna
  140.    }
  141. if(readString=="ZAP"){
  142.   digitalWrite(releokruh2, LOW);
  143.   Serial.println("Zapinam okruh2");
  144.   }else if(readString=="VYP"){  
  145.     digitalWrite(releokruh2, HIGH);
  146.     Serial.println("Vypinam okruh2");
  147.   }
  148.   client.stop(); //ukonc spojenie
  149.   readString = ("");
  150.   x=0;
  151.   }else{
  152.     Serial.println("Pripojenie neuspesne pre stav okruhu2");
  153.     }
  154.  
  155.     }
  156.     void vystup_okruh3(){
  157.       client.stop();
  158.        if (client.connect(server, 80)){
  159.   client.print("GET /system/values/stavokruh3.txt");
  160.   client.println(" HTTP/1.1");
  161.   client.println("Host: www.anemonka.php5.sk");
  162.     client.println("Connection: close");
  163.     client.println();            
  164.   while(client.connected() && !client.available())
  165.   while (client.connected() || client.available()) { //pramenna
  166.     char c = client.read(); //dostan bity z buffera
  167.     if (c==lf) x=(x+1); //pocitaj
  168.     else if (x==12) readString += c; //nasa premenna
  169.    }
  170. if(readString=="ZAP"){
  171.   digitalWrite(releokruh3, LOW);
  172.   Serial.println("Zapinam okruh3");
  173.   }else if(readString=="VYP"){  
  174.     digitalWrite(releokruh3, HIGH);
  175.     Serial.println("Vypinam okruh3");
  176.   }
  177.   client.stop(); //ukonc spojenie
  178.   readString = ("");
  179.   x=0;
  180.   }else{
  181.     Serial.println("Pripojenie neuspesne pre stav okruhu3");
  182.     }
  183.  
  184.     }
  185.      void vystup_okruh4(){
  186.       client.stop();
  187.        if (client.connect(server, 80)){
  188.   client.print("GET /system/values/stavokruh4.txt");
  189.   client.println(" HTTP/1.1");
  190.   client.println("Host: www.anemonka.php5.sk");
  191.     client.println("Connection: close");
  192.     client.println();            
  193.   while(client.connected() && !client.available())
  194.   while (client.connected() || client.available()) { //pramenna
  195.     char c = client.read(); //dostan bity z buffera
  196.     if (c==lf) x=(x+1); //pocitaj
  197.     else if (x==12) readString += c; //nasa premenna
  198.    }
  199. if(readString=="ZAP"){
  200.   digitalWrite(releokruh4, LOW);
  201.   Serial.println("Zapinam okruh4");
  202.   }else if(readString=="VYP"){  
  203.     digitalWrite(releokruh4, HIGH);
  204.     Serial.println("Vypinam okruh4");
  205.   }
  206.   client.stop(); //ukonc spojenie
  207.   readString = ("");
  208.   x=0;
  209.   }else{
  210.     Serial.println("Pripojenie neuspesne pre stav okruhu4");
  211.     }
  212.  
  213.     }
  214.   void vystup_chladenia(){
  215.     client.stop();
  216.        if (client.connect(server, 80)){
  217.   client.print("GET /system/values/stavchladenie.txt");
  218.   client.println(" HTTP/1.1");
  219.   client.println("Host: www.anemonka.php5.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
  220.     client.println("Connection: close");         //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
  221.     client.println();
  222.     while(client.connected() && !client.available())
  223.   while (client.connected() || client.available()) { //pramenna
  224.     char c = client.read(); //dostan bity z buffera
  225.     if (c==lf) x=(x+1); //pocitaj
  226.     else if (x==12) readString += c; //nasa premenna
  227.    }
  228. if(readString=="ZAP"){
  229.   digitalWrite(relechladenie, LOW);
  230.   Serial.println("Zapinam chladenie");
  231.   }else if(readString=="VYP"){  
  232.     digitalWrite(relechladenie, HIGH);
  233.     Serial.println("Vypinam chladenie");
  234.   }
  235.   client.stop(); //ukonc spojenie
  236.   readString = ("");
  237.   x=0;          
  238.   }else{
  239.     Serial.println("Neuspesne pripojenie pre rele chaladenia");
  240.     }
  241.  
  242.     }
  243.  
  244. void softReset(){
  245. asm volatile ("  jmp 0");
  246. }
  247.  
  248.      void kontrola_resetu(){
  249.       client.stop();
  250.        if (client.connect(server, 80)){
  251.   client.println("GET /system/values/reset.txt");
  252.    client.println(" HTTP/1.1");
  253.   client.println("Host: www.anemonka.php5.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
  254.     client.println("Connection: close");         //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
  255.     client.println();  
  256.     while(client.connected() && !client.available())
  257.   while (client.connected() || client.available()) { //pramenna
  258.     char c = client.read(); //dostan bity z buffera
  259.     if (c==lf) x=(x+1); //pocitaj
  260.     else if (x==12) readString += c; //nasa premenna
  261.    }
  262. if(readString=="RST"){
  263.   Serial.println("RESET VYZIADANY");
  264.   readString = ("");
  265.   x=0;  
  266.   client.stop();
  267.   if (client.connect(server, 80)) {              
  268.     Serial.println("Pripojenie uspesne na webserver - restartujem");
  269.     client.print("GET /system/arduino/potvrdreset.php");
  270.     client.println(" HTTP/1.1");        
  271.     client.println("Host: www.anemonka.php5.sk");
  272.     client.println("Connection: close");        
  273.     client.println();                          
  274.     client.stop();  
  275.     Serial.println("RESET VYKONANY");
  276.     softReset();                    
  277.   } else {                                      
  278.     Serial.println("Pripojenie pre reset zlyhalo");
  279.     pocitadlo++;  
  280.   }      
  281.   }
  282.  
  283.  
  284.   }else{
  285.     Serial.println("Pripojenie neuspesne pre reset");
  286.     }
  287.     }
  288. void vystup_kurenia(){
  289.     client.stop();
  290.        if (client.connect(server, 80)){
  291.   client.print("GET /system/values/stavkurenie.txt");
  292.   client.println(" HTTP/1.1");
  293.   client.println("Host: www.anemonka.php5.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
  294.     client.println("Connection: close");         //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
  295.     client.println();
  296.     while(client.connected() && !client.available())
  297.   while (client.connected() || client.available()) { //pramenna
  298.     char c = client.read(); //dostan bity z buffera
  299. Serial.print(c);
  300.     if (c==lf) x=(x+1); //pocitaj
  301.     else if (x==12) readString += c; //nasa premenna
  302.    }
  303. if(readString=="ZAP"){
  304.   digitalWrite(relekurenie, LOW);
  305.   Serial.println("Zapinam kurenie");
  306.   }else if(readString=="VYP"){  
  307.     digitalWrite(relekurenie, HIGH);
  308.     Serial.println("Vypinam kurenie");
  309.   }
  310.   client.stop(); //ukonc spojenie
  311.   readString = ("");
  312.   x=0;          
  313.   }else{
  314.     Serial.println("Neuspesne pripojenie pre rele kurenia");
  315.     }
  316.  
  317.     }
  318.  
  319.  
  320. void loop() {
  321.    if (Ethernet.begin(mac) == 0) {
  322.     Serial.println("Chyba konfiguracie, manualne nastavenie");
  323.     Ethernet.begin(mac, ip, dnServer, gateway, subnet);
  324.   }
  325.   if(pocitadlo>=10){
  326.     Serial.println("Vysoka chybovost, vypinam relatka");
  327.     digitalWrite(relekurenie, HIGH);
  328.     digitalWrite(relechladenie, HIGH);
  329.     digitalWrite(releokruh1, HIGH);
  330.     digitalWrite(releokruh2, HIGH);
  331.     digitalWrite(releokruh3, HIGH);
  332.     digitalWrite(releokruh4, HIGH);
  333.     delay(120000);
  334.     pocitadlo=0;
  335.     }else{
  336.   delay(500);
  337.   odosli_data();
  338.   delay(500);
  339.   aktualizuj_vystupy();
  340.   delay(1000);
  341.   vystup_kurenia();
  342.   delay(1000);
  343.   vystup_chladenia();
  344.   delay(500);
  345.   aktualizuj_okruhy();
  346.   delay(500);
  347.   vystup_okruh1();
  348.   delay(500);
  349.   vystup_okruh2();
  350.   delay(500);
  351.   vystup_okruh3();
  352.   delay(500);
  353.   vystup_okruh4();
  354.   delay(500);
  355.   kontrola_resetu();
  356.     }
  357. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement