Advertisement
Rodrigo_Moraes

XMLL

Jun 12th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.31 KB | None | 0 0
  1.  
  2. #include <Ethernet.h> //inclui a biblioteca ethernet pra usar o modulo ethernet
  3.  
  4. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };// define o endereço MAC do arduino
  5. IPAddress ip(10, 1, 1, 10); //define o IP do arduino
  6. EthernetServer server(80); //define a porta a ser utilizada para comunicação (80 é para web jaestá liberada)
  7.  
  8. void setup() //função de configuração
  9. {
  10.   Serial.begin(115200); //inicia comunicaçao serial com velocidade de 115200 (nao precisa pq n vai usar)
  11.   Ethernet.begin(mac, ip); //configura o ip e o mac de acordo com o que foi definido no começo
  12.   server.begin(); //inicia o webservice
  13.   pinMode(A0, 1); //define a porta analogica A0 como entrada
  14. }
  15.  
  16. void loop()
  17. {
  18.   // listen for incoming clients
  19.   EthernetClient client = server.available(); //inicia o webservice
  20.   if (client) {
  21.     boolean currentLineIsBlank = true; //define a linha atual como nula (necessaria para http)
  22.     while (client.connected()) { //enquanto o cliente estiver conectado (online)
  23.       if (client.available()) { //se estiver disponivel
  24.         char c = client.read(); //caractere c é igual o que o cliente le
  25.  
  26.         if (c == '\n' && currentLineIsBlank) { //se o cliente nao esta lendo nada e a linha atual é nula (vazia)
  27.           client.println("HTTP/1.1 200 OK"); //cria um webservice HTTP
  28.           client.println("Content-Type: text/xml"); //cria um documento do tipo XML
  29.           client.println("Connection: close"); //fecha a conexão
  30.           client.println("Refresh: .05"); //Recarrega a pagina a cada .05seg
  31.           client.println();
  32.           client.println("<!DOCTYPE XML>"); //estrutura XML
  33.           client.println("<xml>");
  34.           client.println("Leitura POT ");
  35.           client.println(analogRead(A0)/4); //le o valor do potenciometro
  36.           client.println("</xml>");
  37.           break; //quebra/pausa
  38.         }
  39.         if (c == '\n') { //se nao esta lendo nada define como nao recebendo nada (linha nula/vazia)
  40.           currentLineIsBlank = true;
  41.         }
  42.         else if (c != '\r') { //se esta lendo algo define a linha atual como ocupada (para nao enviar os dados enquanto estiver recebendo)
  43.           currentLineIsBlank = false;
  44.         }
  45.       }
  46.     }
  47.     delay(1);
  48.     //interrompe a conexão para ser iniciada novamente com novos dados
  49.     client.stop();
  50.   }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement