Arduino Nano ESP32 - Senha do Servidor Web
Neste guia, vamos aprender a criar um servidor web com Arduino Nano ESP32 protegido por usuário e senha para login. Antes de acessar qualquer página web no ESP32, os usuários serão solicitados a informar o nome de usuário e a senha.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Arduino Nano ESP32 e o Servidor Web
Se você não está familiarizado com o Arduino Nano ESP32 e o Servidor Web (incluindo pinagem, como funciona e programação), você pode aprender sobre eles nos tutoriais a seguir:
Código Arduino Nano ESP32 - Servidor Web com Usuário/Senha
/*
* Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com
* Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-web-server-password
*/
#include <DIYables_ESP32_WebServer.h>
// WiFi credentials
const char WIFI_SSID[] = "YOUR_WIFI_SSID";
const char WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD";
// Authentication credentials
const char* www_username = "admin";
const char* www_password = "esp32";
// Create web server instance
DIYables_ESP32_WebServer server;
// Main page handler
void handleRoot(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) {
server.sendResponse(client, "<html><body><h1>Login Successful!</h1><p>You are now logged in.</p></body></html>");
}
void setup() {
Serial.begin(9600);
delay(1000);
// Configure the main route
server.addRoute("/", handleRoot);
// Start server with WiFi connection (handles connection automatically)
server.begin(WIFI_SSID, WIFI_PASSWORD);
// Enable basic authentication
server.enableAuthentication(www_username, www_password, "Esp32");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
Serial.println("Arduino Nano ESP32 Server ready with authentication enabled");
Serial.print("Username: ");
Serial.println(www_username);
Serial.print("Password: ");
Serial.println(www_password);
}
void loop() {
// Handle all client requests (including authentication)
server.handleClient();
}
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
- Conecte a placa Arduino Nano ESP32 ao seu PC por meio de um cabo micro USB
- Abra a Arduino IDE no seu PC.
- Selecione a placa Arduino Nano ESP32 e a porta COM.
- Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda da Arduino IDE.
- Pesquise por “DIYables ESP32 WebServer” e encontre a biblioteca Web Server criada pela DIYables.
- Clique no botão Install para instalar a biblioteca Web Server.

- Copie o código acima e abra-o na Arduino IDE
- Altere as informações de WiFi (SSID e senha) no código para as suas
- Clique no botão Upload na Arduino IDE para fazer o upload do código para o ESP32
- Abra o Serial Monitor
- Veja o resultado no Serial Monitor.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Connecting to WiFi...
Connected to WiFi
Arduino Nano ESP32 Web Server's IP address: 192.168.0.3
- Você verá um endereço IP no Serial Monitor, por exemplo: 192.168.0.3
- Digite o endereço IP na barra de endereços de um navegador web no seu celular ou PC.
- Observe que você precisa trocar 192.168.0.3 pelo endereço IP que você obteve no Serial Monitor.
- Você verá uma página que solicita que você informe o usuário/senha.

- Digite o usuário/senha que estão no código do Arduino Nano ESP32, neste caso: admin como usuário, esp32 como senha
- Se você informar o usuário/senha corretamente, o conteúdo web do Arduino Nano ESP32 será exibido:

※ Nota:
- Você pode ajustar o usuário e a senha web diretamente no código, alterando os valores atribuídos a duas variáveis: www_username e www_password.
- Você tem a opção de personalizar este código incorporando seu próprio código HTML, CSS e JavaScript para a sua página web.
- Vale observar que não há código HTML no próprio código para o formulário de login (usuário/senha). Não se surpreenda! Em vez disso, o formulário de login é gerado dinamicamente pelo navegador web.
Conhecimento Avançado
Esta seção fornece informações avançadas sobre como o sistema de usuário/senha funciona sem HTML para o formulário de login:
- Inicialmente, quando você digita o endereço IP do Arduino Nano ESP32 em um navegador web, o navegador envia uma requisição HTTP para o Arduino Nano ESP32 sem nenhuma credencial de usuário/senha.
- Ao receber essa requisição, o código do Arduino Nano ESP32 verifica se alguma credencial de usuário/senha foi fornecida. Se não, o Arduino Nano ESP32 não responde com o conteúdo da página solicitada. Em vez disso, ele responde com uma mensagem HTTP contendo cabeçalhos que instruem o navegador a solicitar ao usuário o usuário/senha. É importante notar que essa resposta não inclui código HTML para o formulário de login.
- Ao receber essa resposta, o navegador web interpreta os cabeçalhos HTTP, entendendo a solicitação do ESP32 por usuário/senha. Consequentemente, o navegador gera dinamicamente um formulário de login, permitindo que o usuário informe suas credenciais.
- O usuário então informa seu usuário/senha no formulário.
- O navegador web inclui o usuário/senha informados em uma requisição HTTP e a envia para o ESP32.
- O Arduino Nano ESP32 verifica o usuário/senha incluídos na requisição HTTP. Se estiverem corretos, ele retorna o conteúdo da página solicitada. Se estiverem incorretos, ele repete o processo, solicitando ao usuário que informe as credenciais corretas novamente.
- Depois que o usuário informa o usuário/senha corretos pela primeira vez, as requisições seguintes não exigem que ele informe as credenciais novamente. Isso acontece porque o navegador web salva automaticamente as credenciais, incluindo-as nas requisições seguintes.