quarta-feira, 28 de agosto de 2013

Tutorial Shield Ethernet Arduino - Parte 1: Construção e entendimento de uma simples página HTML

   Há algum tempo adquiri uma placa shield ethernet para usar no Arduino. Já postei algo sobre essa placa alguns posts atrás. (11 projeto arduino e shield ethernet). Decidi então estudar melhor esse shield e também criar um pequeno tutorial sobre meus estudos, que achei em livros e sites.
    Nesse 1º tutorial aborda o uso do shield para construção simples em HTML de um site hospedado pelo próprio shield.
    Um web server hospeda sites que você pode acessar pelo browser de qualquer computador em rede com o arduino e seu shield ethernet. Com o esse shield você poderá controlar e monitorar alguns hardware. como lâmpadas, motores e etc.
    Abaixo segue os materiais que iremos usar nesse e nos próximos tutoriais.

Material:


  •  Arduino
  •  Shield Ethernet
  •  Cabos (RJ-45)
  •  Cartão MicroSD (quando requesitado)
  •  Mateiras adicionais: led; protboard; resistores; fios jumpers;






Códigos:


 /***************************************************************  
          Tutorial Ethernet Shield  
 Objetivo: Nesse tutorial iremos aborda como fazer uma simples   
 pagina no estilo HTML usando o shield Etehrnet  
 Autor: Felipe Souza Amaral  
 ***************************************************************/  
 //incluindo biblioteca SPI e Ethernet  
 #include <SPI.h>  
 #include <Ethernet.h>  
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Endereço MAC do shield ethernet  
 IPAddress ip(192,168,0,2); // IP de acesso ao shield, <------- Coloque aqui seu IP  
 EthernetServer server(80); // Porta do servidor   
 void setup()  
 {  
   Ethernet.begin(mac, ip); // Inicializando shield  
   server.begin();      // Conferindo clientes  
 }  
 void loop()  
 {  
   EthernetClient client = server.available(); // conexão com client  
   if (client) {   
     boolean currentLineIsBlank = true;  
     while (client.connected()) {  
       if (client.available()) {  // condição de envio de dados entre o client e o servidor  
         char c = client.read();   
         if (c == '\n' && currentLineIsBlank) {  
           // conexão estabeliecida  
           client.println("HTTP/1.1 200 OK");  
           client.println("Content-Type: text/html");  
           client.println("Connection: close");  
           client.println();  
           // envio de pagina  
           client.println("<!DOCTYPE html>");  
           /*programação HTML */  
           client.println("<html>");  
           client.println("<head>");  
           client.println("<title>Arduino Shield Ethernet</title>");  
           client.println("</head>");  
           client.println("<body>");  
           client.println("<h1>Hello Arduino!</h1>");  
           client.println("<p>Pagina arduino-Server: Pagina de teste </p>");  
           client.println("</body>");  
           client.println("</html>");  
           break;  
         }  
          if (c == '\n') {  
           currentLineIsBlank = true;  
         }   
         else if (c != '\r') {  
           currentLineIsBlank = false;  
         }  
       }   
     }  
     delay(1);     
     client.stop();   
   }   
 }  



Imagens:



    Ao carregar o programa e entrar com o numero de IP no browser. Se tudo ocorrer bem a imagem acima deverá aparecer na tela de seu computador.

Observação:


    Se inserirmos o cartão SD no shield ethernet poderá ocorrer erros, pois ao declarar a biblioteca SPI poderá ocorrer a portunidade de um both a qualquer momento. Para a não inicialização do cartão SD, devemos declarar:

 void setup(){  
  pinMode(4, OUTPUT);  
  digitalWrite(4, HIGH);  
 }  


Nenhum comentário:

Postar um comentário