Arduino - Ethernet

Este tutorial mostra como usar o Arduino e o módulo Ethernet para se conectar à Internet ou à sua rede LAN. Veja o que vamos abordar:

Arduino Ethernet

Sobre o módulo Ethernet W5500

O módulo Ethernet W5500 tem duas formas de conexão:

  • Interface Ethernet RJ45: Use um cabo Ethernet para conectar a um roteador ou switch.
  • Interface SPI: Use-a para conectar a uma placa Arduino. Ela tem 10 pinos. Esses pinos precisam ser conectados ao Arduino conforme a tabela abaixo:
Pinos do Módulo Ethernet Pinos do Arduino
Pino NC NÃO conectado
Pino INT NÃO conectado
Pino RST Pino Reset
Pino GND Pino GND
Pino 5V Pino 5V
Pino 3.3V NÃO conectado
Pino MISO 12 (MISO)
Pino MOSI 11 (MOSI)
Pino SCS 10 (SS)
Pino SCLK 13 (SCK)
Pinagem do módulo Ethernet
image source: diyables.io

Diagrama de Ligação entre o Arduino e o módulo Ethernet W5500

Diagrama de Ligação do Arduino com módulo Ethernet

This image is created using Fritzing. Click to enlarge image

Abaixo está a conexão real entre o Arduino e o módulo Ethernet W5500

Conexão do Arduino com módulo Ethernet

Código Arduino para Módulo Ethernet - Fazendo requisição HTTP via Ethernet

Este código atua como um cliente web. Ele envia requisições HTTP para o servidor web localizado em http://example.com/.

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-ethernet-module */ #include <SPI.h> #include <Ethernet.h> // replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EthernetClient client; int HTTP_PORT = 80; String HTTP_METHOD = "GET"; // or POST char HOST_NAME[] = "example.com"; String PATH_NAME = "/"; void setup() { Serial.begin(9600); delay(1000); Serial.println("Arduino - Ethernet Tutorial"); // initialize the Ethernet shield using DHCP: if (Ethernet.begin(mac) == 0) { Serial.println("Failed to obtaining an IP address"); // check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) Serial.println("Ethernet shield was not found"); // check for Ethernet cable if (Ethernet.linkStatus() == LinkOFF) Serial.println("Ethernet cable is not connected."); while (true) ; } // connect to web server on port 80: if (client.connect(HOST_NAME, HTTP_PORT)) { // if connected: Serial.println("Connected to server"); // make a HTTP request: // send HTTP header client.println(HTTP_METHOD + " " + PATH_NAME + " HTTP/1.1"); client.println("Host: " + String(HOST_NAME)); client.println("Connection: close"); client.println(); // end HTTP header while (client.connected()) { if (client.available()) { // read an incoming byte from the server and print it to serial monitor: char c = client.read(); Serial.print(c); } } // the server's disconnected, stop the client: client.stop(); Serial.println(); Serial.println("disconnected"); } else { // if not connected: Serial.println("connection failed"); } } void loop() { }

Passos Rápidos

Siga estes passos um por um:

  • Conecte o módulo Ethernet ao seu Arduino como mostrado no diagrama fornecido.
  • Use um cabo Ethernet para conectar o módulo Ethernet ao seu roteador ou switch.
  • Use um cabo USB para conectar a placa Arduino ao seu computador.
  • Abra a Arduino IDE no seu computador.
  • Escolha a placa Arduino e a porta COM corretas.
  • Clique no ícone Libraries no lado esquerdo da Arduino IDE.
  • Na caixa de pesquisa, digite “Ethernet” e encontre a biblioteca Ethernet da Various.
  • Clique no botão Install para adicionar a biblioteca Ethernet.
Biblioteca Ethernet do Arduino
  • Abra o Serial Monitor na Arduino IDE.
  • Copie o código fornecido e cole-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para transferir o código para o Arduino.
  • Confira o Serial Monitor, onde os resultados aparecerão como abaixo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino - Ethernet Tutorial Connected to server HTTP/1.1 200 OK Accept-Ranges: bytes Age: 208425 Cache-Control: max-age=604800 Content-Type: text/html; charset=UTF-8 Date: Fri, 12 Jul 2024 07:08:42 GMT Etag: "3147526947" Expires: Fri, 19 Jul 2024 07:08:42 GMT Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT Server: ECAcc (lac/55B8) Vary: Accept-Encoding X-Cache: HIT Content-Length: 1256 Connection: close <!doctype html> <html> <head> <title>Example Domain</title> <meta charset="utf-8" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> </head> <body> <div> <h1>Example Domain</h1> <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p> <p><a href="https://www.iana.org/domains/example">More information...</a></p> </div> </body> </html> disconnected
Ln 11, Col 1
Arduino Uno on COM15
2

※ Nota:

Se outro dispositivo na mesma rede compartilhar o seu endereço MAC, podem ocorrer problemas.

Código Arduino para Módulo Ethernet - Servidor Web

O código abaixo cria um servidor web no Arduino. Este servidor web envia uma página web simples para os navegadores web.

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-ethernet-module */ #include <SPI.h> #include <Ethernet.h> // replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EthernetServer server(80); void setup() { Serial.begin(9600); delay(1000); Serial.println("Arduino - Ethernet Tutorial"); // initialize the Ethernet shield using DHCP: if (Ethernet.begin(mac) == 0) { Serial.println("Failed to obtaining an IP address"); // check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) Serial.println("Ethernet shield was not found"); // check for Ethernet cable if (Ethernet.linkStatus() == LinkOFF) Serial.println("Ethernet cable is not connected."); while (true) ; } server.begin(); Serial.print("Arduino - Web Server IP Address: "); Serial.println(Ethernet.localIP()); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); // an HTTP request ends with a blank line bool currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the HTTP request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard HTTP response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<body>"); client.println("<h1>Arduino - Web Server with Ethernet</h1>"); client.println("</body>"); client.println("</html>"); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println("client disconnected"); } }

Passos Rápidos

  • Copie o código acima e cole-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para carregar o código no Arduino.
  • Confira o resultado no Serial Monitor, ele será exibido assim:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino - Ethernet Tutorial Arduino - Web Server IP Address: 192.168.0.2
Ln 11, Col 1
Arduino Uno on COM15
2
  • Copie o endereço IP mencionado acima e cole-o na barra de endereços do seu navegador web. Você verá uma página web simples vinda do Arduino.
Servidor Web Ethernet do Arduino

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!