Arduino - Ethernet Shield
Usar o Arduino Ethernet Shield é uma das formas mais fáceis de conectar o Arduino à Internet. Você pode ver outras opções para conectar o Arduino à Internet via Ethernet no tutorial Arduino - Ethernet
Neste tutorial, vamos aprender:
- Conhecimentos básicos de redes para iniciantes
- Como usar o Arduino Ethernet Shield
- Código Arduino base para o Arduino Ethernet Shield ao usar endereço IP dinâmico (via DHCP)
- Código Arduino base para o Arduino Ethernet Shield ao usar endereço IP estático

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Conhecimentos Básicos de Redes para Iniciantes
Esta parte oferece conhecimentos básicos para iniciantes que não sabem nada sobre redes.
Quando um dispositivo se conecta à Internet (via Ethernet ou WiFi), ele PRECISA se conectar a um roteador ou a um ponto de acesso. Roteador e ponto de acesso são dispositivos que atuam como gateway para a Internet. Todos os dados entre um dispositivo e a Internet passam pelo roteador ou ponto de acesso.
Quando um dispositivo se conecta à Internet, ele PRECISA:
- Ter um endereço MAC
- Ter um endereço IP
- Conhecer a máscara de sub-rede da rede
- Conhecer o endereço IP do gateway (endereço IP do roteador ou ponto de acesso)
- Conhecer o endereço IP do servidor DNS (no caso de se conectar a um nome de domínio)
O dispositivo não funciona se:
- Houver um ou mais outros dispositivos na mesma rede usando o mesmo endereço MAC do dispositivo (chamado de conflito de endereço MAC)
- Houver um ou mais outros dispositivos na mesma rede usando o mesmo endereço IP do dispositivo (chamado de conflito de endereço IP)
Este tutorial não sobrecarrega você com conhecimentos de redes. Por isso, o tutorial não explica esses conceitos. Isso está fora do escopo deste tutorial. Em vez disso, o tutorial mostra como usá-los.
O endereço MAC normalmente vem embutido nos dispositivos. Não precisamos nos preocupar com ele. No entanto, o Arduino Ethernet Shield não tem um endereço MAC embutido. O endereço MAC vem impresso em um adesivo colado no shield. Precisamos pegá-lo e definir o endereço MAC do Arduino Shield no código Arduino.
Existem dois métodos para atribuir o endereço IP, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS a um dispositivo (incluindo o Arduino):
- Usar o endereço IP estático:
- É preciso gerenciar o endereço IP, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS
- É preciso definir manualmente o endereço IP, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS (no Arduino Ethernet Shield, essas informações são definidas pelo código Arduino)
- NÃO vai funcionar se:
- Você definir um endereço IP que já está sendo usado por outros dispositivos na mesma rede LAN → conflito de IP
- Você definir a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS errados
- O dispositivo obtém automaticamente o endereço IP, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS do roteador ou ponto de acesso usando DHCP. Não precisamos gerenciar o endereço IP, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS. O roteador/ponto de acesso faz esse trabalho por nós.
Quando você conecta seu smartphone à rede WiFi da sua casa, o segundo método é usado.
Ao usar o Arduino, o primeiro método é difícil para iniciantes. O segundo método é fácil e recomendado para iniciantes que NÃO conhecem redes.
Como usar o Arduino Ethernet Shield
O Arduino se comunica com o Ethernet Shield através da interface SPI. A seguir mostramos como usar o Arduino Ethernet Shield.
- Encaixe o Ethernet Shield no Arduino Uno ou Mega
- Conecte o PC ao Arduino Uno/Mega com um cabo USB
- Conecte o Ethernet Shield ao roteador/ponto de acesso com um cabo Ethernet
- Abra a Arduino IDE e escreva o código
- Faça o upload do código para o Arduino Uno/Mega
É bem simples.
Código Arduino base para o Arduino Ethernet Shield ao usar endereço IP dinâmico
Pré-requisito
- Precisamos saber o endereço MAC do Ethernet Shield (obtido de um adesivo fornecido pelo fabricante)
Como programar passo a passo
- Inclua a biblioteca
- Declare o endereço MAC
- Declare outros objetos de acordo com a sua aplicação.
- Inicie o Ethernet Shield
- (Opcional) Imprima o endereço IP do Arduino, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS
Observe que o Arduino não consegue obter um endereço IP nos seguintes casos:
- O roteador ou Ponto de Acesso não suporta DHCP
- O cabo Ethernet não está bem conectado ou está danificado
Para detectar esses problemas, podemos modificar Ethernet.begin(mac); para:
※ Nota:
Se você NÃO alterar o endereço MAC, ainda pode funcionar. No entanto, pode NÃO funcionar se ele entrar em conflito com o endereço MAC de outro dispositivo na mesma rede LAN. Caso você perca o adesivo com o endereço MAC, basta usar o endereço MAC acima para testes.
O código base completo ao usar endereço IP dinâmico
Faça o upload do código acima para o Arduino. Se tudo der certo, o Serial Monitor mostrará algo como abaixo:
Se o Serial Monitor NÃO mostrar algo como acima, verifique o seu cabo Ethernet. Se ainda assim NÃO funcionar, vá para a próxima parte e tente usar o endereço IP estático.
Código Arduino base para o Arduino Ethernet Shield ao usar endereço IP estático
Pré-requisito
- Você precisa obter o endereço MAC (obtido do adesivo)
- Você precisa obter um endereço IP não utilizado (veja como obter um endereço IP não utilizado )
- Você precisa obter a máscara de sub-rede da sua rede (veja como obter a máscara de sub-rede )
- Você precisa obter o endereço IP do gateway (veja como obter o endereço IP do gateway )
- Você precisa obter o endereço IP do servidor DNS (veja como obter o endereço IP do servidor DNS )
Como programar passo a passo
- Inclua a biblioteca
- Declare o endereço MAC
- Declare um endereço IP não utilizado, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS
- Declare outros objetos de acordo com a sua aplicação.
- Inicie o Ethernet Shield
- Opcional: verifique o status do link de rede
※ Nota:
Se você NÃO alterar o endereço MAC, ainda pode funcionar. No entanto, pode NÃO funcionar se ele entrar em conflito com o endereço MAC de outro dispositivo na mesma rede LAN. Caso você perca o adesivo com o endereço MAC, basta usar o endereço MAC acima para testes.
O código base completo ao usar endereço IP estático
Faça o upload do código acima para o Arduino. Se tudo der certo, o Serial Monitor mostrará algo como abaixo:
Se o Serial Monitor NÃO mostrar algo como acima:
- Verifique o seu cabo Ethernet
- Certifique-se de que o endereço IP pertence à sua rede
- Certifique-se de que o endereço IP NÃO entra em conflito com outros dispositivos na mesma rede
- Certifique-se de que a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS estão definidos corretamente
Conhecimentos Adicionais de Redes para Iniciantes
No caso de usar o IP estático, você precisa obter um endereço IP não utilizado, a máscara de sub-rede, o endereço IP do gateway e o endereço IP do servidor DNS. A seguir mostramos como obtê-los.
Se o Arduino e o seu PC estiverem conectados à mesma rede
- Abra o Command Prompt no seu PC
- Digite o seguinte comando no Command Prompt:
- Pela saída acima, você pode obter a máscara de sub-rede e o endereço IP do gateway
- Você pode ver o endereço IP do seu PC na saída acima. Vamos tentar encontrar um endereço IP não utilizado com base no endereço IP do PC
- Aumente ou diminua um por um, começando pelo endereço IP do PC.
- Envie o comando ping para esse endereço IP no Command Prompt. Repita esses dois passos até que o IP fique inacessível. Se o endereço estiver inacessível, ele é um endereço IP não utilizado e podemos usá-lo para o Arduino. Por exemplo:
- Para o endereço IP do servidor DNS, podemos simplesmente usar 8.8.8.8
※ Nota:
Em alguns casos, mesmo que o endereço IP esteja inacessível, ele pode estar sendo usado por outro dispositivo. No entanto, isso normalmente não acontece na sua rede doméstica.
Agora você pode usar este shield para conectar o Arduino à Internet. Veja outros exemplos na parte Tutoriais Relacionados.
WARNING
Observe que este tutorial está incompleto. Vamos avisar na nossa página do Facebook quando o tutorial estiver completo. Curta a página para ficar atualizado.