Arduino – Webserver-Passwort
In diesem Tutorial lernen wir, wie man einen sicheren Arduino-Webserver erstellt, der eine Anmeldung mit Benutzernamen und Passwort erfordert. Bevor Benutzer auf Webseiten zugreifen, die auf dem Arduino gehostet werden, werden sie aufgefordert, ihren Benutzernamen und ihr Passwort einzugeben.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V4 IoT Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.
Über Arduino und Webserver
Wenn Sie mit Arduino und Webservern nicht vertraut sind (einschließlich Pinbelegung, Funktionsweise und Programmierung), können Sie durch die folgenden Tutorials mehr darüber lernen:
Arduino-Code - Webserver Benutzername/Passwort
/*
* Dieser Arduino Code wurde von newbiely.de entwickelt
* Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt.
* Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte:
* https://newbiely.de/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();
}
Schnelle Schritte
- Wenn dies das erste Mal ist, dass Sie Arduino Uno R4 verwenden, sehen Sie sich wie man die Umgebung für Arduino Uno R4 in der Arduino IDE einrichtet an.
- Schließen Sie das Arduino-Board über ein Micro-USB-Kabel an Ihren PC an.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie das richtige Arduino-Board und den COM-Port aus.
- Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Symbol Bibliotheks-Manager auf der linken Seite der Arduino IDE klicken.
- Suchen Sie nach Web Server for Arduino Uno R4 WiFi und finden Sie die von DIYables erstellte Webserver-Bibliothek.
- Klicken Sie auf die Installieren-Schaltfläche, um die Webserver-Bibliothek hinzuzufügen.

- Kopiere den obigen Code und öffne ihn mit der Arduino-IDE
- Ändere die WLAN-Informationen (SSID und Passwort) im Code auf deine eigenen
- Klicke in der Arduino-IDE auf den Hochladen-Button, um den Code auf den Arduino hochzuladen
- Öffne den Serial Monitor
- Schau dir das Ergebnis im Serial Monitor an.
COM6
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
Clear output
9600 baud
Newline
- Sie sehen eine IP-Adresse im seriellen Monitor, zum Beispiel: 192.168.0.3
- Geben Sie die IP-Adresse in die Adressleiste eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Bitte beachten Sie, dass Sie die 192.168.0.3 durch die IP-Adresse ersetzen müssen, die Sie im seriellen Monitor erhalten haben.
- Sie sehen eine Seite, die Sie zur Eingabe von Benutzername und Passwort auffordert.

- Geben Sie den Benutzernamen und das Passwort ein, die im Arduino-Code enthalten sind; in diesem Fall: admin als Benutzername, arduino als Passwort
- Wenn Sie den Benutzernamen und das Passwort korrekt eingeben, wird der Webinhalt von Arduino angezeigt:

※ Notiz:
- Sie können den Benutzernamen und das Passwort Ihrer Website direkt im Code anpassen, indem Sie die Werte der zwei Variablen www_username und www_password ändern.
- Sie haben die Flexibilität, diesen Code anzupassen, indem Sie eigenes HTML, CSS und JavaScript hinzufügen, um Ihre Webseite nach Ihren Wünschen zu gestalten.
- Es ist wichtig zu beachten, dass im Code selbst kein HTML-Code speziell für das Login-Formular vorhanden ist, in dem Benutzer ihren Benutzernamen und ihr Passwort eingeben. Lassen Sie sich davon nicht überraschen! Stattdessen wird das Login-Formular bei Bedarf dynamisch vom Webbrowser erzeugt.
Fortgeschrittene Kenntnisse
Dieser Abschnitt bietet detaillierte Informationen darüber, wie das Benutzername/Passwort-System ohne HTML für das Anmeldeformular funktioniert:
- Wenn Sie die IP-Adresse des Arduino erstmals in einen Webbrowser eingeben, sendet der Browser eine Anfrage an den Arduino über HTTP, jedoch ohne Benutzernamen und Passwortdaten.
- Beim Empfang dieser Anfrage prüft der Code des Arduino, ob Benutzernamen und Passwort enthalten sind. Falls keine gefunden werden, antwortet der Arduino nicht mit dem Seiteninhalt. Stattdessen sendet er eine HTTP-Nachricht mit Headern zurück, die den Browser anweisen, den Benutzer nach seinem Benutzernamen und Passwort zu fragen. Wichtig ist, dass diese Antwort keinen HTML-Code für das Login-Formular enthält.
- Wenn der Browser diese Antwort erhält, interpretiert er die HTTP-Header und versteht, dass der Arduino nach einem Benutzernamen und Passwort fragt. Folglich erstellt der Browser dynamisch ein Login-Formular, damit der Benutzer seine Anmeldedaten eingeben kann.
- Der Benutzer gibt anschließend seinen Benutzernamen und sein Passwort in dieses Formular ein.
- Der Browser übermittelt den eingegebenen Benutzernamen und das Passwort in einer HTTP-Anfrage und sendet sie an den Arduino zurück.
- Der Arduino prüft den in der HTTP-Anfrage enthaltenen Benutzernamen und das Passwort. Sind sie korrekt, liefert er den Inhalt der angeforderten Seite aus. Sind sie falsch, wird der Vorgang wiederholt, sodass der Benutzer erneut aufgefordert wird, die richtigen Anmeldedaten einzugeben.
- Sobald der Benutzer beim ersten Mal korrekt seinen Benutzernamen und sein Passwort eingibt, müssen spätere Anfragen diese Details nicht erneut eingeben. Dies liegt daran, dass der Browser die Anmeldedaten automatisch speichert und sie in nachfolgenden Anfragen mitsendet.