copko

Arduino webclient1

Feb 18th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <Ethernet.h>
  3.  
  4. #define LED1 5
  5. #define LED2 6
  6. #define LED3 7
  7.  
  8. // assign a MAC address for the ethernet controller.
  9. // fill in your address here:
  10. byte mac[] = {
  11.   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
  12. };
  13. // nahradna IP
  14. IPAddress ip(192, 168, 1, 177);
  15.  
  16. // initialize the library instance:
  17. EthernetClient client;
  18.  
  19. char server[] = "internetveci.000webhostapp.com";
  20. //IPAddress server(64,131,82,241);
  21.  
  22. unsigned long lastConnectionTime = 0;             // premenne pre meranie casu posledneho HTTP Requestu
  23. const unsigned long postingInterval = 10L * 1000L; // premenne pre meranie casu posledneho HTTP Requestu
  24.  
  25. void setup() {
  26.   // start serial port:
  27.   Serial.begin(9600);
  28.   pinMode(LED1,OUTPUT);
  29.   pinMode(LED2,OUTPUT);
  30.   pinMode(LED3,OUTPUT);
  31.  
  32.   // give the ethernet module time to boot up:
  33.   delay(1000);
  34.   // start the Ethernet connection using a fixed IP address and DNS server:
  35.   if(!Ethernet.begin(mac))
  36.     Ethernet.begin(mac,ip);
  37.   // print the Ethernet board/shield's IP address:
  38.   Serial.print("IP addresa Arduina (nepodstatne):     ");
  39.   Serial.println(Ethernet.localIP());
  40.   Serial.print("IP addresa DNS Servera (nepodstatne): ");
  41.   Serial.println(Ethernet.dnsServerIP());
  42.  
  43. }
  44.  
  45. void loop() {
  46.  
  47.   String buffer=""; //buffer pre prijimanie znakov
  48.   char c; //premenna pre nacitanie znaku
  49.   boolean data=0; //priznak, ktory ukazuje, ci sme este v hlavicke, alebo uz za nou
  50.  
  51.   while (client.available()) { //citame odpoved zo servera, az pokial su znaky
  52.     c=client.read(); //nacitaj jeden znak z tychto dat
  53.        //Serial.write(c);  //debug
  54.        if(c!='\n') buffer+=c; //ak to nie je znak konca riadku, pridaj ho do buffra
  55.        else { //ak to je znak konca riadku
  56.          if(buffer.indexOf('\r')==0) data=1; //zisti, ci pred tym prijaty znak \r v buffri je na prvom mieste (index 0) a ak ano, nastav priznak, ze budu nasledovat data
  57.          else if(data){ //ak uz sme v casti pre data
  58.           if(buffer.indexOf("led1=1")>=0) {Serial.println("Zapinam LED1");digitalWrite(LED1,HIGH);} //ak obsahuje led1=1, zapni LED1
  59.           if(buffer.indexOf("led1=0")>=0) {Serial.println("Vypinam LED1");digitalWrite(LED1,LOW);} //ak obsahuje led1=0, vypni LED1
  60.           if(buffer.indexOf("led2=1")>=0) {Serial.println("Zapinam LED2");digitalWrite(LED2,HIGH);} //ak obsahuje led2=1, zapni LED2
  61.           if(buffer.indexOf("led2=0")>=0) {Serial.println("Vypinam LED2");digitalWrite(LED2,LOW);} //ak obsahuje led2=0, vypni LED2
  62.           if(buffer.indexOf("led3=1")>=0) {Serial.println("Zapinam LED3");digitalWrite(LED3,HIGH);} //ak obsahuje led3=1, zapni LED3
  63.           if(buffer.indexOf("led3=0")>=0) {Serial.println("Vypinam LED3");digitalWrite(LED3,LOW);} //ak obsahuje led3=0, vypni LED3
  64.           }
  65.         buffer=""; //po nacitani riadku zmaz buffer
  66.        }
  67.   }
  68.  
  69.   //  request sa posle len vtedy, ked uplynul pozadovany cas
  70.   if (millis() - lastConnectionTime > postingInterval) {
  71.     httpRequest();
  72.   }
  73.  
  74. }
  75.  
  76. void httpRequest() {
  77.   client.stop();
  78.  
  79.   if (client.connect(server, 80)) {
  80.     Serial.println("connecting...");
  81.     // odoslanie HTTP GET requestu:
  82.     client.println("GET /arduino.php HTTP/1.1");
  83.     client.print("Host: ");
  84.     client.println(server);
  85.     client.println("User-Agent: arduino-ethernet");
  86.     client.println("Connection: close");
  87.     client.println();
  88.  
  89.     // zapis casu posledneho requestu
  90.     lastConnectionTime = millis();
  91.   } else {
  92.     // chybova hlaska v pripade neuspesneho spojenia
  93.     Serial.println("connection failed");
  94.   }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment