ESP32 - Senha do Servidor Web

Neste tutorial, vamos descobrir como criar um servidor web no ESP32 protegido por login com usuário e senha. Antes de acessar a página web no ESP32, o usuário será solicitado a digitar o usuário/senha

ESP32 web server username password

Sobre o ESP32 e o Servidor Web

Se você não está familiarizado com o ESP32 e o Servidor Web (incluindo pinagem, como funciona e programação), pode aprender sobre eles nos tutoriais a seguir:

Código ESP32 - Servidor Web com Usuário/Senha

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/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("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 para ESP32 no Arduino IDE.
  • Conecte a placa ESP32 ao seu PC por um cabo micro USB
  • Abra o Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
  • Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda do 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.
ESP32 Web Server library
  • Copie o código acima e abra no Arduino IDE
  • Altere as informações de WiFi (SSID e senha) no código para as suas
  • Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP32
  • Abra o Serial Monitor
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Connecting to WiFi... Connected to WiFi ESP32 Web Server's IP address: 192.168.0.3
Ln 11, Col 1
ESP32 Dev Module on COM15
2
  • 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 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 pede para você digitar usuário/senha.
ESP32 Web page password
  • Digite o usuário/senha que estão no código do ESP32, neste caso: admin como usuário e esp32 como senha
  • Se você digitar o usuário/senha corretamente, o conteúdo web do ESP32 será exibido:
ESP32 Web page login

※ Nota:

  • Você pode mudar o usuário/senha da web no código alterando os valores de duas variáveis: www_username e www_password
  • Você pode modificar este código para adicionar o código HTML/CSS/JavaScript da sua página web
  • No código, não há código HTML para o formulário de login (usuário/senha). Não estranhe! O formulário de login é criado pelo navegador.

Conhecimento Avançado

Esta seção apresenta um conhecimento avançado 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 ESP32 em um navegador, o navegador envia uma requisição HTTP ao ESP32 sem nenhuma credencial de usuário/senha.
  • Ao receber essa requisição, o código do ESP32 verifica se o usuário/senha foi incluído ou não. Se não foi, o ESP32 não responde à requisição com o conteúdo da página. Em vez disso, ele responde com uma mensagem HTTP contendo cabeçalhos que instruem o navegador a pedir ao usuário o usuário/senha. Note que essa resposta não contém código HTML para o formulário de login.
  • Ao receber essa resposta, o navegador interpreta os cabeçalhos HTTP e reconhece o pedido de usuário/senha do ESP32. Em seguida, o navegador gera dinamicamente um formulário de login que permite ao usuário digitar suas credenciais.
  • O usuário então digita o usuário/senha no formulário.
  • O navegador inclui o usuário/senha digitado em uma requisição HTTP e a envia ao ESP32.
  • O ESP32 verifica o usuário/senha incluído na requisição HTTP. Se estiver correto, ele retorna o conteúdo da página solicitada. Se estiver incorreto, ele repete o processo, pedindo ao usuário que digite as credenciais corretas novamente.
  • Depois que o usuário digita o usuário/senha corretos pela primeira vez, as requisições seguintes não precisam do usuário/senha. Isso acontece porque o navegador salva as credenciais automaticamente e as inclui nas requisições seguintes.

※ 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!