terça-feira, 4 de junho de 2013

Arduino Ethernet

Olá, neste artigo iremos mostrar como montar um mini servidor, que retorne uma página para um navegador utilizando um arduino e uma placa ethernet.



A placa ethernet que usaremos é compatível pino a pino com o arduino UNO. Sendo assim, ela encaixará perfeitamente na mesma. A figura abaixo mostra a placa e o arduino.



Utilizaremos as biblioteca Ethernet.h e SPI.h que já fazem parte da IDE 1.0.1, utilizada para fazer esse artigo.

Abaixo, segue montado.


A seguir, segue um código-exemplo.

 #include <SPI.h>  
 #include <Ethernet.h>  
 // Defina o IP de acordo com a sua rede:  
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Informe um mac-address  
 IPAddress ip(169,254,109, 208);//Informe um IP   
 EthernetServer server(80);//Informando a porta para receber requisicoes  
 void setup()   
 {  
  // Inicializando modulo com mac e ip  
  Ethernet.begin(mac, ip);  
  server.begin();//Inicializando o servidor  
 }  
 void loop() {  
  // Aguardando conexoes  
  EthernetClient client = server.available();  
  if (client)   
  {  
   boolean currentLineIsBlank = true;  
   while (client.connected())   
   {  
    if (client.available())   
    {  
     char c = client.read();//Lendo carcteres recebidos  
     Serial.write(c);  
     //Se receber \n e a linha for em branco (dois \n) - fim http request  
     if (c == '\n' && currentLineIsBlank)   
     {  
      client.println("HTTP/1.1 200 OK");  
      client.println("Content-Type: text/html");  
      client.println("Connnection: close");  
      client.println();  
      client.println("<!DOCTYPE HTML>");  
      client.println("<html>");  
      client.println("<head>");  
      client.println("<title>Ola</title>");  
      client.println("<html>");  
      client.println("</head>");  
      client.println("<center>");  
      client.println("<h1>");  
      client.println("<p>ArduinoCC</p>");  
      client.println("</h1>");  
      client.println("<h1>");  
      client.println("<p>Arduino Ethernet</p>");  
      client.println("</h1>");  
      client.println("TESTE HTTP");  
      client.println("</center>");  
      client.println("</html>");  
      break;  
     }  
     if (c == '\n') {  
      // Nova linha  
      currentLineIsBlank = true;  
     }  
     else if (c != '\r') {  
      // recebendo caractere apos nova linha  
      currentLineIsBlank = false;  
     }  
    }  
   }  
   //Aguardando o navegador receber a pagina  
   delay(1);  
   client.stop();//Fechando conexao  
  }  
 }  

Segue a saída no navegador


Até a próxima.

Sem comentários:

Enviar um comentário