littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Arduino的Teensy4.1异步文件系统Web服务器

项目简介

本项目基于Arduino的AsyncFSWebServer_Teensy41库,此库由AsyncWebServer_Teensy41库修改而来。其目标是支持Teensy 4.1利用QNEthernet和多种文件系统(如PSRAM、S、(Q)SPI Flash等)构建异步文件系统Web服务器。该库借鉴了Hristo Gochkov的ESPAsyncWebServer的异步特性,并应用于Teensy 4.1的内置以太网功能。

项目的主要特性和功能

特性

  • 异步处理:能同时处理多个连接,请求准备好并解析后才回调,发送响应时可立即处理其他连接。
  • 高性能:处理速度快,有简单易用的API,支持HTTP Basic和Digest MD5认证、ChunkedResponse。
  • 扩展性强:便于扩展以处理任何类型内容,支持Continue 100。
  • 插件丰富:包含Async WebSocket插件、Async EventSource插件、URL Rewrite插件、ServeStatic插件和简单模板处理引擎。

功能

  • 请求处理:支持处理常见请求变量(如版本、方法、URL等)、请求头、GET/POST/FILE参数以及JSON体。
  • 响应类型多样:支持重定向、带HTTP代码响应、带内容和额外头信息响应、从流响应、使用回调响应、分块响应等,还支持模板处理。
  • 参数重写与过滤:可进行参数重写匹配,用过滤器控制重写和处理逻辑。
  • 插件功能:
    • Async WebSocket插件:可定义不同WebSocket连接位置,支持多种数据发送方法,可限制客户端数量。
    • Async Event Source插件:用于向浏览器发送短文本事件。

安装使用步骤

前提条件

安装Teensy core v1.57+

安装步骤

使用Arduino库管理器

在Arduino IDE中,通过库管理器搜索AsyncFSWebServer_Teensy41,选择并安装最新版本。

手动安装

  1. 解压该文件到AsyncFSWebServer_Teensy41-main目录。
  2. 将整个AsyncFSWebServer_Teensy41-main文件夹复制到Arduino库目录,如~/Arduino/libraries/

使用VS Code和PlatformIO

  1. 安装VS Code
  2. 安装PlatformIO
  3. 通过库管理器安装AsyncFSWebServer_Teensy41库。
  4. 使用示例中的platformio.ini文件确保所有依赖库自动安装。

包补丁

若要在Teensy板上编译运行,需将Packages_Patches for Teensy目录中的文件复制到Teensy硬件目录(如./arduino-1.8.19/hardware/teensy/avr/boards.txt)。每次安装新版本时,都要将文件复制到新的版本目录。

使用步骤

可参考项目中的示例代码,如Async_AdvancedWebServerAsync_HelloServer等,了解如何设置服务器、处理请求和响应等。同时,要注意这是一个完全异步的服务器,不能在回调函数中使用yield()delay()或任何使用它们的函数,且不能对单个请求发送多个响应。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】