/* ESP32 - Wi-Fi */
#include "WiFi.h" // Necessário para a Comunicação por Wi-Fi.
// Cores dos LEDs:
int PinLedRED = 15; // RED
int PinLedYELLOW = 4; // YELLOW
int PinLedGREEN = 5; // GREEN
// Nome da rede Wi-Fi:
const char *WiFi_Name = "Wokwi-GUEST";
// Senha da rede Wi-Fi:
const char *WiFi_Password = "";
// Porta da conexão Wi-Fi (porta padrão para HTTP):
const uint16_t serverPort = 80; // Armazenando a porta em uma variável.
WiFiServer server(serverPort);
/* SETTINGS */
void setup() {
// Inicializa a comunicação serial com o baud rate 115200.
Serial.begin(115200);
Serial.println("ESP32 - Wi-Fi");
// Configuração das saídas dos LEDs:
pinMode(PinLedRED, OUTPUT);
pinMode(PinLedYELLOW, OUTPUT);
pinMode(PinLedGREEN, OUTPUT);
// Mensagem indicando início do Wi-Fi:
Serial.println("Iniciando Wi-Fi...");
// Iniciar conexão com uma rede Wi-Fi específica:
WiFi.begin(WiFi_Name, WiFi_Password);
// Aguarda a conexão do dispositivo com a rede Wi-Fi:
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(PinLedYELLOW, HIGH); // Liga o LED amarelo para indicar a tentativa de conexão.
delay(500); // Aguarda 0,5 segundo.
digitalWrite(PinLedYELLOW, LOW); // Desliga o LED amarelo.
delay(500); // Aguarda mais 0,5 segundo.
Serial.print("."); // Indicador de progresso no monitor serial.
}
// Quando conectado com sucesso à rede Wi-Fi:
Serial.println("\nConectado com sucesso!");
digitalWrite(PinLedGREEN, HIGH); // Liga o LED verde para indicar a conexão bem-sucedida.
// Mostra o endereço IP e a porta do ESP32
Serial.print("Endereço IP: ");
Serial.println(WiFi.localIP());
Serial.print("Porta: ");
Serial.println(serverPort); // Mostra a porta usando a variável armazenada.
// Inicia o servidor na porta 80:
server.begin();
}
/* MAIN */
void loop() {
// Verifica se há algum cliente conectado ao servidor:
WiFiClient client = server.available();
if (client) {
// Mensagem de cliente conectado.
Serial.println("Cliente conectado.");
// Envia uma resposta HTTP para o cliente.
client.println("HTTP/1.1 200 OK"); // Cabeçalho HTTP de resposta bem-sucedida.
client.println("Content-Type: text/html"); // Tipo de conteúdo (HTML).
client.println(); // Linha em branco para indicar o fim dos cabeçalhos HTTP.
// Corpo da resposta HTML:
client.println("<!DOCTYPE HTML><html><body><h1>Conectado ao ESP32!</h1></body></html>");
// Fecha a conexão com o cliente.
client.stop();
Serial.println("Cliente desconectado.");
}
// Pequeno atraso para evitar sobrecarga.
delay(100);
}