Pular para o conteúdo principal

Módulo Shield Ethernet W5100 para Arduino UNO e MEGA

Ethernet W5100
Módulo Ethernet interligado ao Arduino UNO R3




Com o uso do Shield Ethernet você tem a possibilidade de conectar o seu Arduino na rede local ou na internet. A biblioteca nativa permite a manipulação de dados para tornar o Arduino um servidor que pode tratar conexões de entrada ou um cliente realizando requisições de saída remotas.

A comunicação entre o shield e o Arduino é realizada através do barramento SPI bem como o acesso ao SD Card.


Apresentamos abaixo alguns exemplos práticos de uso do módulo fazendo o uso das bibliotecas do Arduino.



Controle da cor de um LED 3mm bicolor de 3 terminais através de um navegador
 



Para este primeiro teste, utilizou-se um Arduino UNO R3 + Arduino Shield Ethernet W5100 e um LED Bicolor de três terminais ligado nas portas digitais 8 e 9.

Materiais utilizados:
•    Arduino Uno R3
•    Ethernet Shield W5100
•    1 Led Bicolor
•    2 Resistores 330 Ohm ¼ W
•    Espaguete termo retrátil
•    Cabo de rede padrão

O terminal ‘verde’ do LED foi conectado ao pino digital 9 e o terminal ‘vermelho’ ao 8 como na imagem a baixo.








Tela apresentada no browser





Ao selecionar uma das quatro opções disponíveis (Verde, Vermelho, Ambos ou Nenhum) e clicando no botão CONFIRMA, o led irá mudar de estado.
O campo ‘Estado atual do LED’ mostra em que condição está o LED que está conectado ao Arduino.

Com este exemplo vemos que é possível fazer o controle/leitura de saídas e entradas digitais da placa protótipo remotamente.

Acertadas as devidas configurações de rede, podemos controlar um sistema embarcado remotamente através de um navegador, seja ele num laptop ou num smartphone. Aumentado muito a interatividade e efetivando um controle remoto fácil e prático

Vídeo de demonstração


Leitura de canais analógicos


Podemos usar também o módulo para mostrar num navegador de internet valores lidos dos canais analógicos do Arduino.

A atualização dos valores mostrados dependem da atualização da página mostrada no navegador.

Vídeo demonstrativo da leitura do canal analógico zero  (A0).



Ainda é possível que a página que será mostrada no navegador bem como suas imagens, podem ser armazenadas e lidas do SD card nativo do shield ethernet.



#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
IPAddress ip(192,168,0,100);
EthernetServer server(80);

void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
  pinMode(8, OUTPUT);  // LED VERMELHO
  pinMode(9, OUTPUT);  // LED VERDE
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    String buffer="";
    
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        buffer+=c;
        
       if ((c == '\n') && currentLineIsBlank) {
          
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<HTML>");
          client.println("<BODY  BGCOLOR=#4682B4>");
          client.println("<FONT COLOR=WHITE>");
          client.println("<H1>ELETRODEX ELETRONICA</H1>");
          client.println("<i>Teste Arduino UNO R3 + Shield Ethernet W5100</i><BR><BR>");
          client.println("</FONT>");
          client.println("<FONT COLOR=WHITE SIZE=3 FACE=ARIAL>");
          client.println("Controle da cor de um LED 3mm Bicolor de 3 terminais atrav&eacute;s de um navegador.<BR><BR><BR>");
          client.println("</FONT>");
          client.print("<FONT COLOR=WHITE SIZE=4 FACE=ARIAL>Estado atual do LED: </FONT>");
          
          if (digitalRead(8) && digitalRead(9))
            client.print("<FONT COLOR=#FFA500 SIZE=4 FACE=VERDANA> Vermelho + Verde<BR><BR></FONT>");
          else if (digitalRead(8) && !digitalRead(9))
            client.print("<FONT COLOR=#FF0000 SIZE=4 FACE=VERDANA> Vermelho<BR><BR></FONT>");    
          else if (!digitalRead(8) && digitalRead(9))
            client.print("<FONT COLOR=#32CD32 SIZE=4 FACE=VERDANA> Verde<BR><BR></FONT>");
          else 
            client.print("<FONT COLOR=#FFFFFF SIZE=4 FACE=VERDANA> Desligado!<BR><BR></FONT>");  
            
                   
          client.println("<FONT COLOR=WHITE SIZE=3 FACE=ARIAL>");
          client.print("<FORM action=\"http://192.168.0.100/\" >");
          client.print("<INPUT type=\"radio\" name=\"led\" value=\"0\">Verde<BR>");
          client.print("<INPUT type=\"radio\" name=\"led\" value=\"1\">Vermelho<BR>");
          client.print("<INPUT type=\"radio\" name=\"led\" value=\"2\">Verde + Vermelho<BR>");
          client.print("<INPUT type=\"radio\" name=\"led\" value=\"3\">Desligar<BR><BR>");          
          client.print("<INPUT type=\"submit\" value=\"CONFIRMA\"><BR><BR> </FORM>");
          client.println("</FONT>");
          
          client.println("</FONT>");
          client.println("</BODY>");
          client.println("</HTML>");
          
          break;
        }
        if (c == '\n') {  
          currentLineIsBlank = true;
          buffer=""; 
        } 
        else if (c == '\r') {            
          if(buffer.indexOf("GET /?led=0")>=0){
            digitalWrite(9,HIGH);
            digitalWrite(8,LOW);
          }  
          if(buffer.indexOf("GET /?led=1")>=0){
            digitalWrite(9,LOW);
            digitalWrite(8,HIGH);
          }
          if(buffer.indexOf("GET /?led=2")>=0){
            digitalWrite(9,HIGH);
            digitalWrite(8,HIGH);
          }
          if(buffer.indexOf("GET /?led=3")>=0){
            digitalWrite(9,LOW);
            digitalWrite(8,LOW);
          }
        }
        else {
          currentLineIsBlank = false;
        }
      }
    }
    
    delay(1);
    client.stop();
  }
}



