Tutorial: Como utilizar o Ethernet Shield com Arduino

 

Olá Garagistas! Neste tutorial mostraremos como você pode utilizar o Ethernet Shield com Arduino. Como demonstração, faremos a leitura da temperatura do nosso sistema utilizando um Thermistor NTC e também faremos 3 tipos de acionamentos no nosso sistema: LED Blink, LED Fade e Acionamento de Lâmpada.

 

Materiais Utilizados:

1x Arduino

1x Ethernet Shield V1.0 ou 1x Arduino Ethernet Shield R3

1x Thermistor NTC 10kΩ

1x LED Amarelo 3mm

1x LED Vermelho 3mm

1x Módulo Relé

2x Resistor 330R

1x Resistor 10kΩ

1x Protoboard

1x Barra Fêmea - 40 Pinos

Alguns Jumpers

Cabo Ethernet conectado à Rede

 

1. Ethernet Shield

Imagem 1 - Modelos de Ethernet Shield

 

Na imagem acima você pode ver dois modelos de Ethernet Shield, o da esquerda foi desenvolvido pela Seed Studio, e o da direita pela Arduino. Com qualquer um desses shields você irá conseguir realizar este tutorial, pois ambos operam com o chip Wiznet W5100, o qual as bibliotecas SPI.h e Ethernet.h da Arduino IDE dão suporte. A diferença de uma para outra é basicamente o suporte a cartão micro SD, o Ethernet Shield da Seed Studio não possui conector para cartão micro SD. Contudo, para fins de transmissão via Ethernet ambos dão conta do recado, e caso você deseje fazer um Data Logger, utilizando um cartão micro SD, você pode utilizar um Ethernet Shield da Arduino, ou juntamente com o Ethernet Shield da Seed Studio, utilizar um breakout para cartão micro SD.

O Ethernet Shield da Seed Studio, vem somente com os pinos para se fazer a conexão com o Arduino, por isso utilizamos uma barra fêmea de 40 pinos para que pudéssemos conectar o Ethernet Shield com os componentes de acionamento utilizando jumpers:

 

Imagem 2 - Ethernet Shield com barras fêmea

 

 

2. Funcionamento

 

Nosso sistema é composto por uma interface gráfica, essa interface é visualizada por uma página HTML desenvolvida no próprio sketch do Arduino e também contém uma montagem feita em protoboard (placa de controle), onde teremos um Thermistor NTC, um LED Vermelho, um LED Amarelo e um Módulo Relé. 

 

2.1) Placa de Controle: A placa de controle possui 4 componentes:

 

- Thermistor NTC: O Thermistor NTC fica responsável por pegar a temperatura ambiente do sistema.

- LED Amarelo: Quando acionado, o LED Amarelo gera um efeito de Blink, onde fica piscando em um intervalo de 1 segundo.

- LED Vermelho: Quando acionado, o LED Vermelho gera um efeito de Fade, onde fica variando a intensidade de brilho de 0 a 100%, dependendo do valor de PWM enviado a ele (0 a 255).

- Módulo Relé: Quando acionado, faz a ligação da lâmpada com a rede elétrica, acendendo a mesma.

 

2.1) Interface Gráfica (Página HTML):

 

Image 3 - Interface Gráfica (Página HTML - COD: B1xxx)

 

O sistema possui uma interface gráfica, desenvolvida em uma página HTML. Como padrão, a página que está armazenada dentro do Arduino, fica gerando um Refresh, e a cada 5 segundos quando é dado o Refresh, o valor da temperatura é atualizado. Essa página também disponibiliza 3 botões de acionamento, e em nosso sistema cada botão fica responsável por um único acionamento. O primeiro botão quando acionado ativa o efeito Blink no LED Amarelo, o segundo botão quando acionado ativa o efeito de Fade no LED vermelho, e o terceiro botão controla o acionamento do módulo relé, acendendo ou apagando a lâmpada. No canto inferior da página, mostramos o nibble (4 bits) de controle do sistema, o primeiro bit (bit menos significativo) é controlado pelo primeiro botão, e quando o mesmo está em estado ON esse bit recebe 1, e quando em OFF esse bit recebe 0, e isso funciona da mesma maneira para o segundo botão (segundo bit) e para o terceiro botão (terceiro bit). O bit mais significativo controla a estrutura da página HTML, quando em 1, a página mostra qual a temperatura que está sendo aferida pelo Thermistor, e o valor do COD ATUAL é mostrado em valor binário, variando de 1000b a 1111b, quando em 0, a página não mostra a temperatura ambiente e o valor de COD ATUAL é mostrado em valor hexadecimal, variando de 0h a 7h. Para alterar o modo da estrutura da página HTML, basta alterar esse quarto bit dentro do sketch do Arduino na linha "byte COD = B1000;", como pode ser visto na imagem abaixo:

 

Imagem 4 - Interface Gráfica (Página HTML - COD: 0xxx)

 

 

Para alterar o nome de cada botão, basta alterar as Strings de cada acionamento, conforme o trecho do código selecionado na imagem abaixo:

 

Imagem 5 - Trecho para alterar o nome dos botões

 

 

Ainda com relação a estrtura da página HTML, neste sistema você pode alterar toda a estrutura da página, que se encontra dentro da condição "if (c == '\n' && currentLineIsBlank)". É necessário não só um conhecimento básico de HTML, como também um pouco de jeito para integrar o código HTML dentro do código C. Na imagem abaixo, você pode visualizar o trecho do código onde é iniciado a página HTML e escrito a estrutura da mesma:

 

