#include // Configurações do IP estático IPAddress local_IP(192, 168, 105, 12); // Endereço IP fixo IPAddress gateway(192, 168, 105, 1); // Gateway padrão IPAddress subnet(255, 255, 255, 0); // Máscara de sub-rede IPAddress primaryDNS(8, 8, 8, 8); // Servidor DNS primário (opcional) IPAddress secondaryDNS(8, 8, 4, 4); // Servidor DNS secundário (opcional) // Configuração do servidor Ethernet EthernetServer server(80); // Porta TCP 80 (HTTP ou customizada) void setup() { Serial.begin(115200); Serial.println("Inicializando..."); // MAC Address para a placa Ethernet uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; // Inicializa a conexão Ethernet com IP estático Serial.println("Configurando IP estático..."); Ethernet.init(5); Ethernet.begin(mac, local_IP, primaryDNS, gateway, subnet); // Verifica se a inicialização foi bem-sucedida if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println("Nenhuma placa Ethernet detectada. Verifique a conexão."); while (true) { delay(1); // Fica preso aqui } } if (Ethernet.linkStatus() == LinkOFF) { Serial.println("Cabo Ethernet desconectado ou problema no link físico."); while (true) { delay(1); // Fica preso aqui } } // Aguardar inicialização e exibir informações da rede delay(1000); Serial.println("Configuração de rede concluída:"); Serial.print("IP Address: "); Serial.println(Ethernet.localIP()); Serial.print("Subnet Mask: "); Serial.println(Ethernet.subnetMask()); Serial.print("Gateway: "); Serial.println(Ethernet.gatewayIP()); Serial.print("DNS Server: "); Serial.println(Ethernet.dnsServerIP()); // Inicia o servidor Ethernet server.begin(); Serial.println("Servidor iniciado. Aguardando conexões..."); } void loop() { // Verifica se há um cliente conectado EthernetClient client = server.available(); if (client) { Serial.println("Cliente conectado!"); // Enquanto o cliente estiver conectado while (client.connected()) { if (client.available()) { // Lê os dados enviados pelo cliente String request = client.readStringUntil('\r'); Serial.print("Recebido: "); Serial.println(request); // Envia uma resposta ao cliente client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/plain"); client.println("Connection: close"); client.println(); client.println("ESP32 Servidor Ethernet"); client.println("Mensagem recebida com sucesso!"); break; // Finaliza o loop para desconectar } } // Finaliza a conexão com o cliente delay(1); client.stop(); Serial.println("Cliente desconectado."); } }