\ Tutorial: Ligando o módulo Ethernet W5100 ao Arduino

Tutorial: Ligando o módulo Ethernet W5100 ao Arduino

Esse é o primeiro artigo que trata de assuntos no segmento IoT (Internet das Coisa). Chamamos de IoT projetos em que dispositivos (sensores) são conectados à Internet; essas coisas têm a capacidade de se comunicar, detectar e responder. Todos os dispositivos IOT (internet das coisas) requerem um mecanismo para enviar ou receber dados. Existem inúmeras opções disponíveis para conectar dispositivos à Internet, incluindo, opções com ou sem fio. Neste tutorial usaremos o módulo Ethernet W5100 (com fio) e aprenderemos a conectá-lo à Internet.

Figura 1: módulo Ethernet conectado ao Arduino Uno R3.

Para começarmos, faremos os seguintes procedimentos:

1) Certifique que seu Arduino não esteja conectado a uma fonte de alimentação (computador via à USB ou bateria);
2) Encaixe o módulo Ethernet na parte superior do Arduino (cuidado pois todos os pinos precisam estar alinhados).
3) Conecte o cabo Ethernet (Rj45) entre o Arduino e a porta LAN (rede local) o seu roteador (o roteador precisa está conectado) à Internet (Figura 1).

No scketch usaremos uma biblioteca - ela já vem pré-instalada na IDE do Arduino. Trata-se da biblioteca Ethernet. No quadro a seguir temos as principais funcionalidades dela. As funções de classe Ethernet, Server e Client serão melhores exploradas em projetos futuros.

FUNÇÃO

DESCRIÇÃO

Ethenet.begin(mac)

Ethenet.begin(mac,ip)

Ethenet.begin(mac,ip,gateway)

Ethenet.begin(mac, ip, gateway, subnet)

Inicializa a biblioteca, fornecendo o endereço IP do módulo e configura automaticamente seu IP usando DHCP; opcionalmente, fornecemos o gateway (endereço do roteador) e a máscara da sub-rede (padrão 255.255.255.0).

Server(porta)

Cria um servidor para ouvir em um porta específica.

Server.begin()

Inicia o servidor escutando mensagens.

Server.available()

Se o cliente possuir dados prontos retorna um cliente.

Server.print()

Imprime dados para todos os clientes com uma sequência de dígitos ASCII.

Server.write()

Envia dados para os clientes conectados.

Client(ip, port)

Cria um cliente que pode ser conectar a um IP e porta especificada.

Client.connected()

Retorna se o cliente estiver conectado ou não.

Client.connect()

Inicia a conexão.

Client.write()

Grava dados no servidor.

Client.available()

Retorna o número de bytes disponíveis para serem lidos.

Client.stop()

Desconecta o servidor.



Código Utilizado

#include <Ethernet.h>
byte mac[]={0xDE0xAD0xBe,0xEF0xFE0xED};
IPAddress staticIP(10,0,0,20);

void setup()
{
  Serial.begin(9600);
  ConectaInternet();
}
void ConectaInternet()
{
  if (Ethernet.begin(mac) == 0)
  {
    Serial.println("[ERROR] Falha para configuar ethernet usando DHCP");
    Ethernet.begin(mac, staticIP);
  }
    Serial.println ("[INFO]: Conexão bem sucedida");
  Serial.println ("");
  exibeInformacoes();
  Serial.println("----------------------------------------------");
  Serial.println("");
}
void exibeInformacoes()
{
  Serial.print("Conectado a rede no IP: ");
  Serial.println(Ethernet.localIP());
  Serial.print("Máscara de sub-rede: ");
  Serial.println(Ethernet.subnetMask());
  Serial.print("Gateway: ");
  Serial.println(Ethernet.gatewayIP());
  Serial.print("DNS: ");
  Serial.println(Ethernet.dnsServerIP());
}
void loop(){
   //faz nada
}


Descrição do código

Começamos incluindo a biblioteca Ethernet. Nas variáveis, definimos o endereço MAC na variável mac[]. Para módulos Ethernets mais recentes, esse endereço pode estar impresso em um adesivo. Também definimos um IP estático do Arduino para casos em que não for possível obter um endereço IP dinâmico do DHCP (Protocolo de Configuração Dinâmica de Hosts). É importante que o IP escolhido esteja livre (que não seja utilizado por outro dispositivo.)

A função ConectaInternet(), quando acionada, primeiro tenta se conectar à Internet com o DHCP; se não conseguir atribuir um IP dinâmico ao Arduino, tenta se conectar utilizando o IP estático que foi escolhido por você. Uma vez conectado com sucesso, ele aciona a função exibeInformacoes() que mostrará uma mensagem de log no Monitor Serial com as informações da conexão.   


Testando o código

Chegou a hora de testar o código - ligamos o USB no Arduino e ao computador  e carregamos o sketch. Após carregá-lo no Arduino, veremos a mensagem de log no Monitor Serial conforme a figura abaixo.

Figura 2: Tela do Monitor Serial informando o log de conexão com a Internet.

Agora que aprendemos a conectar o módulo Ethernet W5100, poderemos desenvolver em breve alguns projetos com ele!

Post Um Comentário

Postagem Anterior Próxima Postagem