Advertisement
Guest User

Untitled

a guest
Oct 8th, 2023
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.97 KB | None | 0 0
  1.  
  2. #include <SPI.h>
  3. #include <EthernetENC.h>
  4. //#include <avr\wdt.h> // watchdog knihovna
  5.  
  6. boolean zacatekCteni = false;
  7. unsigned long cas = millis();
  8. unsigned long reset = millis();
  9. byte citac = 0;
  10.  
  11. byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
  12. IPAddress ip(192, 168, 1, 11);
  13. EthernetServer mujSvr = EthernetServer(4501);
  14.  
  15. EthernetClient clientzkontroluj;
  16. IPAddress webCamAddr(192,168,1,34); // IP adresa webové kamery
  17.  
  18. String header;
  19.  
  20. void setup() {
  21.   Serial.begin(9600);
  22.   Ethernet.begin(mac, ip);
  23.   mujSvr.begin();
  24.   Serial.println(Ethernet.localIP());
  25.  
  26.   digitalWrite(8, HIGH); // pin 8 na 1
  27.   pinMode(8,OUTPUT);     // nastavení pinu  8 na výstup
  28. }
  29. ///////////////////////////////////////////////////////////
  30. void loop() {
  31.   String poslane = "";
  32.   EthernetClient client = mujSvr.available();
  33.   if (client) {
  34.     boolean currentLineIsBlank = true;
  35.  
  36.     while (client.connected()) {
  37.       if (client.available()) {
  38.         char c = client.read();
  39.         header += c;
  40.  
  41.         if(zacatekCteni && c == ' '){zacatekCteni = false;} //ukončí čtení
  42.         if(c == '?'){zacatekCteni = true;} //začatek čtení
  43.         if(zacatekCteni){poslane = poslane + char(c);}
  44.        
  45.         if (c == '\n' && currentLineIsBlank) {
  46.            // // heslo je admin  admin
  47.            if(header.indexOf("YWRtaW46YWRtaW4=") >= 0) {
  48.             // při úspěšném přihlášení
  49.             client.println("HTTP/1.1 200 OK");
  50.             client.println("Content-Type: text/html");
  51.             client.println("Connection: close");  
  52.             client.println();
  53.            
  54.             //-------------------------------------
  55.             if (poslane == "?reboot")
  56.                {
  57.                 citac = 0;
  58.                 digitalWrite(8, LOW);
  59.                 delay(1000);
  60.                 digitalWrite(8, HIGH);
  61.                 //reset = millis();
  62.                
  63.                 client.println("restartuji zasuvku");
  64.                 Serial.print(poslane);
  65.                 }
  66.             //-------------------------------------
  67.  
  68.              }
  69.  
  70.            else {
  71.             // špatně zadane  user/pass
  72.             client.println("HTTP/1.0 401 Authorization Required");
  73.             client.println("HTTP/1.1 401 Unauthorized");
  74.             client.println("WWW-Authenticate: Basic realm=\"Secure\"");
  75.             client.println("Content-Type: text/html");
  76.             client.println();
  77.             client.println("<html>Text to send if user hits Cancel button</html>"); // really need this for the popup!
  78.           }
  79.  
  80.           header = "";
  81.           break;
  82.         }
  83.         if (c == '\n') {currentLineIsBlank = true;}
  84.         else
  85.         if (c != '\r') {currentLineIsBlank = false;}
  86.       }
  87.     }
  88.     delay(1);  
  89.     client.stop();
  90.      
  91.   }
  92.  
  93. // ---------------------------------------------------------------------
  94. // Každou minutu zavola proceduru zkontroluj
  95.    if (millis() - cas > 600000)    
  96.     {
  97.         Serial.print("kontrolují kameru ");
  98.         Serial.print(webCamAddr);
  99.         zkontroluj();
  100.         cas = millis();          
  101.     }
  102. // ---------------------------------------------------------------------
  103. }
  104. /////////////////////////////////////////////////////////////////////////////////////////////
  105. void zkontroluj()
  106. {
  107.   clientzkontroluj.connect(webCamAddr, 8034);  // kamera na adrese 192,168,1,34 port 8034
  108.   delay(1000);  // počka vteřinu
  109.   if (clientzkontroluj.connected())
  110.      {
  111.       citac = 0;  // je-li odpoveď OK, vynulovat čítač
  112.       Serial.println(" - je tam");
  113.      }
  114.      else
  115.      {
  116.     // není odpověd
  117.        citac++; // zvyšovat čítač
  118.        Serial.println(" - není tam");
  119.      };
  120.    
  121.   clientzkontroluj.stop();   // spojení clientzkontroluj automaticky uzavře
  122.  
  123.   if (citac == 5)
  124.           {
  125.            Serial.println("restartuji zasuvku");
  126.            digitalWrite(8, LOW);
  127.            delay(6000);
  128.            digitalWrite(8, HIGH);    
  129.            citac = 0;
  130.           }  
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement