Arduino Ethernet – 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 “byteCOD = 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-…

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s