Pesquisar

ETHERNET SHIELD W5100

Realizar o controle de sensores ou mesmo enviar informações de forma remota é um dos grandes desafios de quem trabalha com o Uno, Mega, etc. O Ethernet Shield W5100 é um dispositivo da família, que possibilita o acesso a informações na sua rede local, ou monitoramento quando conectado à internet em qualquer lugar do mundo.


Conectando o Ethernet Shield W5100 à placa , com um simples cabo de rede em pouco tempo é possível começar a  monitorar o estado de sensores, ou acionamento de um dispositivo à distância através do browser de seu computador ou celular.
O Shield Ethernet Shield W5100  utiliza o ethernet chip Wiznet W5100 o mesmo  fornece um endereço IP compatível com os protocolos TCP e UDP.
Para utilizar o seu shield ethernet é necessário configurar corretamente com um endereço IP válido da sua rede à seguir mostramos como obter as informações de rede no Windows 7, mas o procedimento é o mesmo para outros sistemas operacionais.

Configurando o IP:

Clique em INICIAR e, na caixa de diálogo, digite CMD. Pressione  a tecla ENTER :


Na janela de comando prompt, digite ipconfig /all em seguida aperte ENTER 


Uma vez executado o comando será apresentado as informações à seguir na tela do prompt. Localize pela informação referente à sua placa de rede principal, parecido como destacado em amarelo na imagem, são essas informações necessárias para configurar o shield : Endereço IP,  Máscara de sub-rede e Gateway Padrão :


Estas três informações [parâmetros] serão definidos logo no início do programa, sendo necessário altera-lo de acordo com a configuração da sua rede :
IPAddress ip(192.168.2.103) : Substitua por um endereço IP no mesmo formato daquele que você copiou na janela de prompt de comando, mas o último número deve ser diferente. Exemplo : o IP do nosso equipamento é 192.168.2.103, mas no programa estamos utilizando  192.168.2.102. No entanto antes de usar qualquer endereço da rede verifique se o mesmo ainda não está em uso por nenhum outro equipamento/dispositivo.
IPAddress gateway(192.168.2.1) : Nesta linha utilize o mesmo endereço do Gateway Padrão obtido na janela de prompt de comando. No nosso caso, 192.168.2.1
IPAddress subnet(255,255,252,0) : Utilize o mesmo endereço referente à máscara de sub-rede, que você obteve na janela de prompt de comando : 255.255.255.0

Altere os parâmetros de acordo com a sua configuração de rede, salve, compile o programa salve o programa e carregue-o na sua placa de desenvolvimento. Lembrando que a biblioteca Ultrasonic pode ser encontrada nesse link.


    //Programa : Ethernet Shield W5100 e HC-SR04
    //Alteracoes e adaptacoes : AFELETRONICA
    //Baseado no programa de
    //by David A. Mellis e Tom Igoe
   
    
   
    #include <SPI.h>
    #include <Ethernet.h>
    #include <Ultrasonic.h>
    
    //Define os parametros para o sensor ultrasonico HC-SR04
    #define PINO_TRIGGER 2 //Porta ligada ao pino Trigger do sensor
    #define PINO_ECHO 3 //Porta ligada ao pino Echo do sensor
    //Inicializa o sensor ultrasonico
    Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO);
    
    //Definicoes de IP, mascara de rede e gateway
    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    
    IPAddress ip(192,168,2,102); //Aqui DEFINA SEU ENDEREÇO IP
    IPAddress gateway(192,168,2,1); //Define o gateway
    IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede
   
    
    //Inicializa o servidor web na porta 80
    EthernetServer server(80);
   
    String readString;
    int Pin = 4; // pin digital 4 em  à 3v3 ou 5V é mostrado no browser estado pin4
    
    void setup()
    {
    pinMode(10, OUTPUT);  // SE MEGA2560 = pin53; SE UNO R3 = 10
    digitalWrite(10,HIGH);
   
     //Inicializa a interface de rede
     pinMode(Pin, OUTPUT);
     Ethernet.begin(mac, ip, gateway, subnet);
     server.begin();
   
    }
    
    void loop() {
     float cmMsec;
     long microsec = ultrasonic.timing();
     //Le e armazena as informacoes do sensor ultrasonico
     cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
    
    //Aguarda conexao do browser
     EthernetClient client = server.available();
     if (client) {
     Serial.println("new client");
     char c = client.read();

     boolean currentLineIsBlank = true;
     while (client.connected()) {
     if (client.available()) {
     char c = client.read();
     Serial.write(c);
   
     if (c == '\n' && currentLineIsBlank) {
     // send a standard http response header
     client.println("HTTP/1.1 200 OK");
     client.println("Content-Type: text/html");
     client.println("Connection: close");
     client.println("Refresh: 2"); //Recarrega a pagina a cada 2 segundos
     client.println();
     client.println("<!DOCTYPE HTML>");
     client.println("<html>");
    
    //Configura o texto e imprime o titulo no browser
     client.print("<font color=#FF0000><b><u>");
     client.print("Envio de informacoes pela rede utilizando Arduino");
     client.print("</u></b></font>");
     client.println("<br />");
     client.println("<br />");
    
    //Mostra valor porta digital 4
     int porta_digital = digitalRead(4);
     client.print("Porta Digital 4 : ");
     client.print("<b>");
     client.print(porta_digital);
     client.println("</b>");
     client.print(" (1 = Ligada, 0 = Desligada)");
     client.println("<br />");
   
     //Mostra as informacoes lidas pelo sensor ultrasonico
     client.print("SensorUS   HC-SR04 : ");
     client.print("<b>");
     client.print(cmMsec);
     client.print(" cm");
     client.println("<br />");
     client.print("Visite minha pagina na internet www.afeletronica.com.br");
     client.println("</b></html>");
     client.println("<br />");
     client.print("<font color=#FF0000><b><u>");
     client.print("curta nos no facebook em www.facebook.com.br/afeletronica");
     client.print("</u></b></font>");
    
     client.print("</u></b></font>");
     client.println("<br />");
     client.print("<font color=#FF0000><b><u>");
     client.print("visite www.afeletronica.com.br");
     client.print("</u></b></font>");
   
   
    
     break;
     }
     if (c == '\n') {
     // you're starting a new line
     currentLineIsBlank = true;
     }
     else if (c != '\r') {
     // you've gotten a character on the current line
     currentLineIsBlank = false;
     }
     }
     }
      delay(1);
     // close the connection:
     client.stop();
     }
    }


ENVIANDO INFORMAÇÕES PELA REDE com o arduino:

Conecte o Arduino ao Ethernet Shield W5100,  ligue-o à um roteador ou hub usando um cabo de rede. Usaremos o webserver embarcado na placa de ethenet para enviar ao browser duas informações sobre as portas do Arduino, uma informando sobre o estado (ligado/desligado) de um botão ligado à porta 4, e outro com informações sobre o US HC-SR04, ligado às portas 2 (pino TIGGERdo sensor) e 3 (pino echo do sensor) :


Para testar o funcionamento, abra o browser no seu computador e digite na barra de endereços o IP que você configurou no programa. No nosso caso 192.168.2.102 :





Nenhum comentário:

Postar um comentário