Ethernet Shield W5100

23/09/2014 23:01

Realizar o controle de sensores ou mesmo enviar informações de forma remota é um dos grandes desafios que quem trabalha com o Arduino. 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 ao Arduino , 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 (datasheet) 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 no seu Arduino. Lembrando que a biblioteca Ultrasonic pode ser encontrada nesse link.

 

//Programa : Arduino 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,1,88); //Define o endereco IP

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);  // Aqui está setado para usar no MEGA2560 = pin53, se for usar em outro arduino, tipo UNO R3 Atmega328P mude para 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(  );

// an http request ends with a blank line

boolean currentLineIsBlank = true;

while (client.connected( )) {

if (client.available( )) {

char c = client.read();

Serial.write(c);

 

//novo

// if you've gotten to the end of the line (received a newline

// character) and the line is blank, the http request has ended,

// so you can send a reply

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(" ");

client.println(" ");

 //Configura o texto e imprime o titulo no browser
      client.print(" ");
      client.print("Envio de informacoes pela rede utilizando Arduino");
      client.print(" ");
      client.println(" ");

 

//Mostra valor porta digital 4

int porta_digital = digitalRead(4);

client.print("Porta Digital 4 : ");

client.print(" ");

client.print(porta_digital);

client.println(" ");

client.print(" (1 = Ligada, 0 = Desligada)");

client.println(" ");

//Mostra as informacoes lidas pelo sensor ultrasonico

client.print("SensorUS   HC-SR04 : ");

client.print(" ");

client.print(cmMsec);

client.print(" cm");

client.print(" ");

 

client.print("Visite minha pagina na internet www.afeletronica.com.br");

client.println(" ");

client.println(" ");

client.print(" ");

client.print("curta nos no facebook em www.facebook.com.br/afeletronica");

client.print(" ");

 

client.print("");

client.println("
");

client.print(" ");

     client.print("visite www.afeletronica.com.br");

client.print(" ");

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;

}

}

}

// give the web browser time to receive the data

delay(1);

// close the connection:

client.stop();

}

}

ENVIANDO INFORMAÇÕES PELA REDE:

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 6 (pino TIGGERdo sensor) e 7 (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

 

Comentários

Nenhum comentário encontrado.

Novo comentário


Crie um site gratuito Webnode