ESP32 - Mot de passe du serveur Web

Dans ce tutoriel, nous découvrirons comment créer un serveur web ESP32 protégé par un nom d'utilisateur et un mot de passe pour la connexion. Avant d'accéder à la page web sur l'ESP32, l'utilisateur devra saisir son nom d'utilisateur et son mot de passe.

Nom d'utilisateur et mot de passe du serveur web ESP32

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de l'ESP32 et du serveur Web

Si vous n'êtes pas familiarisé avec l'ESP32 et le serveur Web (y compris le brochage, son fonctionnement et la programmation), vous pouvez en apprendre davantage à leur sujet à travers les tutoriels suivants :

Code ESP32 - Nom d'utilisateur/mot de passe du serveur Web

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-web-server-password */ #include <WiFi.h> #include <ESPAsyncWebServer.h> const char* ssid = "YOUR_WIFI_SSID"; // WiFi SSID, change it to your network const char* password = "YOUR_WIFI_PASSWORD"; // WiFi password, change it to your network AsyncWebServer server(80); const char* www_username = "admin"; // web page username const char* www_password = "esp32"; // web page password void handleRoot(AsyncWebServerRequest* request) { if (!request->authenticate(www_username, www_password)) { return request->requestAuthentication(); } // The below is simplest form of web page, you can modify this request->send(200, "text/html", "<html><body><h1>Login Successful!</h1><p>You are now logged in.</p></body></html>"); } void handleNotFound(AsyncWebServerRequest* request) { request->send(404, "text/plain", "Not found"); } void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); server.on("/", HTTP_GET, handleRoot); server.onNotFound(handleNotFound); server.begin(); // Print the ESP32's IP address Serial.print("ESP32 Web Server's IP address: "); Serial.println(WiFi.localIP()); } void loop() { }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'ESP32, consultez comment configurer l'environnement pour l'ESP32 sur Arduino IDE.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, Module de développement ESP32) et le port COM.
  • Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE.
  • Recherchez "ESPAsyncWebServer", puis trouvez l'ESPAsyncWebServer créé par lacamera.
  • Cliquez sur le bouton Install pour installer la bibliothèque ESPAsyncWebServer.
Bibliothèque ESPAsyncWebServer pour ESP32
  • Vous serez invité à installer la dépendance. Cliquez sur le bouton Install All.
Bibliothèque de dépendances ESPAsyncWebServer pour ESP32
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Modifiez les informations wifi (SSID et mot de passe) dans le code par les vôtres
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour charger le code sur l'ESP32
  • Ouvrez le moniteur série
  • Vérifiez le résultat sur le moniteur série.
COM6
Send
Connecting to WiFi... Connected to WiFi ESP32 Web Server's IP address: 192.168.0.3
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Vous verrez une adresse IP sur le moniteur série, par exemple : 192.168.0.3
  • Tapez l'adresse IP dans la barre d'adresse d'un navigateur web sur votre smartphone ou PC.
  • Veuillez noter que vous devez changer le 192.168.0.3 par l'adresse IP que vous avez obtenue sur le moniteur série.
  • Vous verrez une page qui vous invite à entrer un nom d'utilisateur/mot de passe.
Mot de passe de la page Web ESP32
  • Tapez le nom d'utilisateur/mot de passe qui sont dans le code ESP32, dans ce cas : admin comme nom d'utilisateur, esp32 comme mot de passe
  • Si vous saisissez correctement le nom d'utilisateur/le mot de passe, le contenu web de l'ESP32 s'affichera :
Connexion à la page Web ESP32

※ NOTE THAT:

  • Vous pouvez changer le nom d'utilisateur et le mot de passe du site web dans le code en modifiant les valeurs de deux variables : www_username et www_password
  • Vous pouvez modifier ce code pour ajouter le code HTML/CSS/JavaScript de votre page web
  • Dans le code, il n'y a pas de code HTML pour le formulaire de connexion (nom d'utilisateur/mot de passe). Ne soyez pas surpris ! Le formulaire de connexion est créé par le navigateur Web.

Connaissances Avancées

Cette section présente des connaissances avancées sur le fonctionnement du système de nom d'utilisateur/mot de passe sans HTML pour le formulaire de connexion.

  • Au départ, lorsque vous saisissez l'adresse IP de l'ESP32 dans un navigateur web, le navigateur envoie une requête HTTP à l'ESP32 sans identifiants de nom d'utilisateur/mot de passe.
  • Lors de la réception de cette requête, le code ESP32 vérifie si le nom d'utilisateur/le mot de passe est inclus ou non. S'ils sont absents, l'ESP32 ne répond pas à la requête pour le contenu de la page. Au lieu de cela, il répond avec un message HTTP contenant des en-têtes qui instruisent le navigateur de demander à l'utilisateur son nom d'utilisateur et son mot de passe. Notamment, cette réponse ne contient pas de code HTML pour le formulaire de connexion.
  • Lors de la réception de cette réponse, le navigateur web analyse les en-têtes HTTP, reconnaissant la demande de nom d'utilisateur/mot de passe de l'ESP32. Par la suite, le navigateur génère dynamiquement un formulaire de connexion permettant à l'utilisateur de saisir ses identifiants.
  • L'utilisateur saisit alors son nom d'utilisateur/mot de passe dans le formulaire.
  • Le navigateur web inclut le nom d'utilisateur/mot de passe saisi dans une requête HTTP et l'envoie à l'ESP32.
  • L'ESP32 vérifie le nom d'utilisateur/le mot de passe inclus dans la requête HTTP. Si correct, il renvoie le contenu de la page demandée. Si incorrect, il répète le processus, invitant l'utilisateur à saisir à nouveau les bons identifiants.
  • Une fois que l'utilisateur saisit le bon nom d'utilisateur/mot de passe pour la première fois, les demandes suivantes ne nécessitent pas de saisir de nom d'utilisateur/mot de passe. C'est parce que le navigateur web enregistre automatiquement les identifiants, les incluant dans les demandes subséquentes.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!