Diese WiFiWebServer_RTL8720-Bibliothek ist eine einfache, aber vollständige Webserver-Bibliothek für Realtek RTL8720DN-, RTL8722DM- und RTL8722CSM-Karten .
Die Funktionen ähneln denen der ESP32 WebServer
und ESP8266WebServer
-Bibliotheken und sind mit diesen kompatibel, um die Portierung von Skizzen von ESP8266/ESP32 erheblich zu vereinfachen.
Diese WiFiWebServer_RTL8720-Bibliothek bietet auch High-Level -HTTP- und WebSocket-Clients mit ähnlichen Funktionen und ist mit denen der ArduinoHttpClient-Bibliothek kompatibel
Die Bibliothek bietet Unterstützung für:
Es basiert auf und wurde modifiziert von:
Die WiFiWebServer
-Klasse im WiFiWebServer_RTL8720.h
-Header ist ein einfacher Webserver, der HTTP-Anfragen wie GET und POST verarbeiten kann und jeweils nur einen Client unterstützen kann.
Diese WiFiWebServer_RTL8720-Bibliothek unterstützt derzeit die folgenden Boards:
Arduino IDE 1.8.19+
für Arduino.Arduino AmebaD core 3.1.4+
für Realtek RTL8720DN, RTL8722DM und RTL8722CSM.Functional-Vlpp library v1.0.2+
zur Verwendung der Lambda-Funktion des Servers. Zu installieren. überprüfen Der beste und einfachste Weg ist die Verwendung Arduino Library Manager
. Suchen Sie nach WiFiWebServer_RTL8720 und wählen Sie dann die neueste Version aus bzw. installieren Sie sie. Sie können auch diesen Link für detailliertere Anweisungen verwenden.
WiFiWebServer_RTL8720-main.zip
herunter.WiFiWebServer_RTL8720-main
WiFiWebServer_RTL8720-main
in das Verzeichnis der Arduino-Bibliotheken, z. B. ~/Arduino/libraries/
.Um Kompilierungsfehler im Zusammenhang mit PROGMEM zu vermeiden, müssen Sie die Datei Realtek AmebaD core pgmspace.h in das Realtek AmebaD-Verzeichnis kopieren (~/.arduino15/packages/realtek/hardware/AmebaD/3.1.4/cores/ambd/avr/pgmspace. H).
Angenommen, die Kernversion von Realtek AmebaD ist 3.1.4. Diese Datei muss in das Verzeichnis kopiert werden:
~/.arduino15/packages/realtek/hardware/AmebaD/3.1.4/cores/ambd/avr/pgmspace.h
Denken Sie bei der Installation einer neuen Version daran, diese Datei in das neue Versionsverzeichnis zu kopieren. Die neue Version lautet beispielsweise x.yy.zz. Diese Datei muss in das Verzeichnis kopiert werden:
~/.arduino15/packages/realtek/hardware/AmebaD/x.yy.zz/cores/ambd/avr/pgmspace.h
WiFiWebServer server ( 80 );
Erstellt das WiFiWebServer-Klassenobjekt.
Parameter:
Host-Portnummer: int port
(Standard ist der Standard-HTTP-Port 80)
Starten des Servers
void begin ();
Bearbeitung eingehender Kundenanfragen
void handleClient ();
Deaktivierung des Servers
void close ();
void stop ();
Beide Methoden funktionieren gleich
Client-Anfrage-Handler
void on ();
void addHandler ();
void onNotFound ();
void onFileUpload ();
Beispiel:
server.on( " / " , handlerFunction);
server.onNotFound(handlerFunction); // called when handler is not assigned
server.onFileUpload(handlerFunction); // handle file uploads
Senden von Antworten an den Kunden
void send ();
void send_P ();
Parameters:
code
– HTTP-Antwortcode, kann 200
oder 404
usw. sein.
content_type
– HTTP-Inhaltstyp, wie "text/plain"
oder "image/png"
usw.
content
– eigentlicher Inhaltskörper
Informationen zu Anforderungsargumenten abrufen
const String & arg ();
const String & argName ();
int args ();
bool hasArg ();
Function usage:
arg
– Anforderungsargumentwert abrufen, arg("plain")
verwenden, um den POST-Text abzurufen
argName
– Name des Anforderungsarguments abrufen
args
– Anzahl der Argumente abrufen
hasArg
– prüft, ob Argument vorhanden ist
Informationen zu Anforderungsheadern abrufen
const String & header ();
const String & headerName ();
const String & hostHeader ();
int headers ();
bool hasHeader ();
Function usage:
header
– Anforderungsheaderwert abrufen
headerName
– Name des Anforderungsheaders abrufen
hostHeader
– Anforderungs-Host-Header abrufen, falls verfügbar, andernfalls leere Zeichenfolge
headers
– Anzahl der Header abrufen
hasHeader
– Überprüfen Sie, ob ein Header vorhanden ist
Authentifizierung
bool authenticate ();
void requestAuthentication ();
Function usage:
authenticate
– Serverauthentifizierung, gibt „true“ zurück, wenn der Client authentifiziert ist, andernfalls „false“.
requestAuthentication
– sendet eine Antwort auf einen Authentifizierungsfehler an den Client
Example Usage:
if (!server.authenticate(username, password))
{
server. requestAuthentication ();
}
const String& uri (); // get the current uri
HTTPMethod method (); // get the current method
WiFiClient client (); // get the current client
HTTPUpload& upload (); // get the current upload
void setContentLength (); // set content length
void sendHeader (); // send HTTP header
void sendContent (); // send content
void sendContent_P ();
void collectHeaders (); // set the request headers to collect
void serveStatic ();
size_t streamFile ();
WiFiWebServer_RTL8720/examples/AdvancedWebServer/AdvancedWebServer.ino
Zeilen 40 bis 245 in 74723f4
WiFiWebServer_RTL8720/examples/AdvancedWebServer/defines.h
Zeilen 11 bis 42 in 74723f4
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen des Beispiels AdvancedWebServer auf Rtlduino RTL8720DN
Starting AdvancedServer on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
interface 0 is initialized
interface 1 is initialized
Initializing WIFI ...
WIFI initialized
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet1
RTL8721D[Driver]: set ssid [HueNet1]
RTL8721D[Driver]: rtw_set_wpa_ie[ 1160 ]: AuthKeyMgmt = 0x2
RTL8721D[Driver]: rtw_restruct_sec_ie[ 4225 ]: no pmksa cached
RTL8721D[Driver]: start auth to 68 : 7f : 74 : 94 :f4:a5
RTL8721D[Driver]: auth alg = 2
RTL8721D[Driver]:
OnAuthClient:algthm = 0 , seq = 2 , status = 0 , sae_msg_len = 11
RTL8721D[Driver]: auth success, start assoc
RTL8721D[Driver]: association success (res= 1 )
RTL8721D[Driver]: ClientSendEAPOL[1624]: no use cache pmksa
RTL8721D[Driver]: ClientSendEAPOL[1624]: no use cache pmksa
RTL8721D[Driver]: set pairwise key to hw: alg:4(WEP40- 1 WEP104- 5 TKIP- 2 AES- 4 )
RTL8721D[Driver]: set group key to hw: alg:2(WEP40- 1 WEP104- 5 TKIP- 2 AES- 4 ) keyid:1
Interface 0 IP address : 192.168.2.117
[INFO] Listen socket successfully
[INFO] Socket conntect successfully
HTTP server started @ 192.168.2.117
[INFO] Accept connection successfully
A client connected to this server :
[PORT]: 36912
[IP]:192.168.2.30
[INFO] Accept connection successfully
A client connected to this server :
[PORT]: 36914
[IP]:192.168.2.30
[WIFI] String Len = 0, extend to 2048
[INFO] Accept connection successfully
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen des Beispiel- WebClients auf Rtlduino RTL8720DN
Starting WebClientRepeating on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
interface 0 is initialized
interface 1 is initialized
Initializing WIFI ...
WIFI initialized
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet1
RTL8721D[Driver]: set ssid [HueNet1]
RTL8721D[Driver]: rtw_set_wpa_ie[ 1160 ]: AuthKeyMgmt = 0x2
RTL8721D[Driver]: rtw_restruct_sec_ie[ 4225 ]: no pmksa cached
RTL8721D[Driver]: start auth to 68 : 7f : 74 : 94 :f4:a5
RTL8721D[Driver]: auth alg = 2
RTL8721D[Driver]:
OnAuthClient:algthm = 0 , seq = 2 , status = 0 , sae_msg_len = 11
RTL8721D[Driver]: auth success, start assoc
RTL8721D[Driver]: association success (res= 1 )
RTL8721D[Driver]: ClientSendEAPOL[1624]: no use cache pmksa
RTL8721D[Driver]: ClientSendEAPOL[1624]: no use cache pmksa
RTL8721D[Driver]: set pairwise key to hw: alg:4(WEP40- 1 WEP104- 5 TKIP- 2 AES- 4 )
RTL8721D[Driver]: set group key to hw: alg:2(WEP40- 1 WEP104- 5 TKIP- 2 AES- 4 ) keyid:1
Interface 0 IP address : 192.168.2.117You're connected to the network, IP = 192.168.2.117
SSID: HueNet1, Signal strength (RSSI):-26 dBm
[INFO]server_drv.cpp: start_client
[INFO] Create socket successfully
[INFO] Connect to Server successfully!
Connecting...
HTTP/1.1 200 OK
Date: Thu, 28 Apr 2022 02:46:07 GMT
Content-Type: text/plain
Content-Length: 2263
Connection: close
x-amz-id-2: 0v2VZitmKPb1GvH/Of2rACgGVIyluvsMCTX1kbkYKmtOMZMLlHXAT1n7wdAcMiFQ6LPQ1Qy2tSg=
x-amz-request-id: 72CSXT4AMDTCDJYE
Last-Modified: Wed, 23 Feb 2022 14:56:42 GMT
ETag: "667cf48afcc12c38c8c1637947a04224"
CF-Cache-Status: DYNAMIC
Report-To: { " endpoints " :[{ " url " : " https://a.nel.cloudflare.com/report/v3?s=vdeduIIMRyhO44T972z7Z0qfco3T5svA5zYhyMJqQE5hTNGvTxTg%2B8S8e90uedVsSDo5oj73gg%2BxEoPfXW1%2FUCfu6XkFt6oLuf9zjLCo%2BSe58OLsZhr25mZ3MxPD%2ByY%3D " }], " group " : " cf-nel " , " max_age " : 604800 }
NEL: { " success_fraction " : 0 , " report_to " : " cf-nel " , " max_age " : 604800 }
Server: cloudflare
CF-RAY: 702c77389848b671-YWG
alt-svc: h3= " :443 " ; ma= 86400 , h3- 29 = " :443 " ; ma= 86400
`:;;;,` .:;;:.
.;;;;;;;;;;;` :;;;;;;;;;;: TM
`;;;;;;;;;;;;;;;` :;;;;;;;;;;;;;;;
:;;;;;;;;;;;;;;;;;; `;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;; .;;;;;;;;;;;;;;;;;;;;
;;;;;;;;:` `;;;;;;;;; ,;;;;;;;;.` .;;;;;;;;
.;;;;;;, :;;;;;;; .;;;;;;; ;;;;;;;
;;;;;; ;;;;;;; ;;;;;;, ;;;;;;.
,;;;;; ;;;;;;.;;;;;;` ;;;;;;
;;;;;. ;;;;;;;;;;;` ``` ;;;;;`
;;;;; ;;;;;;;;;, ;;; .;;;;;
`;;;;: `;;;;;;;; ;;; ;;;;;
,;;;;` `,,,,,,,, ;;;;;;; .,,;;;,,, ;;;;;
:;;;;` .;;;;;;;; ;;;;;, :;;;;;;;; ;;;;;
:;;;;` .;;;;;;;; `;;;;;; :;;;;;;;; ;;;;;
.;;;;. ;;;;;;;. ;;; ;;;;;
;;;;; ;;;;;;;;; ;;; ;;;;;
;;;;; .;;;;;;;;;; ;;; ;;;;;,
;;;;;; `;;;;;;;;;;;; ;;;;;
`;;;;;, .;;;;;; ;;;;;;; ;;;;;;
;;;;;;: :;;;;;;. ;;;;;;; ;;;;;;
;;;;;;;` .;;;;;;;, ;;;;;;;; ;;;;;;;:
;;;;;;;;;:,:;;;;;;;;;: ;;;;;;;;;;:,;;;;;;;;;;
`;;;;;;;;;;;;;;;;;;;. ;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;; :;;;;;;;;;;;;;;;;:
,;;;;;;;;;;;;;, ;;;;;;;;;;;;;;
.;;;;;;;;;` ,;;;;;;;;:
;;; ;;;;;` ;;;;: .;; ;; ,;;;;;, ;;. `;, ;;;;
;;; ;;:;;; ;;;;;; .;; ;; ,;;;;;: ;;; `;, ;;;:;;
,;:; ;; ;; ;; ;; .;; ;; ,;, ;;;,`;, ;; ;;
;; ;: ;; ;; ;; ;; .;; ;; ,;, ;;;;`;, ;; ;;.
;: ;; ;;;;;: ;; ;; .;; ;; ,;, ;;`;;;, ;; ;;`
,;;;;; ;;`;; ;; ;; .;; ;; ,;, ;; ;;;, ;; ;;
;; ,;, ;; .;; ;;;;;: ;;;;;: ,;;;;;: ;; ;;, ;;;;;;
;; ;; ;; ;;` ;;;;. `;;;: ,;;;;;, ;; ;;, ;;;;
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen von Beispiel- ScanNetworks auf Rtlduino RTL8720DN
Starting ScanNetworks on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet_5G
You ' re connected to the network, IP = 192.168.2.152
MAC address: 69:4E:06:60:C9:94
Scanning available networks...
Number of available networks:19
0) HueNet Signal: -26 dBm Encryption: WPA2_PSK
1) HueNet_5G Signal: -32 dBm Encryption: WPA2_PSK
2) HueNetTek Signal: -32 dBm Encryption: WPA2_PSK
3) HueNetTek_5G Signal: -33 dBm Encryption: WPA2_PSK
4) HueNet1 Signal: -36 dBm Encryption: WPA2_PSK
5) HueNet2 Signal: -58 dBm Encryption: WPA2_PSK
6) HueNet2_5G Signal: -60 dBm Encryption: WPA2_PSK
7) guest_24 Signal: -64 dBm Encryption: WPA2_PSK
8) bacau Signal: -65 dBm Encryption: WPA2_PSK
9) guest_5 Signal: -77 dBm Encryption: WPA2_PSK
10) pitesti Signal: -77 dBm Encryption: WPA2_PSK
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen des Beispiels MQTTClient_Auth auf Rtlduino RTL8720DN
Starting MQTTClient_Auth on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet_5G
Connected! IP address: 192.168.2.152
Attempting MQTT connection to broker.emqx.io...connected
Message Send : MQTT_Pub => Hello from MQTTClient_Auth on Rtlduino RTL8720DN with RTL8720DN
Message arrived [MQTT_Pub] Hello from MQTTClient_Auth on Rtlduino RTL8720DN with RTL8720DN
Message Send : MQTT_Pub => Hello from MQTTClient_Auth on Rtlduino RTL8720DN with RTL8720DN
Message arrived [MQTT_Pub] Hello from MQTTClient_Auth on Rtlduino RTL8720DN with RTL8720DN
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen des Beispiels MQTT_ThingStream auf Rtlduino RTL8720DN
Start MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet_5G
Connected! IP address: 192.168.2.152
***************************************
STM32_Pub
***************************************
Attempting MQTT connection to broker.emqx.io
...connected
Published connection message successfully!
Subscribed to: STM32_Sub
MQTT Message Send : STM32_Pub => Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message receive [STM32_Pub] Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message Send : STM32_Pub => Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message receive [STM32_Pub] Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message Send : STM32_Pub => Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message receive [STM32_Pub] Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message Send : STM32_Pub => Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
MQTT Message receive [STM32_Pub] Hello from MQTT_ThingStream on Rtlduino RTL8720DN with RTL8720DN
Im Folgenden finden Sie die Ausgabe des Debug-Terminals und einen Screenshot beim Ausführen des Beispiels WiFiUdpNTPClient auf Rtlduino RTL8720DN
Starting WiFiUdpNTPClient on Rtlduino RTL8720DN with RTL8720DN
WiFiWebServer_RTL8720 v1 .1.2
Current Firmware Version = 1.0.0
Attempting to connect to SSID: HueNet_5G
Connected! IP address: 192.168.2.152
SSID: HueNet1, Signal strength (RSSI):-39 dBm
Starting connection to server...
Listening on port 2390
packet received
Seconds since Jan 1 1900 = 3835239949
Unix time = 1626251149
The UTC time is 8:25:49
packet received
Seconds since Jan 1 1900 = 3835239960
Unix time = 1626251160
The UTC time is 8:26:00
packet received
Seconds since Jan 1 1900 = 3835239971
Unix time = 1626251171
The UTC time is 8:26:11
Debug ist bei Serial standardmäßig aktiviert. Debug-Level von 0 bis 4. Zum Deaktivieren ändern Sie WIFI_LOGLEVEL auf 0
// Use this to output debug msgs to Serial
# define DEBUG_WIFI_WEBSERVER_PORT Serial
// Debug Level from 0 to 4
# define _WIFI_LOGLEVEL_ 1
Wenn Kompilierungsfehler auftreten, müssen Sie in den meisten Fällen eine neuere Version des Board-Kerns installieren und dabei Bibliotheks-Patches, Paket-Patches oder die neueste Version dieser Bibliothek anwenden.
Diese WiFiWebServer_RTL8720-Bibliothek unterstützt derzeit die folgenden Boards:
Die Bibliothek bietet Unterstützung für:
Senden Sie Probleme an: Probleme mit WiFiWebServer_RTL8720
arduino.cc
zu arduino.tips
allman
-Stil hinzu. Gestalten Sie die Bibliothek neu ️️ Ivan Grokhotkov | ️ Adrian McEwen |
Wenn Sie zu diesem Projekt beitragen möchten:
Copyright (c) 2021 – Khoi Hoang