03 WIFI连接外部网络,支持以太网lan模式为其他以太网设备提供接入,支持生成WiFi热点为WiFi终端设备提供接入
作者:王城钧 | 最后修改:2026-04-30
一、多网融合概述
Air8000 核心板通过多网融合技术实现以太网、4G 与 WiFi 网络的协同工作,构建高效、稳定的物联网通信与定位系统。本篇以 WIFI 连接外部网络,支持以太网 lan 模式为其他以太网设备提供接入,支持生成 WiFi 热点为 WiFi 终端设备提供接入

二、准备硬件环境
Air8000 核心板一块 + 可上网的 sim 卡一张 + 网线一根 +AirETH_1000 配件板一个,硬件连接示意图,如下图所示:

TYPE-C USB 数据线一根 + 杜邦线若干;
- Air8000 核心板通过 TYPE-C USB 口供电;(USB 供电 拨动开关 拨到 USB ON 一端,充电供电 拨码开关 选择充电)
- TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
- AirETH_1000 板子网口与电脑网口通过网线连接;
3、Air8000 核心板和 AirETH_1000 配件板的硬件接线方式为:
| Air8000核心板 | AirETH_1000配件板 |
|---|---|
| vdd | 3.3v |
| gnd | gnd |
| spi1_sclk | SCK |
| spi1_cs | CSS |
| spi1_miso | SDO |
| spi1_mosi | SDI |
| gpio16 | INT |
三、准备软件环境
3.1 文章内容应用
-
烧录工具:Luatools 工具
-
Air8000 烧录需要的固件和脚本文件:
内核固件:
本demo开发测试时使用的固件为Air8000 V2012 版本固件,本demo对固件版本没有什么特殊要求,所以你如果要测试本demo时,可以直接使用最新版本的内核固件;如果发现最新版本的内核固件测试有问题,可以使用我们开发本demo时使用的内核固件版本来对比测试;
准备好软件环境之后,接下来查看 Air8000 核心板使用说明将本篇文章中演示使用的项目文件烧录到 Air8000 核心板中。
- LuatOS 运行所需要的 lib 文件:
使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件。
3.2 API 介绍
本文仅介绍程序中使用到的 API 接口,详细接口说明请查看:核心库 API 索引 - luatos@air8000 - 合宙模组资料中心。
exnetif.setproxy(adapter, main_adapter, other_configs)
配置网络代理实现多网融合;
四、实现功能概述
1、开启多网融合模式,WIFI 连接外部网络,支持以太网 lan 模式为其他以太网设备提供接入,支持生成 WiFi 热点为 WiFi 终端设备提供接入
2、网络监控,每 5 秒进行 HTTPS 连接测试,实时监测 WIFI 网络的连接状态
4.1 运行流程图

4.2 代码示例
netif_app.lua
exnetif = require "exnetif"
function netif_app_task_func()
local res
--设置多网融合功能,wifi提供网络供以太网设备上网
res = exnetif.setproxy(socket.LWIP_ETH, socket.LWIP_STA, {
ethpower_en = 140, -- 以太网模块的pwrpin引脚(gpio编号)
tp = netdrv.CH390, -- 网卡芯片型号(选填参数),仅spi方式外挂以太网时需要填写。
opts = { spi = 1, cs = 12, irq = 16 }, -- 外挂方式,需要额外的参数(选填参数),仅spi方式外挂以太网时需要填写。
main_adapter = { -- 提供网络的网卡开启参数
ssid = "iPhone",
password = "hz88888888"
}
})
-- 设置多网融合功能,wifi提供网络供wifi设备上网
res = exnetif.setproxy(socket.LWIP_AP, socket.LWIP_STA, {
ssid = "test2", -- AP热点名称(string),网卡包含wifi时填写
password = "HZ88888888", -- AP热点密码(string),网卡包含wifi时填写
-- ap_opts = { -- AP模式下配置项(选填参数)
-- hidden = false, -- 是否隐藏SSID, 默认false,不隐藏
-- max_conn = 4 }, -- 最大客户端数量, 默认4
-- channel = 6, -- AP建立的通道, 默认6
main_adapter = { -- 提供网络的网卡开启参数
ssid = "iPhone",
password = "hz88888888"
}
})
if res then
log.info("exnetif", "setproxy success")
else
log.info("开启失败,请检查配置项是否正确,日志中是否打印了错误信息")
end
-- 每5秒进行HTTPS连接测试,实时监测wifi网络连接状态, 仅供测试需要,量产不需要,用来判断当前网络是否可用,需要的话可以打开注释
-- while true do
-- local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {
-- adapter = socket.LWIP_STA,
-- timeout = 5000,
-- debug = false
-- }).wait()
-- log.info("http执行结果", code, headers, body and #body)
-- sys.wait(5000)
-- end
end
sys.taskInit(netif_app_task_func)
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_out_ethernet_in_wifi_in"
VERSION = "001.000.000"
-- 在日志中打印项目名和项目版本号
log.info("main", PROJECT, VERSION)
-- 如果内核固件支持wdt看门狗功能,此处对看门狗进行初始化和定时喂狗处理
-- 如果脚本程序死循环卡死,就会无法及时喂狗,最终会自动重启
if wdt then
--配置喂狗超时时间为9秒钟
wdt.init(9000)
--启动一个循环定时器,每隔3秒钟喂一次狗
sys.timerLoopStart(wdt.feed, 3000)
end
-- 如果内核固件支持errDump功能,此处进行配置,【强烈建议打开此处的注释】
-- 因为此功能模块可以记录并且上传脚本在运行过程中出现的语法错误或者其他自定义的错误信息,可以初步分析一些设备运行异常的问题
-- 以下代码是最基本的用法,更复杂的用法可以详细阅读API说明文档
-- 启动errDump日志存储并且上传功能,600秒上传一次
-- if errDump then
-- errDump.config(true, 600)
-- end
-- 使用LuatOS开发的任何一个项目,都强烈建议使用远程升级FOTA功能
-- 可以使用合宙的iot.openluat.com平台进行远程升级
-- 也可以使用客户自己搭建的平台进行远程升级
-- 远程升级的详细用法,可以参考fota的demo进行使用
-- 启动一个循环定时器
-- 每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况
-- 方便分析内存使用是否有异常
-- sys.timerLoopStart(function()
-- log.info("mem.lua", rtos.meminfo())
-- log.info("mem.sys", rtos.meminfo("sys"))
-- end, 3000)
-- 开启多网融合功能
require "netif_app"
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
五、功能演示
5.1 开启 WIFI 热点
如图,设置 WIFI 热点,ssid:iPhone,password:hz88888888(实际测试时根据自己的 WIFI 热点进行修改)

5.2 Air8000 核心板连接以太网
实现功能前,首先需要将 Air8000 通过网线连接到电脑网口。

5.3 烧录代码 查看日志
硬件连接完毕后开始烧录代码,烧录完毕后,在 luatools 日志打印中我们可以看到 WIFI STA 的打印。

等待以太网就绪。

数据开始传输。

测试可以正常打开网页。

同时可以在电脑的联网界面可以看到我们 Air8000 的热点,热点名称为:test2,密码为:HZ88888888

连接上之后,能看到我们成功使用 Air8000 的 WiFi 热点在网页上搜索到信息。

六、总结
至此,我们已使用 Air8000 核心板 演示了多网融合 WIFI 连接外部网络,支持以太网 lan 模式为其他以太网设备提供接入,支持生成 WiFi 热点为 WiFi 终端设备提供接入的功能