مكتبة WiFiWebServer_RTL8720 هذه هي مكتبة WebServer بسيطة ولكنها كاملة للوحات Realtek RTL8720DN وRTL8722DM وRTL8722CSM .
الوظائف متشابهة ومتوافقة مع وظائف مكتبات ESP32 WebServer
و ESP8266WebServer
لتسهيل عملية نقل الرسومات من ESP8266/ESP32.
توفر مكتبة WiFiWebServer_RTL8720 أيضًا HTTP وWebSocket Client عالي المستوى مع وظائف مشابهة ومتوافقة مع وظائف مكتبة ArduinoHttpClient
توفر المكتبة الدعم لـ:
ويستند إلى وتعديلها من:
فئة WiFiWebServer
الموجودة في رأس WiFiWebServer_RTL8720.h
، هي خادم ويب بسيط يعرف كيفية التعامل مع طلبات HTTP مثل GET وPOST ويمكنه دعم عميل واحد فقط في كل مرة.
تدعم مكتبة WiFiWebServer_RTL8720 حاليًا هذه اللوحات التالية:
Arduino IDE 1.8.19+
لاردوينو.Arduino AmebaD core 3.1.4+
لـ Realtek RTL8720DN وRTL8722DM وRTL8722CSM.Functional-Vlpp library v1.0.2+
لاستخدام وظيفة lambda الخاصة بالخادم. لتثبيت. يفحص الطريقة الأفضل والأسهل هي استخدام Arduino Library Manager
. ابحث عن WiFiWebServer_RTL8720 ، ثم حدد / قم بتثبيت أحدث إصدار. يمكنك أيضًا استخدام هذا الرابط للحصول على تعليمات أكثر تفصيلاً.
WiFiWebServer_RTL8720-main.zip
.WiFiWebServer_RTL8720-main
WiFiWebServer_RTL8720-main
بالكامل إلى دليل مكتبات Arduino مثل ~/Arduino/libraries/
.لتجنب خطأ الترجمة المتعلق بـ PROGMEM، يجب عليك نسخ الملف Realtek AmebaD core pgmspace.h إلى دليل Realtek AmebaD (~/.arduino15/packages/realtek/hardware/AmebaD/3.1.4/cores/ambd/avr/pgmspace. ح).
لنفترض أن الإصدار الأساسي من Realtek AmebaD هو 3.1.4. يجب نسخ هذا الملف إلى الدليل:
~/.arduino15/packages/realtek/hardware/AmebaD/3.1.4/cores/ambd/avr/pgmspace.h
كلما تم تثبيت إصدار جديد، تذكر نسخ هذا الملف إلى دليل الإصدار الجديد. على سبيل المثال، الإصدار الجديد هو x.yy.zz ويجب نسخ هذا الملف إلى الدليل:
~/.arduino15/packages/realtek/hardware/AmebaD/x.yy.zz/cores/ambd/avr/pgmspace.h
WiFiWebServer server ( 80 );
يقوم بإنشاء كائن فئة WiFiWebServer.
حدود:
رقم منفذ المضيف: int port
(الافتراضي هو منفذ HTTP القياسي 80)
بدء تشغيل الخادم
void begin ();
التعامل مع طلبات العملاء الواردة
void handleClient ();
تعطيل الخادم
void close ();
void stop ();
كلتا الطريقتين تعملان بنفس الطريقة
معالجات طلب العميل
void on ();
void addHandler ();
void onNotFound ();
void onFileUpload ();
مثال:
server.on( " / " , handlerFunction);
server.onNotFound(handlerFunction); // called when handler is not assigned
server.onFileUpload(handlerFunction); // handle file uploads
إرسال الردود إلى العميل
void send ();
void send_P ();
Parameters:
code
- رمز استجابة HTTP، يمكن أن يكون 200
أو 404
، وما إلى ذلك.
content_type
- نوع محتوى HTTP، مثل "text/plain"
أو "image/png"
وما إلى ذلك.
content
- نص المحتوى الفعلي
الحصول على معلومات حول وسيطات الطلب
const String & arg ();
const String & argName ();
int args ();
bool hasArg ();
Function usage:
arg
- احصل على قيمة وسيطة الطلب، استخدم arg("plain")
للحصول على نص POST
argName
- الحصول على اسم وسيطة الطلب
args
- الحصول على عدد الحجج
hasArg
- التحقق من وجود الوسيطة
الحصول على معلومات حول رؤوس الطلب
const String & header ();
const String & headerName ();
const String & hostHeader ();
int headers ();
bool hasHeader ();
Function usage:
header
- احصل على قيمة رأس الطلب
headerName
- احصل على اسم رأس الطلب
hostHeader
- احصل على رأس مضيف الطلب إذا كان متاحًا، وإلا سلسلة فارغة
headers
- احصل على عدد الرؤوس
hasHeader
- تحقق من وجود الرأس
المصادقة
bool authenticate ();
void requestAuthentication ();
Function usage:
authenticate
- مصادقة الخادم، تُرجع صحيحًا إذا تمت مصادقة العميل وإلا تكون خاطئة
requestAuthentication
- يرسل استجابة فشل المصادقة إلى العميل
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
الأسطر من 40 إلى 245 في 74723f4
WiFiWebServer_RTL8720/examples/AdvancedWebServer/defines.h
الأسطر من 11 إلى 42 في 74723f4
فيما يلي مخرجات المحطة الطرفية لتصحيح الأخطاء ولقطات الشاشة عند تشغيل المثال AdvancedWebServer على 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
فيما يلي إخراج محطة التصحيح ولقطة الشاشة عند تشغيل مثال WebClient على 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
`;;;;;;;;;;;;;;;` :;;;;;;;;;;;;;;;
:;;;;;;;;;;;;;;;;;; `;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;; .;;;;;;;;;;;;;;;;;;;;
;;;;;;;;:` `;;;;;;;;; ,;;;;;;;;.` .;;;;;;;;
.;;;;;;, :;;;;;;; .;;;;;;; ;;;;;;;
;;;;;; ;;;;;;; ;;;;;;, ;;;;;;.
,;;;;; ;;;;;;.;;;;;;` ;;;;;;
;;;;;. ;;;;;;;;;;;` ``` ;;;;;`
;;;;; ;;;;;;;;;, ;;; .;;;;;
`;;;;: `;;;;;;;; ;;; ;;;;;
,;;;;` `,,,,,,,, ;;;;;;; .,,;;;,,, ;;;;;
:;;;;` .;;;;;;;; ;;;;;, :;;;;;;;; ;;;;;
:;;;;` .;;;;;;;; `;;;;;; :;;;;;;;; ;;;;;
.;;;;. ;;;;;;;. ;;; ;;;;;
;;;;; ;;;;;;;;; ;;; ;;;;;
;;;;; .;;;;;;;;;; ;;; ;;;;;,
;;;;;; `;;;;;;;;;;;; ;;;;;
`;;;;;, .;;;;;; ;;;;;;; ;;;;;;
;;;;;;: :;;;;;;. ;;;;;;; ;;;;;;
;;;;;;;` .;;;;;;;, ;;;;;;;; ;;;;;;;:
;;;;;;;;;:,:;;;;;;;;;: ;;;;;;;;;;:,;;;;;;;;;;
`;;;;;;;;;;;;;;;;;;;. ;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;; :;;;;;;;;;;;;;;;;:
,;;;;;;;;;;;;;, ;;;;;;;;;;;;;;
.;;;;;;;;;` ,;;;;;;;;:
;;; ;;;;;` ;;;;: .;; ;; ,;;;;;, ;;. `;, ;;;;
;;; ;;:;;; ;;;;;; .;; ;; ,;;;;;: ;;; `;, ;;;:;;
,;:; ;; ;; ;; ;; .;; ;; ,;, ;;;,`;, ;; ;;
;; ;: ;; ;; ;; ;; .;; ;; ,;, ;;;;`;, ;; ;;.
;: ;; ;;;;;: ;; ;; .;; ;; ,;, ;;`;;;, ;; ;;`
,;;;;; ;;`;; ;; ;; .;; ;; ,;, ;; ;;;, ;; ;;
;; ,;, ;; .;; ;;;;;: ;;;;;: ,;;;;;: ;; ;;, ;;;;;;
;; ;; ;; ;;` ;;;;. `;;;: ,;;;;;, ;; ;;, ;;;;
فيما يلي مخرجات المحطة الطرفية لتصحيح الأخطاء ولقطات الشاشة عند تشغيل مثال ScanNetworks على 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
فيما يلي إخراج محطة التصحيح ولقطة الشاشة عند تشغيل المثال MQTTClient_Auth على 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
فيما يلي إخراج محطة التصحيح ولقطة الشاشة عند تشغيل المثال MQTT_ThingStream على 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
فيما يلي إخراج محطة التصحيح ولقطة الشاشة عند تشغيل مثال WiFiUdpNTPClient على 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
يتم تمكين تصحيح الأخطاء بشكل افتراضي على المسلسل. مستوى التصحيح من 0 إلى 4. للتعطيل، قم بتغيير WIFI_LOGLEVEL إلى 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
إذا حصلت على أخطاء في الترجمة، في أغلب الأحيان، قد تحتاج إلى تثبيت إصدار أحدث من نواة اللوحة، أو تطبيق تصحيحات المكتبات، أو تصحيحات الحزم، أو أحدث إصدار من هذه المكتبة.
تدعم مكتبة WiFiWebServer_RTL8720 حاليًا هذه اللوحات التالية:
توفر المكتبة الدعم لـ:
أرسل المشكلات إلى: مشكلات WiFiWebServer_RTL8720
arduino.cc
إلى arduino.tips
في الأمثلةallman
. إعادة تصميم المكتبة ️️ إيفان جروخوتكوف | ️ أدريان ماكوين |
إذا كنت تريد المساهمة في هذا المشروع:
حقوق الطبع والنشر (ج) 2021- خوي هوانج