STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE

Started by tha, March 13, 2022, 08:08:09 AM

Previous topic - Next topic

tha

https://controllerstech.com/stm32-ethernet-6-http-webserver-simple/

STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE

นี้คือ the 6th tutorial ใน the STM32 ETHERNET series, และวันนี้เราจะเห็นวิธีใช้ STM32 ของเราเพื่อสร้าง a HTTP Webserver. section นี้จะถูกแบ่งออกเป็นสามส่วน. ส่วนแรกจะครอบคลุม the basic webserver, ที่เราจะสร้างง่ายๆ a webpage หรือ 2. ในส่วนถัดไป, เราจะใช้ the SSI (Server Side Include) เพื่ออัฟเดต the webpage เป็นระยะๆ.
และในส่วนที่สามท้ายสุดเราจะใช้ the CGI (Common Gateway Interface).

tutorial นี้จะครอบคลุม the simple webpage, และเราจะเห็นวิธีเพิ่มทรัพยากรณ์ (images and html pages) ไปยัง project ของเราอีกด้วย.

เริ่มต้นด้วยการตั้งค่า CubeMX ก่อน

tha

                                                                      CubeMX Setup

ส่วนพื้นฐานของ the CubeMX initialization ยังคงคล้ายกับ connection tutorial, ดังนั้นผมขอแนะนำให้คุณดำเนินการผ่านมันก่อน คุณควรดำเนินการต่อหากสิ่งต่าง ๆ ทำงานได้ตามที่กล่าวไว้.

นอกเหนือจาก the connection tutorial, เราจำเป็นต้องเปิดการใช้งาน(enable) the HTTPD ใน the LWIP. นี้ถูกแสดงข้างล่าง



ที่นี่ฉันได้เปิดการใช้งาน(enable) HTTPD นี่คือการตั้งค่าเพิ่มเติมทั้งหมดที่เราต้องการที่ด้านบนของวิดีโอการเชื่อมต่อก่อนหน้า

tha

                                                                  The additional Setup

หลังจากการสร้าง the project, ถ้าคุณ build มันเป็นครั้งแรก, คุณจะได้รับข้อผิดพลาด ดังนั้น ส่วนนี้จะครอบคลุมถึงการตั้งค่าเพิ่มเติมที่เราต้องทำเพื่อลบข้อผิดพลาดเหล่านั้น

ก่อนอื่นให้ไปที่ LWIP->Target->lwipopts.h และเปลี่ยน the #define HTTPD_USE_CUSTOM_FSDATA 0



tha

ตอนนี้ เราต้องรวม(include)ไฟล์ "FsData.c" พร้อมกับทรัพยากรที่เราจะใช้สำหรับเว็บเซิร์ฟเวอร์

หลังจากดาวน์โหลด the code ที่ตอนท้ายของโพสต์นี้, คุณจะพบ a folder ที่ชื่อ "MAKEFS"



_____________________________________________________________________________________________________________________________________

แตก folder นี้แยกต่างหาก. ภายในคุณจะพบ folder "fs" อีก, ซึ่งบรรจุ the resources ทั้งหมดที่คุณจะใช้สำหรับ the webserver.



โดยเริ่มต้น folder นี้บรรจุหนึ่ง index page, และหนึ่ง 404 error page. มี a image ภายใน the img folder ด้วย. ผมจะใช้ pages เริ่มต้นเหล่านี้สำหรับ the application. ถ้าคุณต้องการโมดิฟายหรือเพิ่ม the pages, คุณต้องทำมันภายใน folder นี้.

tha

ตอนนี้เราต้องก๊อปปี้(copy)สิ่งที่บรรจุอยู่ภายในโฟลเดอร์ลงใน project ของเรา.

ดังนั้นไปที่ Project\Middlewares\Third_Party\LwIP\src\apps\http และวาง(paste) the folder contents ที่นี่.



หลังจากการคัดลอกแล้ว, สิ่งที่คุณต้องทำคือดับเบิลคลิก the makeFSdata application. นี้จะสร้างไฟล์ใหม่ fsdata.c ดังแสดงข้างล่าง


tha

ตอนนี้ขั้นตอนสุดท้ายคือเอา the fsdata.c ออกจากการ build.



นี่คือการตั้งค่า หากคุณบิวด์ the code ตอนนี้ ข้อผิดพลาดทั้งหมดจะหายไป

ตอนนี้เราจะเขียน the code สำหรับการเริ่มต้นของ the webserver.

tha

                                                               Some Insight into the CODE



รวม(include) the httpd.h file, ดังนั้นเราสามารถใช้ the http initialisation ใน the main function.



The code ที่นี่ก็คล้ายกับที่เราได้ทำใน the previous tutorials ทั้งหมด.

ยกเว้นที่เราต้องเริ่มต้น the http_server ใน the main function.

tha

                                                                                              Result

ข้างล่างคือรูปภาพของ the homepage และ the 404 error page.