|
|
@@ -0,0 +1,196 @@
|
|
|
+## 演示功能概述
|
|
|
+
|
|
|
+### 1.1 HTTPSVR 文件管理系统概述
|
|
|
+
|
|
|
+HTTPSVR 文件管理系统是一种基于Air8101模组的轻量级文件服务器解决方案,通过AP创建WiFi热点并提供HTTP服务,使用户可以通过浏览器方便地浏览、管理和下载设备内部存储及SD卡中的文件。
|
|
|
+
|
|
|
+### 1.2 系统工作原理
|
|
|
+
|
|
|
+设备启动后,自动创建AP热点(可选为手动按键控制),并初始化SD卡挂载。同时启动HTTP服务器,提供文件列表浏览、文件下载等功能。用户只需连接到设备的WiFi热点,通过浏览器访问指定IP地址,即可查看和管理设备中的文件。
|
|
|
+
|
|
|
+### 1.3 核心功能特性
|
|
|
+
|
|
|
+- **任务控制**:通过默认配置和GPIO按键控制是否启停文件管理任务
|
|
|
+- **热点创建**:设备自动创建名为`LuatOS_FileHub`的WiFi热点,供用户连接
|
|
|
+- **SD卡管理**:自动挂载SD卡,支持浏览和下载SD卡中的文件
|
|
|
+- **文件浏览**:通过浏览器查看设备内部存储和SD卡中的文件列表
|
|
|
+- **文件操作**:支持文件浏览、下载和删除功能
|
|
|
+- **用户认证**:提供简单的用户名密码认证机制,保护文件安全
|
|
|
+
|
|
|
+本示例基于合宙 Air8101 模组,演示 **AP + 文件服务器** 的完整实现流程。用户连接到设备WiFi热点后,通过浏览器即可访问文件管理系统,实现文件的浏览和下载功能。
|
|
|
+
|
|
|
+#### 1、系统控制方式
|
|
|
+
|
|
|
+- **自动启动模式**:在task_control.lua中设置`AUTO_START=true`,系统开机后会自动创建AP热点、初始化SD卡并启动HTTP文件服务器
|
|
|
+- **手动控制模式**:默认设置`AUTO_START=false`,通过短按GPIO5来控制系统的启动和停止
|
|
|
+
|
|
|
+#### 2、初始化AP热点
|
|
|
+
|
|
|
+使用 wlan.createAP() 创建WiFi AP热点,默认配置为名称"LuatOS_FileHub",密码"12345678"。
|
|
|
+
|
|
|
+#### 3、SD卡初始化与挂载
|
|
|
+
|
|
|
+- 配置SPI接口,初始化SD卡
|
|
|
+- 将SD卡挂载到文件系统,挂载点为`/sd`
|
|
|
+- 检测SD卡可用空间,列出根目录文件
|
|
|
+
|
|
|
+#### 4、启动HTTP服务器
|
|
|
+
|
|
|
+- 配置服务器端口为80
|
|
|
+- 实现文件列表、文件下载和删除等API
|
|
|
+- 支持直接文件URL访问和通过explorer.html界面操作
|
|
|
+
|
|
|
+#### 5、文件访问路径映射
|
|
|
+
|
|
|
+- 访问普通文件(如 `http://192.168.4.1/explorer.html/456.txt`)映射到内部存储 `/luadb/456.txt`
|
|
|
+- 访问SD卡文件(如 `http://192.168.4.1/explorer.html/sd/readme.md`)映射到SD卡路径 `/sd/readme.md`
|
|
|
+
|
|
|
+#### 6、安全认证机制
|
|
|
+
|
|
|
+- 默认用户名:admin
|
|
|
+- 默认密码:123456
|
|
|
+- 支持通过Cookie保持会话
|
|
|
+- 支持通过URL参数进行一次性认证
|
|
|
+
|
|
|
+#### 7、运行效果
|
|
|
+
|
|
|
+- **WiFi创建成功**:手机/电脑可搜索到`LuatOS_FileHub`热点
|
|
|
+- **服务器启动成功**:连接热点后访问`http://192.168.4.1/explorer.html`可进入文件管理界面
|
|
|
+- **文件浏览**:可查看设备内部存储和SD卡中的文件列表
|
|
|
+- **文件下载**:点击文件或通过直接URL可下载文件到本地
|
|
|
+
|
|
|
+#### 8、快速上手
|
|
|
+
|
|
|
+- **自动启动模式**:当 task_control.lua 中设置`AUTO_START=true`时,设备上电后会自动创建AP热点、初始化SD卡并启动HTTP文件服务器,无需手动操作
|
|
|
+- **手动控制模式**:默认设置`AUTO_START=false`,设备上电后仅初始化按键功能,等待用户操作
|
|
|
+
|
|
|
+**手动控制模式操作步骤:**
|
|
|
+1. 烧录固件后上电,设备初始化按键功能,等待按键初始化完毕日志中会输出"系统已就绪,等待按键触发"的打印
|
|
|
+2. 通过拉低GPIO5,设备自动创建WiFi热点并启动文件服务器
|
|
|
+3. 使用手机或电脑连接到`LuatOS_FileHub`热点(密码:12345678)
|
|
|
+4. 打开浏览器,输入`http://192.168.4.1/explorer.html`访问文件管理系统
|
|
|
+5. 使用用户名`admin`和密码`123456`登录
|
|
|
+6. 浏览文件列表,点击文件可直接下载
|
|
|
+7. 再次拉低GPIO5可停止文件服务器服务
|
|
|
+
|
|
|
+**自动启动模式操作步骤:**
|
|
|
+1. 修改task_control.lua文件,将`AUTO_START`值设置为`true`
|
|
|
+2. 烧录固件后上电,设备会自动初始化并启动所有服务
|
|
|
+3. 使用手机或电脑连接到`LuatOS_FileHub`热点(密码:12345678)
|
|
|
+4. 打开浏览器,输入`http://192.168.4.1/explorer.html`访问文件管理系统
|
|
|
+5. 使用用户名`admin`和密码`123456`登录
|
|
|
+6. 浏览文件列表,点击文件可直接下载
|
|
|
+
|
|
|
+## 演示硬件环境
|
|
|
+
|
|
|
+1、Air8101核心板一块
|
|
|
+
|
|
|
+2、TYPE-C USB数据线一根
|
|
|
+
|
|
|
+3、micro SD卡一张(可选,用于扩展存储)
|
|
|
+
|
|
|
+## 演示软件环境
|
|
|
+
|
|
|
+1、Luatools下载调试工具
|
|
|
+
|
|
|
+2、[Air8101最新版本固件](https://docs.openluat.com/air8101/luatos/firmware/)(需确保固件版本≥V1004)
|
|
|
+
|
|
|
+## 演示核心步骤
|
|
|
+
|
|
|
+1、搭建好硬件环境,如果需要测试SD卡功能,需要外挂SD卡来测试。
|
|
|
+
|
|
|
+2、确保explorer.html文件已烧录到设备中,这是文件管理系统界面的必要文件。
|
|
|
+
|
|
|
+3、通过Luatools将本工程代码与固件烧录到Air8101核心板中
|
|
|
+
|
|
|
+4、烧录完成后,给设备上电,观察串口日志确认系统正常启动
|
|
|
+
|
|
|
+**两种启动模式效果说明:**
|
|
|
+
|
|
|
+- **自动启动模式**(默认AUTO_START=true):上电后系统会自动创建AP热点、初始化SD卡并启动HTTP服务器,无需手动拉低GPIO5即可使用文件管理系统功能。
|
|
|
+- **手动控制模式**(需修改AUTO_START=false):上电后系统仅初始化按键功能,日志显示"系统已就绪,等待按键触发",需要手动拉低GPIO5才会启动文件管理系统服务。
|
|
|
+
|
|
|
+手动控制模式下的启动日志示例:
|
|
|
+
|
|
|
+```lua
|
|
|
+[000000000.497] I/user.main 系统已就绪,等待按键触发
|
|
|
+```
|
|
|
+
|
|
|
+5、拉低GPIO5,启动文件管理系统。
|
|
|
+
|
|
|
+```lua
|
|
|
+系统启动,创建AP:
|
|
|
+[000000000.434] I/user.main WIFI_AP_READ_FILE 001.000.000
|
|
|
+[000000000.441] I/user.WIFI 创建AP热点: LuatOS_FileHub
|
|
|
+[000000000.496] I/user.执行AP创建操作 true 正常吗?
|
|
|
+
|
|
|
+AP创建成功,开始挂载SD卡:
|
|
|
+[000000000.511] I/user.SDCARD 开始初始化SD卡
|
|
|
+[000000000.511] SPI_HWInit 552:spi1 speed 400000,400000,32
|
|
|
+[000000000.512] I/user.sdcard_init open spi 0
|
|
|
+[000000000.512] D/fatfs init sdcard at spi=1 cs=20
|
|
|
+[000000000.678] D/SPI_TF 卡容量 15558144KB
|
|
|
+[000000000.678] D/SPI_TF sdcard init OK OCR:0xc0ff8000!
|
|
|
+[000000000.684] I/user.SDCARD 挂载SD卡结果: true
|
|
|
+[000000000.685] I/user.fatfs 可用空间 {"free_sectors":31098752,"total_kb":15549952,"free_kb":15549376,"total_sectors":31099904}
|
|
|
+[000000000.685] I/user.SDCARD SD卡初始化完成
|
|
|
+
|
|
|
+SD卡挂载完毕,开始启动系统:
|
|
|
+[000000002.632] I/httpsrv http listen at 192.168.4.1:80
|
|
|
+[000000002.632] I/user.HTTP 文件服务器已启动
|
|
|
+[000000002.632] I/user.HTTP 请连接WiFi: LuatOS_FileHub,密码: 12345678
|
|
|
+[000000002.633] I/user.HTTP 然后访问: http://192.168.4.1:80
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+6、在手机或电脑的WiFi设置中,搜索并连接名为`LuatOS_FileHub`的热点,密码为`12345678`
|
|
|
+
|
|
|
+7、连接成功后,打开浏览器,在地址栏输入`http://192.168.4.1/explorer.html`,进入文件管理系统登录页面
|
|
|
+
|
|
|
+8、输入默认用户名`admin`和密码`123456`,点击登录
|
|
|
+
|
|
|
+9、登录成功后,即可查看设备内部存储和SD卡中的文件列表
|
|
|
+
|
|
|
+10、点击文件列表中文件名后的 **`下载`** 或 **`删除`** 按钮,进行相应操作
|
|
|
+
|
|
|
+11、也可以在地址栏直接输入文件URL(如`http://192.168.4.1/456.txt`)下载文件到本地
|
|
|
+
|
|
|
+12、如需要访问SD卡中的文件,点击网页左上角的 `TF/SD目录` ,即可切换到SD卡目录中
|
|
|
+
|
|
|
+13、在手动控制模式下,再次拉低GPIO5按键,可停止文件管理系统服务,日志会输出停止状态信息
|
|
|
+
|
|
|
+## 系统参数说明
|
|
|
+
|
|
|
+### AP参数
|
|
|
+
|
|
|
+- SSID:LuatOS_FileHub
|
|
|
+- 密码:12345678
|
|
|
+- 信道:6
|
|
|
+- 最大连接数:4
|
|
|
+- IP地址:192.168.4.1
|
|
|
+
|
|
|
+### 认证参数
|
|
|
+
|
|
|
+- 默认用户名:admin
|
|
|
+- 默认密码:123456
|
|
|
+- 会话超时:3600秒(1小时)
|
|
|
+
|
|
|
+### HTTP服务器参数
|
|
|
+
|
|
|
+- 端口:80
|
|
|
+- 支持范围:文件浏览、文件下载
|
|
|
+- 访问地址:<http://192.168.4.1/explorer.html>
|
|
|
+
|
|
|
+## 注意事项
|
|
|
+
|
|
|
+1、本示例默认使用内部存储路径`/luadb/`和SD卡路径`/sd/`,请确保文件确实存在于对应路径
|
|
|
+
|
|
|
+2、使用SD卡时,请确保卡片格式为FAT32格式,实测最大容量支持1T
|
|
|
+
|
|
|
+3、确认LuatOS/script/libs扩展库目录下**explorer.html**文件烧录到设备中,否则**无法启动**SERVER服务器;
|
|
|
+
|
|
|
+4、SD卡目录下文件夹名称不能为中文,否则会识别失败,无法下载文件夹中文件
|
|
|
+
|
|
|
+5、如需修改WiFi名称、密码或认证信息,请修改`exremotefile.open()`配置文件中的相关参数
|
|
|
+
|
|
|
+6、如遇到无法连接WiFi热点或访问文件系统的情况,请检查设备电源和固件是否正常
|