Hoje vamos aprender a utilizar o Ethernet Shield W5100 com o Arduino Uno, o que irá possibilitar que você desenvolva vários projetos de automação residencial, automação industrial e Iot (internet das coisas) em geral, com integração total com a Rede Mundial de Computadores, de modo rápido e simplificado.
Nesse tutorial iremos fazer o Arduino se transformar em um servidor web, ou seja, ele vai se conectar à Internet e, através de um endereço de IP, será possível acessar informações de sensores, dados eletrônicos, controlar componentes e módulos à distância de qualquer lugar do mundo através de um celular, computador ou tablet, por exemplo, ou até mesmo através de outro ethernet shield, um esp32 ou um esp8266.
Vale lembra que serão utilizados poucos materiais nesse teste, uma vez que o Ethernet Shield W5100 é um módulo completo que já apresenta todos os componentes necessários para perfeito funcionamento, bastando fazer a conexão sobre os pinos do Arduino.
Ele pode ser facilmente integrado com outros projetos de automação e iot, visando deixar seu projeto totalmente online e muito mais prático em relação ao conforto de utilização à distância , além da acessibilidade de ser acessado de vários cantos de sua casa, por exemplo.
Materiais Necessários para o Teste
Por se tratar de um projeto simples será preciso utilizar apenas um Arduino Uno e Shield W5100, além de um cabo com conector RJ45.
Esquemático do Ethernet Shield W5100 com Arduino
Como já foi mencionado, esse projeto é tão simples que nem irá ter esquema de ligação. O hardware se constitui em encaixar o shield ethernet W5100 no Arduino Uno, ligar um cabo no Ethernet no Shield e pronto, só isso, não precisa de mais nada, eu não disse que era simples?
Explicando o código
O código desse projeto utiliza 2 bibliotecas padrões da ide do Arduino, uma delas faz a conexão com o módulo ethernet no caso é a SPI.h e a outra biblioteca serve para o módulo ethernet fazer conexão com a internet que é a Ethernet.h.
O nosso código irá basicamente aguardar alguém se conectar ao nosso shield por meio do endereço IP, que poderá ser alterado no código, mas por padrão esta como 198.168.0.30. Assim que a pessoa se conectar através do navegador ao nosso web server pelo endereço ip acima, o arduino irá fazer uma verificação e irá mandar para o navegador a página em HTML (linguagem de marcação utilizada para construção de páginas web), após isso irá encerrar a conexão até que seja acessado o ip do web server novamente.
fique abaixo com o código completo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
// inclusão das bibliotecas #include <SPI.h> #include <Ethernet.h> //Definições de IP, máscara de rede e gateway byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,0,30); //Define o endereco IP que pode ser alterado IPAddress gateway(192,168,1,1); //Define o gateway IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede //Inicializa o servidor web na porta 80 EthernetServer server(80); void setup() { //Inicializa a interface de rede Ethernet.begin(mac, ip, gateway, subnet); server.begin(); //Inicia o monitor serial Serial.begin(9600); } void loop() { //Aguarda conexão do browser EthernetClient client = server.available(); if (client){ Serial.println("novo dispositivo conectado"); boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); Serial.println(""); // se a solicitação http terminou então envia a resposta if (c == 'n' && currentLineIsBlank) { // envia o cabeçalho padrão http para o navegador client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head>"); client.println("<meta charset=\"utf-8\">"); client.println("<title>shield ethernet</title>"); client.println("</head>"); client.println("<body>"); //Configura o texto e o imprime no browser client.print("<font color=#FF0000>"); client.print("Teste de WebServer com ethernet shield e arduino Usinainfo."); client.print("</font>"); client.println("<br />"); client.println("</body>"); client.println("</html>"); break; } if (c == 'n') { // começando nova linha currentLineIsBlank = true; } else if (c != 'r') { // novo caractere na linha atual currentLineIsBlank = false; } } } // tempo para o navegador receber as informações delay(1); // fechamento da conexão client.stop(); } } |
Após carregarmos o código no Arduino e conectarmos o cabo de ethernet RJ45 podemos acessar o endereço IP pelo nosso navegador web, devemos obter o seguinte resultado:
Conclusão
Mesmo se tratando de um projeto simplificado, é necessário em algum momento que o iniciante em Arduino tenha noções de como essa conexão com a Internet é feita, e hoje tivemos uma base de como usamos o módulo ethernet para criarmos um web server e mostrarmos as informações que desejarmos.
Lembramos que foi apenas um teste, as funcionalidades que podem ser integradas são infinitas, desde projetos simples aos mais complexos, permitindo que sensores eletrônicos enviem e recebam dados remotos que qualquer lugar por meio de Rede Mundial de Computadores, o que irá oferecer uma variedade muito alta de possibilidades em projetos de automação e iot.
Conheça toda linha Arduino e Acessórios na UsinaInfo.