Rodrigo_Moraes

json

Jun 24th, 2017
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.73 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. float temperatura;
  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.   temperatura = (float(analogRead(A0)) * 5 / 1023) / 0.01;
  19.   // listen for incoming clients
  20.   EthernetClient client = server.available(); //inicia o webservice
  21.   if (client) {
  22.     boolean currentLineIsBlank = true; //define a linha atual como nula (necessaria para http)
  23.     while (client.connected()) { //enquanto o cliente estiver conectado (online)
  24.       if (client.available()) { //se estiver disponivel
  25.         //Serial.println(client.readString());
  26.         char c = client.read(); //caractere c é igual o que o cliente le
  27.  
  28.         if (c == '\n') { //se nao esta lendo nada define como nao recebendo nada (linha nula/vazia)
  29.           currentLineIsBlank = true;
  30.         }
  31.         else if (c != '\r') { //se esta lendo algo define a linha atual como ocupada (para nao enviar os dados enquanto estiver recebendo)
  32.           currentLineIsBlank = false;
  33.         }
  34.         if (!currentLineIsBlank) {
  35.           client.println("HTTP/1.1 200 OK"); //cria um webservice HTTP
  36.           client.println("Content-Type: application/json"); //cria um documento do tipo json
  37.           client.println("Connection: close"); //fecha a conexão
  38.           Serial.println(client.readString());
  39.           client.println("recebi");
  40.           delay(10);
  41.           currentLineIsBlank = true;
  42.         }
  43.         if (c == '\n' && currentLineIsBlank) { //se o cliente nao esta lendo nada e a linha atual é nula (vazia)
  44.           client.println("HTTP/1.1 200 OK"); //cria um webservice HTTP
  45.           client.println("Content-Type: application/json"); //cria um documento do tipo json
  46.           client.println("Connection: close"); //fecha a conexão
  47.           client.println("Refresh: .05"); //Recarrega a pagina a cada .05seg
  48.           client.println();
  49.           client.println("{\"temperatura\":");
  50.           client.println(temperatura);
  51.           client.println( "}");
  52.           break; //quebra/pausa
  53.         }
  54.       }
  55.     }
  56.     delay(1);
  57.     //interrompe a conexão para ser iniciada novamente com novos dados
  58.     client.stop();
  59.  
  60.   }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment