Air8101-WiFi AP 文件管理系统
作者:拓毅恒 | 最后修改:2026-04-09
一、WiFi AP 文件管理系统概述
本文档介绍基于 Air8101 工业引擎实现的 WiFi AP 文件管理系统功能,通过该功能可以将设备变身为一个轻量级的文件服务器,用户只需连接到设备创建的 WiFi 热点,即可通过浏览器方便地浏览、管理和下载设备内部存储及 SD 卡中的文件。
1.1 工作原理
Air8101 工业引擎支持两种 WiFi 无线网络工作模式:
-
AP 模式:
-
AP 是 Access Point 的缩写,即无线接入点,作为无线网络的中心节点
- 设备工作在 AP 模式时,可以创建一个 WiFi 热点,供其他设备连接
-
其他设备连接到该热点后,可以直接与 Air8101 进行通信
-
STA 模式:
-
STA 是 Station 的缩写,它是无线网络中的一个终端站点设备
- 处于 STA 模式下的设备连接到 AP 节点进行网络访问
本项目利用 Air8101 的 AP 模式,创建 WiFi 热点并启动 HTTP 服务器,实现文件的远程访问和下载功能。
1.2 系统架构
WiFi AP 文件管理系统由以下核心组件构成:
- WiFi AP 模块:创建名为
LuatOS_FileHub的 WiFi 热点 - SD 卡管理模块:挂载和管理 SD 卡存储
- HTTP 服务器:提供文件列表浏览和下载功能
- 任务控制模块:管理系统的启动和停止
二、准备硬件环境
参考:Air8101 硬件环境清单,准备好硬件环境。
2.1 Air8101 核心板
本功能测试需要使用 Air8101 核心板 + AirMICROSD_1010 配件板

2.2 Air8101 核心板 +AirMICROSD_1010 配件板的硬件接线
Air8101 核心板和 AirMICROSD_1010 配件板的硬件接线方式为:
| Air8101核心板 | AirMICROSD_1010配件板 |
|---|---|
| 59/3V3 | 3V3 |
| gnd | gnd |
| 65/GPIO2 | spi_clk |
| 67/GPIO4 | spi_mosi |
| 66/GPIO3 | spi_cs |
| 8/GPIO5 | spi_miso |

2.3 PC 电脑
WIN10 以及以上版本的 WINDOWS 系统;
2.4 数据通信线
USB 数据线(其一端为 Type-C 接口,用于连接 Air8101)。
2.5 SD/TF 卡
在各位选择使用的 TF 卡时,我们建议不要使用白牌卡,尽量选择大品牌的主流 TF 卡。