Não perca tempo. Adquira seu módulo ethernet e conecte seu projeto na internet.

Confira também outros módulos para Arduino na nossa loja AQUI.

Até a próxima dica!

Comentários

Postagens mais visitadas deste blog

Controlando LED via Bluetooth utilizando o Módulo HC-05

Hoje abordaremos uma breve demonstração de conexão do Módulo Bluetooth HC-05 Master/Slave com um dispositivo externo, e após a conexão utilizar o dispositivo para controlar um LED. A Placa Base utilizada como controladora é a Arduino Uno , que foi utilizada em conjunto com o Protoshield compatível com a mesma. Todos os itens utilizados podem ser adquiridos em nossa loja . Note que o Módulo Bluetooth HC-05 Master/Slave possui níveis de tensão de alimentação e operação diferentes, sendo que pode ser alimentado com  uma tensão entre 3,3v e 6v (no projeto foi alimentado com 5v, direto de um dos pinos do Arduino Uno ), mas a sua tensão de operação é de 3,3v. IMPORTANTE:    O Arduino consegue reconhecer a tensão de 3,3v no terminal RX como nível lógico alto, mas somente fornece 5v no terminal Tx como nível lógico alto. Portanto, se for utilizar os terminais Rx e Tx para a comunicação com os terminais Tx e Rx do HC-05,  o terminal Tx do HC-05 pode ser conectado diretamente ao ter

Como programar com Programador KIT 3.5 para PIC

Nesta postagem iremos falar sobre o Programador KIT 3.5 O Programador KIT 3.5 é um programador para microcontroladores PIC bastante completo, até o momento compatível com  mais de 600 dispositivos da linha de microcontroladores da Microchip, incluindo a nova linha dsPIC. (Confira aqu i a lista com os microcontroladores compatíveis com o Kit 3.5) Permite a programação diretamente na placa (ICSP) ou então através de conectores ZIF (não inclusos). Detalhe para a interface ICSP Com ele é possível gravar (programar), ler, verificar e copiar os códigos dos microcontroladores, através do software gratuito PicKit 3 Programmer ( instruções de uso ), uma vez que ele é totalmente compatível com o PICkit3. Lembrando que este software é apenas para a gravação do arquivo HEX no seu microcontrolador, sendo que é necessário gerar esse arquivo em um compilador de sua escolha. Além disso, é possível utilizá-lo como ferramenta de depuração (debug) através do software MPLAB. Caract

Utilizando o Programador USB para PIC K150

Nessa postagem iremos demonstrar a utilização do Programador USB para PIC K150 O gravador possui um soquete do tipo ZIF (ZIF - Zero Insertion Force - é um soquete com uma alavanca, que permite a colocação e a retirada dos microcontroladores sem risco de danificar seus terminais) para a programação dos microcontroladores. Conta também com um conector para a programação ICSP (In Circuit Serial Programming, que será abordada futuramente em outra postagem, pois é necessário que se faça algumas adaptações no circuito a ser programado). O programador é controlado pelo PIC16F628A, e no site do fabricante do gravador é possível encontrar informações sobre como atualizar o firmware do gravador, para possibilitar a gravação de mais dispositivos. Instalação do Programador USB para PIC K150 Se você estiver utilizando o Windows 7/Vista/XP, o driver deve ser instalado normalmente, sem que seja necessária a interferência do usuário. Caso esteja utilizando o Windows 8/8.1, o processo é um po