Imagem 6 - Trecho para alterar a estrutura da página HTML

 

 

Como foi dito anteriormente, cada botão é responsável por um bit do sistema, logo, quando esse botão é colocado em estado ON ou OFF ele envia um código para o sistema, esse código vai após o endereço de IP. Em nosso sistema esse código pode ser uma das três opções abaixo:

 

192.168.1.2/0001: Representando que o primeiro botão foi clicado

192.168.1.2/0010: Representando que o segundo botão foi clicado

192.168.1.2/0100: Representando que o terceiro botão foi clicado

 

Na imagem abaixo, está contido o trecho do código que faz o tratamento do dado que é recebido após o endereço de IP (192.168.1.2/xxx...x). Como foi dito acima, nosso sistema trata apenas 3 opções:

 

Imagem 7 - Trecho que trata os dados que são enviados pelos botões

 

 

Quando um botão é clicado, é invertido também o estado de seu respectivo acionamento. Esse estado é tratado dentro da função "acionamentos()".

Dentro da função "acionamentos()", você pode alterar o que cada botão irá executar quando colocado em estado ON ou quando colocado em estado OFF. Na imagem abaixo pode ver o controle do acionamento para o primeiro botão (A1 - Acionamento 1) que foi utilizado neste tutorial:

 

Imagem 8 - Trecho para o controle de cada acionamento

 

 

3. Montagem

 

Faça as ligações de sua lâmpada com o módulo relé, conforme a imagem abaixo:

Imagem 9 - Montagem do módulo relé com toma e bocal de lâmpada

 

Faça a montagem na Protoboard, conforme a figura abaixo:

 

Figura 1 - Circuito da demonstração

 

 

Alimente o Arduino pelo cabo USB ou por uma Fonte DC, e também conecte o Cabo Ethernet ao seu roteador ou em seu próprio computador, configurando a Rede a seu gosto:

 

Imagem 10 - Montagem da placa de controle

 

 

4. Sketch

 

Você pode baixar o sketch que foi utilizado neste tutorial clicando neste link. No vídeo você pode ver a explicação do código.

 

Então é isso Garagistas! Esperamos que tenham gostado deste tutorial!

C ya! =D

 

Referências:

http://www.seeedstudio.com/wiki/Ethernet_Shield

http://arduino.cc/en/Main/ArduinoEthernetShield

http://labdegaragem.com/profiles/blogs/tutorial-controlar-pan-tilt-...

 

 

Exibições: 96452

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Jorge Moises em 20 abril 2015 às 1:13
Ola
estava usando esse exemplo, mas apos eu usar o sketch com outro codigo (Bluetooth)
outro dia voltei a usar o meu shield w5100 e nao aparece mais nada como estava funcionando antes.
ja conferi o ip, mascara e se o ip esta na rede
e mesmo assim nao monstra nada no navegador
o codigo esta carregando normal
alguma ideia disso?
Grato
Comentário de Ricardo H.P. Barroso em 21 dezembro 2014 às 15:44

Tenho um LM35 como faço para substituir no circuito pelo  Thermistor NTC 10kΩ ?

Comentário de Fernando Dias da Cunha em 16 outubro 2014 às 17:58

Luiz Carlos da Silva Garcia,

Boa tarde.

Já consegui solucionar o problema. Instalei a biblioteca do termistor. Esse erro deu na compilação do programa.

Obrigado.

Comentário de Luiz Carlos da Silva Garcia Juni em 16 outubro 2014 às 17:43

Ola,  boa tarde, 

para efetuar a comunicação do shield com o pc,

basta usar um cabo ethernet ligado direto do 

pc ao shield?

grato e no aguardo

Comentário de Fernando Dias da Cunha em 16 outubro 2014 às 11:33

Bom dia.

Estou tentando montar, sou principiante. Deu erro na biblioteca do Thermistor, veja o erro abaixo.

TUTOEthernetShield:11: error: 'Thermistor' does not name a type
TUTOEthernetShield.ino: In function 'void loop()':
TUTOEthernetShield:57: error: 'temp' was not declared in this scope

Comentário de Murilo Lima Nogueira em 30 maio 2014 às 19:58

Olá, gostaria de sabem onde está aquela imagem do labdegaragem no código do arduino.

Comentário de Murilo Lima Nogueira em 21 maio 2014 às 11:50

Olá, gostaria de sabem onde está aquela imagem do labdegaragem no código do arduino.

Comentário de Josué Jr. em 7 maio 2014 às 1:09

Olá, boa noite.

Utilizei o código do projeto removendo apenas o que fazia referência a temperatura e a lâmpada. Assim, não consigo acessar o IP definido no código. Outra coisa, qual endereço MAC devo configurar no código? Alguém pode me ajudar?

Obrigado!

Comentário de Laboratório de Garagem em 26 março 2014 às 9:43

Olá Kleubson! Se você manter dessa forma, ele irá sempre para o IP: 192.168.1.2 de 5 em 5 segundos.

Abraços.

Comentário de kleubson da costa maia em 23 março 2014 às 17:57

Olá

Tenho uma dúvida no caso do refresh dessa pagina quando estiver acessando de fora, ou seja na rede de fora como ficaria neste trecho de código (client.print(" <meta http-equiv=\"refresh\" content=\"5; url=http://192.168.1.2/\"> )

Como faço para que a pagina seja atualizada tanto na rede interna como externa ? Fica dessa forma mesmo ?

Obrigado.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço