Arduino - Webserver met Wachtwoordbeveiliging

In deze handleiding leert u hoe u een beveiligde Arduino webserver maakt die een gebruikersnaam en wachtwoord vereist om in te loggen. Voordat gebruikers toegang krijgen tot webpagina's die gehost worden op de Arduino, worden zij gevraagd hun gebruikersnaam en wachtwoord in te voeren.

Arduino webserver gebruikersnaam wachtwoord

Hardware vereist

1×Arduino UNO R4 WiFi
1×Alternatief: DIYables STEM V4 IoT
1×USB-kabel Type-C
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno R4
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno R4
1×(Aanbevolen) Behuizing voor Arduino Uno R4
1×(Aanbevolen) Stromsplitter voor Arduino Uno R4
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Arduino en Webserver

Als u niet bekend bent met Arduino en webservers (inclusief pinout, werking en programmeren), kunt u hierover meer leren via de volgende tutorials:

Arduino Code - Webserver Gebruikersnaam/Wachtwoord

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-web-server-password */ #include <UnoR4WiFi_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 = "arduino"; // Create web server instance UnoR4WiFi_WebServer server; // HTML page content const char* LOGIN_SUCCESS_PAGE = R"( <!DOCTYPE HTML> <html> <head><title>Arduino Web Server</title></head> <body> <h1>Login Successful!</h1> <p>You are now logged in.</p> </body> </html> )"; // Main page handler void handleRoot(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) { server.sendResponse(client, LOGIN_SUCCESS_PAGE); } void setup() { Serial.begin(9600); delay(1000); String fv = WiFi.firmwareVersion(); if (fv < WIFI_FIRMWARE_LATEST_VERSION) Serial.println("Please upgrade the firmware"); Serial.print("Attempting to connect to SSID: "); Serial.println(WIFI_SSID); // 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, "Arduino"); 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(); }

Snelle Stappen

  • Als dit de eerste keer is dat u de Arduino Uno R4 gebruikt, bekijk dan hoe u de omgeving instelt voor Arduino Uno R4 in de Arduino IDE.
  • Verbind de Arduino met uw pc via een micro USB-kabel.
  • Open de Arduino IDE op uw pc.
  • Selecteer het juiste Arduino board en de juiste COM-poort.
  • Open de Library Manager door op het icoon Library Manager links in de Arduino IDE te klikken.
  • Zoek naar Web Server for Arduino Uno R4 WiFi en vind de Web Server bibliotheek gemaakt door DIYables.
  • Klik op de Installeren-knop om de Web Server bibliotheek toe te voegen.
Arduino UNO R4 Web Server bibliotheek
  • Kopieer bovenstaande code en open deze in de Arduino IDE.
  • Pas de wifi-gegevens (SSID en wachtwoord) in de code aan naar uw eigen gegevens.
  • Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden.
  • Open de Seriële Monitor.
  • Bekijk het resultaat in de Seriële Monitor.
COM6
Send
Attempting to connect to SSID: YOUR_WIFI_SSID Connected! IP Address: 192.168.0.254 SSID: YOUR_WIFI_SSID IP Address: 192.168.0.254 Signal strength (RSSI): -43 dBm Basic Authentication enabled Realm: Arduino IP Address: 192.168.0.254 Server ready with authentication enabled Username: admin Password: arduino
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • U ziet een IP-adres in de Seriële Monitor, bijvoorbeeld: 192.168.0.3
  • Typ het IP-adres in de adresbalk van een webbrowser op uw smartphone of pc.
  • Let op: vervang 192.168.0.3 door het IP-adres dat u in de Seriële Monitor hebt gekregen.
  • U ziet een pagina waarop u wordt gevraagd uw gebruikersnaam/wachtwoord in te voeren.
Arduino Webpagina wachtwoord
  • Voer de gebruikersnaam/wachtwoord in zoals in de Arduino-code staat, in dit geval: admin als gebruikersnaam, arduino als wachtwoord.
  • Als u de gebruikersnaam/wachtwoord correct invoert, wordt de webinhoud van de Arduino weergegeven:
Arduino Webpagina login

※ Notiz:

  • U kunt de gebruikersnaam en het wachtwoord voor uw website direct aanpassen in de code door de waarden van de twee variabelen www_username en www_password te wijzigen.
  • U heeft de vrijheid om deze code aan te passen door uw eigen HTML, CSS en JavaScript toe te voegen om uw webpagina naar eigen wens te ontwerpen.
  • Het is belangrijk op te merken dat in de code zelf geen HTML-code staat voor het inlogformulier waar gebruikers hun gebruikersnaam en wachtwoord invoeren. Wees hier niet door verrast! Het inlogformulier wordt namelijk dynamisch door de webbrowser gegenereerd wanneer dit nodig is.

Gevorderde kennis

Deze sectie geeft diepgaande uitleg over hoe het gebruikersnaam/wachtwoord-systeem werkt zonder HTML voor het inlogformulier:

  • Wanneer u aanvankelijk het IP-adres van de Arduino in een webbrowser typt, stuurt de browser een HTTP-aanvraag naar de Arduino zonder gebruikersnaam/wachtwoordgegevens.
  • Bij het ontvangen van deze aanvraag controleert de Arduino of er gebruikersnaam/wachtwoord-informatie is meegestuurd. Als deze ontbreken, stuurt de Arduino niet de inhoud van de pagina terug. In plaats daarvan stuurt hij een HTTP-bericht terug met headers die de browser instrueren om de gebruiker om hun gebruikersnaam/wachtwoord te vragen. Belangrijk is dat deze reactie geen HTML-code voor het inlogformulier bevat.
  • Wanneer de browser deze reactie ontvangt, interpreteert hij de HTTP-headers en begrijpt dat de Arduino om een gebruikersnaam/wachtwoord vraagt. De browser maakt daarom dynamisch een inlogformulier aan waarin de gebruiker zijn gegevens kan invoeren.
  • De gebruiker voert zijn gebruikersnaam/wachtwoord in dit formulier in.
  • De browser voegt de ingevoerde gebruikersnaam/wachtwoord toe aan een HTTP-aanvraag en verzendt deze terug naar de Arduino.
  • De Arduino controleert de gebruikersnaam/wachtwoord uit de HTTP-aanvraag. Als deze correct zijn, levert hij de inhoud van de gevraagde pagina. Zijn ze onjuist, dan wordt het proces herhaald en wordt de gebruiker opnieuw gevraagd correcte inloggegevens in te voeren.
  • Nadat de gebruiker eenmaal correct is ingelogd, hoeft hij deze gegevens niet opnieuw in te voeren bij volgende verzoeken. Dit komt omdat de browser de inloggegevens automatisch opslaat en toevoegt aan volgende aanvragen.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!