STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE

  • 7 Replies
  • 128 Views
*

Online tha

  • *****
  • 3533
    • View Profile
STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« on: March 13, 2022, 08:08:09 am »
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 ก่อน

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #1 on: March 14, 2022, 08:20:26 am »
                                                                CubeMX Setup

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

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

(ดูรูปภาพในลิ้งค์เอานะครับ)

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

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #2 on: March 14, 2022, 09:44:26 am »
                                                            The additional Setup

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

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

(ดูรูปภาพในลิ้งค์เอานะครับ)

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #3 on: March 14, 2022, 09:59:04 am »
ตอนนี้ เราต้องรวม(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 นี้.

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #4 on: March 14, 2022, 10:13:47 am »
ตอนนี้เราต้องก๊อปปี้(copy)สิ่งที่บรรจุอยู่ภายในโฟลเดอร์ลงใน project ของเรา.

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

(ดูรูปภาพในลิ้งค์เอานะครับ)

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

(ดูรูปภาพในลิ้งค์เอานะครับ)

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #5 on: March 14, 2022, 10:20:47 am »
ตอนนี้ขั้นตอนสุดท้ายคือเอา the fsdata.c ออกจากการ build.

(ดูรูปภาพในลิ้งค์เอานะครับ)

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

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

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #6 on: March 14, 2022, 10:28:05 am »
                                                        Some Insight into the CODE

#include "lwip/apps/httpd.h"

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

(ดูตัวอย่างโปรแกรมในลิ้งค์เอานะครับ)

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

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

*

Online tha

  • *****
  • 3533
    • View Profile
Re: STM32 ETHERNET #6. HTTP WEBSERVER SIMPLE
« Reply #7 on: March 14, 2022, 10:40:09 am »
                                                            Result

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

(ดูรูปภาพในลิ้งค์เอานะครับ)

(ดูวีดีโอในลิ้งค์เอานะครับ)