三、准备软件环境
3.1 文章内容应用
在开始实践本示例之前,先筹备一下软件环境:
1. 烧录工具:Luatools 工具;
2. 本demo开发测试时使用的固件为Air8101 V2010 版本固件,本demo对固件版本没有什么特殊要求,所以你如果要测试本demo时,可以直接使用最新版本的内核固件;如果发现最新版本的内核固件测试有问题,可以使用我们开发本demo时使用的内核固件版本来对比测试;
3. 脚本文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8101/project/wifi_ap_read_file
4. LuatOS 运行所需要的 lib 文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件。
准备好软件环境之后,接下来查看 Air8101 产品手册中“Air8101 核心板使用手册 -> 使用说明”,将本篇文章中演示使用的项目文件烧录到 Air8101 核心板中。
3.2 API 介绍
这里仅介绍本项目所使用的主要 API:
exremotefile.open()
打开远程文件管理系统
exremotefile.close()
关闭远程文件管理系统
四、功能实现
4.1 功能概述
本项目实现的核心功能包括:
- 任务控制:通过 boot 按键控制文件管理系统的启停
- 热点创建:自动创建名为
LuatOS_FileHub的 WiFi 热点 - 文件服务:启动 HTTP 服务器,提供文件浏览和下载功能
- 用户认证:提供简单的用户名密码认证机制
- SD 卡支持:自动挂载并管理 SD 卡中的文件
4.2 代码结构
项目代码结构清晰,主要由以下几个文件组成:
- main.lua:主入口文件,初始化系统环境
- task_control.lua:控制系统服务的启动和停止
- check_wifi.lua:检查和升级 WiFi 固件(可选)
- 456.txt:示例文件,用于演示文件下载功能
4.3 核心代码示例
main.lua(主入口文件)
--[[
必须定义PROJECT和VERSION变量,Luatools工具会用到这两个变量,远程升级功能也会用到这两个变量
PROJECT:项目名,ascii string类型
可以随便定义,只要不使用,就行
VERSION:项目版本号,ascii string类型
如果使用合宙iot.openluat.com进行远程升级,必须按照"XXX.YYY.ZZZ"三段格式定义:
X、Y、Z各表示1位数字,三个X表示的数字可以相同,也可以不同,同理三个Y和三个Z表示的数字也是可以相同,可以不同
因为历史原因,YYY这三位数字必须存在,但是没有任何用处,可以一直写为000
如果不使用合宙iot.openluat.com进行远程升级,根据自己项目的需求,自定义格式即可
]]
PROJECT = "WIFI_AP_READ_FILE"
VERSION = "001.000.000"
-- 在日志中打印项目名和项目版本号
log.info("main", PROJECT, VERSION)
-- 如果内核固件支持wdt看门狗功能,此处对看门狗进行初始化和定时喂狗处理
-- 如果脚本程序死循环卡死,就会无法及时喂狗,最终会自动重启
if wdt then
--配置喂狗超时时间为9秒钟
wdt.init(9000)
--启动一个循环定时器,每隔3秒钟喂一次狗
sys.timerLoopStart(wdt.feed, 3000)
end
-- 引入任务控制模块
require "task_control"
-- 结尾总是这一句
sys.run()
task_control.lua(任务控制模块)
-- 控制模式配置:
-- 1. 自动启动系统:在代码中将AUTO_START设置为true(默认)
-- 2. 手动控制系统:在代码中将AUTO_START设置为false,通过杜邦线短接GPIO5与GND然后断开,切换系统状态
-- 导入exremotefile库
local exremotefile = require "exremotefile"
local AUTO_START = true -- 默认使用自动启动方式
-- 系统状态变量
local is_running = false -- 标记系统是否正在运行
-- 启动系统服务
local function start_services()
if not is_running then
log.info("main", "启动系统服务")
-- 自定义参数启动(使用8101核心板)
-- 启动后连接默认AP热点,访问日志中的地址"http://192.168.4.1:80/explorer.html"来访问文件管理服务器。
exremotefile.open(nil, {is_sdio = true})
-- exremotefile.open()
is_running = true
log.info("main", "系统服务启动完成")
end
end
-- 停止系统服务
local function stop_services()
if is_running then
log.info("main", "停止系统服务")
-- 关闭远程文件管理系统
exremotefile.close()
is_running = false
log.info("main", "系统服务已停止")
end
end
-- 初始化按键,这里选取GPIO5作为功能键
local function press_key()
log.info("GPIO press")
sys.publish("PRESS", true)
end
gpio.setup(5, press_key, gpio.PULLUP, gpio.BOTH)
-- gpio.debounce(5, 100, 1) -- 实际设计板子时,根据自己的需求可以更改防抖配置以及打开防抖
local function config_services()
-- 根据配置决定是否自动启动服务
if AUTO_START then
start_services()
else
log.info("main", "系统已就绪,等待按键触发")
end
while true do
sys.waitUntil("PRESS")
-- 切换系统状态
if is_running then
stop_services()
else
start_services()
end
end
end
sys.taskInit(config_services)
五、功能演示
5.1 启动系统
- 烧录内核固件 + 脚本后自动开机,设备初始化按键功能

- 观察日志,等待"启动系统服务"的提示


5.2 连接 WiFi 热点
使用手机或电脑搜索并连接名为 LuatOS_FileHub 的 WiFi 热点,密码为 12345678

5.3 访问文件管理系统
连接热点后,打开浏览器,输入 http://192.168.4.1/explorer.html 访问文件管理系统

5.4 用户认证
使用默认用户名 admin 和密码 123456 登录文件管理系统

5.5 浏览和下载文件
登录成功后,可以查看设备内部存储和 SD 卡中的文件列表,点击文件可直接下载

5.6 示例文件访问
项目中包含一个示例文件:
- 456.txt:文本文件
可以通过文件管理系统直接下载这些文件进行测试

六、总结
本文档详细介绍了基于 Air8101 工业引擎的 WiFi AP 文件管理系统实现方法。通过简单的配置和操作,用户可以快速将设备变为一个轻量级的文件服务器,实现文件的远程浏览和下载功能。
系统具有以下特点:
- 操作简单:通过默认配置和 GPIO 按键控制是否启停文件管理任务
- 使用方便:用户只需连接 WiFi 热点,通过浏览器即可访问
- 功能实用:支持文件浏览和下载,支持 SD 卡扩展存储
- 安全可靠:提供用户认证机制,保护文件安全
该系统适用于需要远程访问设备文件的场景,如设备配置、日志查看、数据导出等应用。
七、常见问题
7.1 无法连接 WiFi 热点
确保设备已成功启动系统服务(观察串口日志),检查热点名称和密码是否正确。
7.2 无法访问文件管理系统
确认设备已连接到正确的 WiFi 热点,检查浏览器输入的 URL 是否正确(http://192.168.4.1/explorer.html)。
7.3 登录失败
默认用户名:admin,默认密码:123456,请确保输入正确。
7.4 无法识别 SD 卡
确保 SD 卡格式正确(建议使用 FAT32 格式),检查 SD 卡是否正确插入。