Ethernet Shield W5100 com Arduino – Parte 1

Ethernet Shield com Arduino

Nesse artigo vamos abordar o Ethernet Shield W5100 e suas possibilidades de integração com Arduino. O Ethernet Shield W5100 é uma forma rápida e prática de tornar sua placa Arduino on-line. É baseada no chip WIZnet ethernet W5100, que fornece acesso à rede nos protocolos TCP ou UDP. Duas bibliotecas nativas são usadas para poder usar o módulo facilmente: Ethernet Library e SD Library. Nesse exemplo, configuramos o Shield como WebServer para armazenar uma página online com o estado lido de um sensor TCRT5000.

O Ethernet Shield W5100 é compatível tanto com o Arduino Uno e Arduino Mega e possui um slot para cartão micro-SD, o que facilita a criação de dataloggers.

Introdução

Usar o Ethernet Shield é uma forma simples de disponibilizar online dados referentes a sensores ou sistemas que você controle usando um Arduino. A biblioteca Ethernet da IDE oferece todos os recursos necessários para que dados lidos com o Arduino possam ser acessados online.

Do ponto de vista de hardware, trata-se de uma conexão simples. Basta encaixar o shield no seu Arduino UNO ou Mega e ter em mãos um cabo ethernet com conetores RJ45 para ligar no seu modem/roteador. Se seu Arduino estiver ligado em algum sistema em específico, é necessário refazer as ligações diretamente no Shield.

Ethernet Shield para Arduino

Nesse artigo, vamos fazer como exemplo a leitura de estado de um sensor TCRT5000 e apresentar a informação em uma página na internet. Ou seja, vamos atribuir um IP ao nosso Ethernet Shield e configurá-lo adequadamente, e depois vamos enviar as informações lidas pelo sensor para uma página hospedada no próprio Shield, disponibilizada na rede por meio da conexão local.

Algumas características do W5100 são importantes

  • Suporta 4 conexões independentes simultaneamente;
  • Não suporta fragmentação de IP;
  • Memória Interna 16Kbytes para Tx / Rx Buffers;
  • Suporte Interface Serial (SPI modo 0, 3)
  • Saídas função Multi-LED (TX, RX, Full / Half duplex, Colisão, Speed Link)
  • O W5100 Wiznet fornece uma rede (IP) capaz de TCP e UDP.

Uma série de LEDs indicativos também ajuda a saber o que está acontecendo com o Shield durante sua operação:

  • Led PWR: Indica que a placa e Shield está alimentada;
  • Led LINK: Indica a presença de uma ligação de rede e pisca quando o shield transmite ou recebe dados;
  • Led FULLD: Indica que a conexão de rede é full duplex;
  • Led 100M: Indica a presença de uma conexão de rede 100 Mb / s (em oposição a 10 Mb / s)
  • Led RX: Pisca quando o shield recebe dados;
  • Led TX: Pisca quando o shield envia os dados;
  • Led COLL: Pisca quando são detectadas colisões de rede

CI W5100

O coração do Shield é o CI W5100, fabricado pela WIZNet. Algumas fontes recomendam a utilização de uma fonte de alimentação externa para alimentar o Shield devido ao consumo de corrente elevado desse CI, mas muitos exemplos utilizam o cabo USB para alimentação também. O datasheet indica um consumo de até 183mA, o que está dentro das capacidades dos cabos USB 2.0(500mA) e 3.0(900mA). Assim, em nosso exemplo utilizaremos o cabo USB como fonte de alimentação.

Mas atente-se que caso você esteja alimentando outras cargas como sensores e relés, pode ser que você precise de uma fonte externa. Em geral, é recomendado o uso de uma fonte de externa para garantir que todos os componentes sejam alimentados de acordo com suas características.

A figura abaixo mostra o Ethernet Shield conectado a um Arduino.

Ethernet Shield com Arduino

O W51000 possui um buffer interno de 16K, e a velocidade de conexão é de 10 a 100Mb. Mais do que suficiente para fazer leituras de sensores e atuadores. O slot para cartão SD é uma forma prática para montar datologgers com acesso online aos dados. Aliás, se você ainda não sabe o que é um datalogger ou está pensando em fazer um, confira o nosso post sobre o assunto.

Aspectos de Hardware

A montagem do nosso esquema será da seguinte forma:

Montagem de Hardware

Para informações adicionais sobre o funcionameto do TCRT5000, leia o artigo principal sobre esse componente. A montagem acima não tem segredo. Repare que no desenho as ligações foram feitas já no Ethernet Shield, e o mesmo deve estar conectado ao seu Arduino conforme mostramos na segunda figura da seção de introdução.

Quando feita a montagem, utilize um cabo de rede e conecte o Ethernet Shield ao roteador ou hub de sua rede local e alimente o circuito. Agora você está pronto para programar o Arduino e controlar o Shield para disponibilizar as leituras do sensor online.

Aspectos de Software

A primeira coisa a ser feita é determinar o endereço IP e MAC a serem atribuídos ao seu Ethernet Shield. O W5100 não possui um endereço MAC de fábrica como acontece com seu notebook ou PC. Alguns modelos vem com um endereço MAC indicado em um stick na parte de trás da placa. Em geral, você deve determinar um endereço para seu Ethernet Shield. Mais informações sobre essa questão podem ser encontradas aqui. No nosso projeto, usamos o endereço padrão do exemplo “WebServer” da biblioteca Ethernet.

Acesse na sua IDE: File -> Examples -> Ethernet -> WebServer. O código que você verá é o código base usado por quase todas aplicações e projetos disponíveis na internet para disponibilizar dados de sensores online.

Para determinar o endereço IP do shield, encontre o IP de seu PC(com ipconfig /all no windows ou ifconfig -a no terminal do linux) e altere o último número. No nosso projeto, o endereço IP foi obtido com o ifconfig -a, que exibiu no terminal linux a seguinte mensagem:

Dados da rede no Linux

O IP está listado ao lado de inet, e no caso é: 192.168.25.120. O endereço MAC está listado ao lado de HWaddr: 5c:c9:d3:02:62:3e (mas esse não usamos para configurar o Ethernet Shield). Alteramos o IP para 192.168.25.100 e setamos dessa forma no código abaixo.

 

O código acima implementa um WebServer no EthernetShield. Os trechos em inglês são referentes ao exemplo base da biblioteca Ethernet, nativa da IDE Arduino. Em geral, com esse código base e fazendo pequenas customizações, você pode configurar páginas Web e armazená-las no Ethernet Shield(WebServer) para disponibilizar informações online.

Conhecimentos de HTML e do protocolo HTTP serão muito úteis para você montar páginas mais sofisticadas. No código em questão apenas mostramos as mensagens com um pequeno título colorido(para usar outras cores, troque o código HTML correspondente na tag font color=).

Ao acessar no browser de algum computador conectado à rede de seu roteador o endereço IP do Ethernet Shield, a seguinte mensagem aparecerá:

 

Mensagem de objeto identificado pelo TCRT5000

Mensagem de nenhum objeto ao alcance do TCRT5000

Considerações finais

Com esse projeto você consegue disponibilizar online os dados referentes a qualquer sensor, basta fazer pequenas modificações e mudar o layout para utilizar o sensor desejado. Aqui no blog há exemplos com sensor ultrassônico, sensor de presença piroelétrico, LDR, sensor de umidade e muitos outros. Confira e implemente suas próprias configurações.

Qualquer dúvida, deixe nos comentários!

Referências

 

Avaliações: 5.0. de 1 voto.
Por favor, aguarde...
Vitor Vidal
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.