Um componente muito interessante que temos para o Arduíno é o módulo Arduino Ethernet Shield W5100. Com ele podemos conectar o nosso Arduino à rede local e também à internet, possibilitando acesso remoto, transferência de dados, verificação remota de status de sensores, criar projetos de IoT (Internet das Coisas) e muito mais.
Este assunto é um pouco complexo em alguns pontos por causa das configurações de rede e permite muitas possibilidades de programação, então estou separando esse assunto em dois posts, sendo:
- Post 1 – Este post, onde faremos a montagem e configuração IP com Arduino
- Post 2 – Neste link, onde mostro como enviar dados do Arduino para um browser, via rede local/ethernet
Vamos lá?
O Arduino Ethernet Shield W5100
O módulo que eu vou usar é o ethernet shield com chipset Wiznet W5100, como esse da foto. Este módulo é compatível tanto com Arduino Uno como com o Arduino Mega, e possui também um leitor de cartões microSD:
Esse módulo é ligado ao Arduino Uno simplesmente encaixando o módulo na parte superior:
Se você tem o Arduino Mega, o encaixe será feito desta maneira:
A princípio o encaixe fica um pouco estranho, com o shield longe da placa do Arduino, isso ocorre porque os pinos do shield são longos, mas se você reparar na foto abaixo, verá que isso evita que o shield toque no conector USB:
Com o shield ethernet devidamente encaixado na placa do Arduino, basta ligar o cabo de rede. Na parte superior, temos os leds de status, que mostram o funcionamento do módulo e o status de conexão à rede:
Placa em funcionamento:
Como você pode ver, a conexão da placa com o Arduino não tem muito segredo. Seguimos para a parte de programação e configuração do shield.
Configurando a rede
Vamos testar o funcionamento da placa utilizando um programa que simplesmente configura o endereço IP, utilizando os valores abaixo. Os valores apresentados são alguns dos mais comuns usados na comunicação IP. Talvez a sua rede use endereços diferentes. Se tiver dúvidas, verifique suas configurações de rede ou deixe um comentário para que eu possa ajudá-lo :
Carregue o seguinte programa no Arduino:
// Programa: Ethernet Shield Wiznet W5100 - Define endereço IP // Autor: Arduino e Cia #include <SPI.h> #include <Ethernet.h> // A linha abaixo permite que voce defina o endereço // fisico (MAC ADDRESS) da placa de rede byte mac[] = { 0xAB, 0xCD, 0x12, 0x34, 0xFF, 0xCA }; // Os valores abaixo definem o endereço IP, gateway e máscara. // Configure de acordo com a sua rede. IPAddress ip(192,168,0,100); //Define o endereço IP IPAddress gateway(192,168,0,1); //Define o gateway IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede void setup() { Ethernet.begin(mac, ip, gateway, subnet); //Inicializa o Ethernet Shield } void loop() {}
Note que os endereços IP são separados por vírgula, ao invés de ponto, como é habitual. Para verificar o funcionamento da placa, abra um prompt de comando (janela DOS, para os mais antigos) no seu computador, e digite o seguinte comando, seguido de ENTER:
ping 192.168.0.100
Se tudo estiver ok, uma tela parecida com essa será apresentada, indicando que o módulo ethernet foi corretamente configurado e consegue enviar e receber dados pela rede:
Isso encerra a parte básica de montagem e configuração IP do módulo ethernet. Confira no próximo artigo como enviar dados do módulo para o browser.