Skip to content

网络配置 ​

概述: 网络配置模块管理 WiFi AP/STA、静态 IP 和自定义本地域名。以太网(W5500)、4G 蜂窝(EC801E)需要当前构建环境支持并在功能配置中启用。配置保存在 /config/network.json,首次启动会进入 AP 模式供配网。

本文说明 FastBee-Arduino 的网络配置页面、设备 LittleFS /config/network.json,以及当前支持的各类联网方式。源码中的 data/config/network.json 只是构建文件系统时使用的工厂模板。

当前网络管理以 networkType 决定物理联网通道:

networkType联网方式典型硬件适用场景说明
0WiFiESP32 内置 WiFi默认推荐、普通局域网、首次配网支持 STA 或 AP 模式
1以太网W5500 SPI 转以太网模块固定安装、弱 WiFi 环境、低延迟局域网需要启用以太网编译开关
24G 蜂窝EC801E-CN 模块无有线/无线局域网的现场部署通过 UART 和 APN 接入运营商网络

说明:esp32-F8R0/F8R8 与 ESP32-S3 发布环境编译了以太网和 4G,连接 W5500 或 EC801E-CN 后还需在“功能配置”中启用。esp32-F4R0、ESP32-C3 和 ESP32-C6 发布环境未编译这两项,页面会标注“未编译入固件”;确有需要时应新增并验证专用构建环境。

界面预览 ​

网络配置页面按基础、热点和高级配置拆分。现场修改前先确认当前 IP 和连接状态,修改 STA/AP、静态 IP 或联网方式后通常需要等待网络重连。

开发候选的高级配置随所选联网方式显示适用分组:WiFi显示静态IP、域名和连接设置;以太网显示静态IP和域名;4G隐藏这三组,使用蜂窝模块/APN配置。切回原方式会恢复分组,隐藏不会清空已填参数。静态IP组内再由DHCP选择决定地址输入项是否可见。该切换已在离线浏览器回归通过,现场设备是否具备修复仍以部署版本为准。

网络基础配置

热点配置

网络高级配置

联网配置建议按下图排查:先确认设备启动和已保存配置,再观察 STA 联网、AP 回退、IP 获取和协议上线状态。

配置入口 ​

Web 界面路径:网络设置

设备运行时配置保存到:

text
/config/network.json

常用 API:

API用途
GET /api/network/config读取网络配置
POST /api/network/config保存网络配置
GET /api/network/status读取当前网络状态
GET /api/wifi/scan扫描附近 WiFi

保存配置后,如果修改了联网方式、WiFi 模式、SSID 或 IP 类型,系统会标记需要重启网络。前端会提示等待设备重新连接。

手机/移动端 AP 配网 API ​

设备在 AP 模式下提供专用的配网接口,供手机 App 或移动端调用完成 WiFi 配置和设备参数下发。配网接口仅在AP模式,或APSTA且STA未连接时允许匿名访问;其它模式与已连接状态需登录认证。应核对当前网络状态,不能长期作为无认证接口调用。

配网接口一览 ​

方法路径用途
GET/api/wifi/scan扫描附近 WiFi 网络
POST/api/wifi/connect连接 WiFi 并下发设备参数
GET/api/wifi/status检测设备当前状态(设备信息 + 网络状态)
POST/api/wifi/config配网接口,保存 WiFi 和设备参数并切换 STA

GET /api/wifi/scan ​

扫描附近 WiFi 网络,返回可用网络列表。

请求参数:无

响应示例:

json
{
  "success": true,
  "networks": [
    { "ssid": "OfficeWiFi", "rssi": -45, "channel": 6, "encrypted": true },
    { "ssid": "GuestOpen", "rssi": -80, "channel": 1, "encrypted": false }
  ],
  "count": 2
}

响应字段说明:

字段类型说明
successbool请求是否成功
networksarrayWiFi 网络列表
networks[].ssidstring网络名称
networks[].rssiint信号强度(dBm)
networks[].channelintWiFi 信道
networks[].encryptedbool是否加密
countint网络数量

GET /api/wifi/status ​

检测设备当前状态,返回设备基本信息和网络连接状态。适用于手机端在配网前探测设备信息和当前网络模式。

请求参数:无

响应示例:

json
{
  "success": true,
  "data": {
    "deviceName": "fastbee",
    "deviceId": "",
    "userId": "1",
    "firmwareVersion": "1.0.0",
    "networkMode": "ap",
    "connected": false,
    "ipAddress": "192.168.4.1",
    "apSSID": "fastbee-ap",
    "apIP": "192.168.4.1",
    "macAddress": "AA:BB:CC:DD:EE:FF",
    "chipModel": "ESP32-S3",
    "chipRevision": 0,
    "freeHeap": 180000
  }
}

响应字段说明:

字段类型说明
deviceNamestring设备名称(来自 device.json)
deviceIdstring设备 ID(来自 device.json)
userIdstring用户 ID(来自 device.json)
firmwareVersionstring固件版本号
networkModestring当前网络模式:ap / sta / apsta
connectedbool是否已连接 WiFi(STA 模式)
ipAddressstring当前 IP 地址(STA 连接时为本地 IP,AP 模式为热点 IP)
ssidstring已连接的 WiFi 名称(仅 STA 已连接时)
rssiintWiFi 信号强度(仅 STA 已连接时)
apSSIDstring设备热点名称
apIPstring设备热点 IP
macAddressstring设备 MAC 地址
chipModelstring芯片型号(如 ESP32-S3)
chipRevisionint芯片版本号
freeHeapint可用堆内存(字节)

POST /api/wifi/config ​

配网接口,保存 WiFi 配置和设备参数,配网成功后设备自动切换到 STA 模式连接 WiFi。

与 /api/wifi/connect 的区别:/api/wifi/config 是纯配置下发接口,WiFi 信息写入 network.json、设备信息写入 device.json,随后设备自动重启网络切换到 STA 模式;/api/wifi/connect 功能类似但参数略有差异。

请求参数:

参数必填说明
SSID 或 ssid是WiFi 名称(兼容大小写)
password 或 pwd是WiFi 密码(兼容别名)
userId是用户 ID,保存到 device.json
deviceNum否设备编号,保存到 device.json 的 deviceId 字段
extra否产品编号,保存到 device.json 的 productNumber 字段

成功响应:

json
{
  "success": true,
  "message": "设备已更新WiFi配置,正在连接...",
  "data": {
    "ssid": "your-wifi",
    "mode": 0
  }
}

参数缺失响应(HTTP 400):

json
{
  "success": false,
  "message": "配网必须传递 SSID、WiFi密码和用户编号(userId)"
}

POST /api/wifi/connect ​

连接指定 WiFi 网络,并可同时下发设备参数。配网成功后设备自动切换到 STA 模式。

请求参数:

参数必填说明
ssid是WiFi 名称
password是WiFi 密码
userId否用户ID,保存到 device.json 的 userId 字段
deviceNum否设备编号,保存到 device.json 的 deviceId 字段
extra否产品编号,仅当为有效正整数时保存到 device.json 的 productNumber 字段

响应示例:

json
{
  "success": true,
  "message": "WiFi configuration saved. Device will restart in STA mode."
}

配网流程 ​

  1. 手机连接设备 AP(apSSID 为空时名称为 设备名-芯片ID前6位,密码 admin123)
  2. 调用 GET http://192.168.4.1/api/wifi/status 获取设备信息和当前网络状态
  3. 调用 GET http://192.168.4.1/api/wifi/scan 获取 WiFi 列表
  4. 用户在手机端选择目标 WiFi 并输入密码
  5. 调用 POST http://192.168.4.1/api/wifi/config 提交配置(必须包含 SSID、password、userId)
  6. 设备保存配置(WiFi → network.json,设备参数 → device.json)并自动切换到 STA 模式连接目标 WiFi

首次配网与 AP 回退 ​

设备首次启动或 STA 无法连接时,会进入 AP 热点模式,便于继续访问 Web 管理界面。

默认 AP 参数:

字段说明默认值
apSSID热点名称空值时自动生成;恢复出厂设置后为 fastbee-ap
apPassword热点密码admin123
apChannelWiFi 信道1
apHidden是否隐藏 SSIDfalse
apMaxConnections最大客户端数4
AP IP管理地址192.168.4.1

如果 apSSID 为空,代码会使用 deviceName + "-" + ChipID前6位 生成热点名称。

WiFi 自动恢复机制 ​

当设备原本配置为 STA 模式但因 WiFi 连接失败自动回退到 AP 模式后,设备会定期探测已配置的 WiFi 是否恢复,一旦 WiFi 可用,自动切回 STA 模式并恢复 MQTT 等协议连接。

两种 AP 模式的区别 ​

场景自动探测 WiFi行为说明
用户主动设置 AP 模式不探测AP 热点稳定运行,不受干扰
STA 失败自动回退 AP定期探测WiFi 恢复后自动切回 STA

探测策略 ​

参数值说明
正常探测间隔2 分钟WiFi 刚失败时,每 2 分钟尝试一次
退避探测间隔5 分钟连续失败 3 次后,减少探测频率
单次探测超时10 秒每次尝试连接 WiFi 的最长等待时间
退避阈值3 次连续失败达到此次数后进入退避

恢复流程 ​

探测成功时设备自动执行以下步骤:

  1. 切换回 STA 模式,连接已配置的 WiFi
  2. 恢复自定义本地域名(绑定到 STA IP)
  3. 通知 MQTT 客户端网络已恢复,立即重连
  4. 重置探测失败计数,恢复正常工作状态

探测失败时,AP 热点短暂中断(约 10 秒)后自动恢复。

注意:用户主动设置 AP 模式(mode = 1)时,不会触发任何 WiFi 探测,该恢复机制不主动探测已保存STA;仍需验证实际AP和资源状态。

串口日志标识 ​

日志含义
[WiFi-AP] Probing WiFi [xxx]...正在尝试连接已配置的 WiFi
[WiFi-AP] WiFi recovered! IP: x.x.x.xWiFi 恢复成功,已切回 STA 模式
[WiFi-AP] Probe failed (#N)探测失败,AP 已恢复,N 为连续失败次数
[WiFi-AP] N consecutive probe failures, backing off连续失败达到 3 次后,探测间隔增加到 5 分钟

WiFi 联网 ​

WiFi 是默认联网方式,networkType = 0。

WiFi 模式 ​

mode模式行为
0STA连接外部路由器或热点,正常接入局域网/互联网
1AP设备自建热点,仅用于本地访问和配网

当前前端配置项只提供 STA 和 AP 两种模式。STA 失败时,网络管理器会回退到 AP 模式,提供本地恢复入口;极低内存或底层故障下仍可能不可访问。

STA 配置 ​

字段说明示例
staSSID主 WiFi 名称office-wifi
staPassword主 WiFi 密码password
networks多 SSID 列表见下方示例
connectTimeout首次连接超时,毫秒10000 或 20000
reconnectInterval自动重连间隔,毫秒5000
maxReconnectAttempts最大重连次数5

多 SSID 配置示例:

json
{
  "networks": [
    { "ssid": "factory-main", "password": "pass1", "priority": 0 },
    { "ssid": "factory-backup", "password": "pass2", "priority": 1 }
  ]
}

运行时如果配置了 networks,系统会扫描附近 WiFi,并在已配置的 SSID 中选择更合适的网络;如果扫描不到任何配置项,会退回使用 staSSID / staPassword。

AP 配置 ​

字段说明建议
apSSID设备热点名现场部署时建议包含设备编号
apPassword热点密码WPA/WPA2 至少 8 位;为空可能形成开放热点
apChannel热点信道常用 1、6、11
apHidden隐藏热点名一般不建议隐藏,方便维护
apMaxConnections最大连接数现场维护通常 1-4 即可

AP 模式没有互联网连接,主要用于配置、维护、读取设备本地页面。

IP、DNS 与本地域名 ​

DHCP 与静态 IP ​

ipConfigType模式说明
0DHCP由路由器自动分配 IP,默认推荐
1静态 IP手动指定 IP、网关、子网掩码和 DNS

静态 IP 字段:

字段说明示例
staticIP设备固定 IP192.168.1.50
gateway默认网关192.168.1.1
subnet子网掩码255.255.255.0
dns1主 DNS8.8.8.8
dns2备用 DNS8.8.4.4

DHCP 模式下也可以显式填写 DNS。代码会用 WiFi.config(0,0,0,0,dns1,dns2) 启用 DHCP 并设置 DNS。

自定义本地域名 ​

高级配置只需要填写 customDomain,例如 fastbee。保存后可尝试访问:

text
http://fastbee.local

.local 地址只在同一局域网内有效,并依赖客户端和路由器支持;无法访问时直接使用设备 STA IP。页面不提供独立服务开关或状态跳转,避免让域名设置与网络连接状态混淆。mDNS 机制、多设备域名分配与各联网模式访问方式详见mDNS 网络。

IP 冲突与故障转移 ​

配置结构中保留了 IP 冲突检测与故障转移字段:

字段说明
conflictDetection冲突检测方式,枚举值由 IPConflictMode 定义
failoverStrategy备用 IP 选择策略
autoFailover检测到冲突后是否自动切换
conflictCheckInterval冲突检测间隔,毫秒
maxFailoverAttempts最大故障转移尝试次数
conflictThreshold判定冲突的阈值
fallbackToDHCP备用 IP 失败后是否回退 DHCP
backupIPs备用静态 IP 列表

现场固定 IP 部署时,建议先在路由器侧做 DHCP 保留,再使用设备静态 IP,减少冲突概率。

以太网 W5500 ​

以太网使用 W5500 SPI 转以太网模块,networkType = 1。

适合:

  • WiFi 信号差或电磁干扰强的现场。
  • 网关、控制柜、固定安装设备。
  • 需要稳定局域网连接的 MQTT/Modbus 网关。

默认引脚:

字段说明默认值
ethernet.spiMosiSPI MOSI11
ethernet.spiMisoSPI MISO13
ethernet.spiSckSPI SCK12
ethernet.csPinW5500 CS47
ethernet.rstPinW5500 RST48
ethernet.intPinW5500 INT14

配置步骤:

  1. 将 W5500 模块接入 ESP32 的 SPI 引脚。
  2. 接入 RJ45 网线到路由器或交换机。
  3. 在 Web 界面选择 以太网 (W5500)。
  4. 按实际硬件修改 SPI 和控制引脚。
  5. 先在功能配置启用已编译适配器,再保存配置并核对网络重启结果。

注意事项:

  • W5500 需要稳定 3.3V 供电,部分模块峰值电流较高。
  • CS、RST、INT 不要与已启用外设冲突。
  • 静态 IP 配置仍使用通用 IP 字段。
  • 如果当前构建未启用 FASTBEE_ENABLE_ETHERNET,选择该方式不会真正初始化适配器。

4G 蜂窝 EC801E-CN ​

4G 蜂窝使用 EC801E-CN 模块,networkType = 2。

适合:

  • 现场没有有线网络或 WiFi。
  • 户外、移动、临时部署。
  • 通过 MQTT 上报云端平台。

混合模式架构 ​

4G 模式采用混合架构:4G 模块负责联网上网,同时 ESP32 内置 WiFi 工作在纯 AP 模式,提供本地 Web 管理访问。

功能通道说明
互联网访问4G 蜂窝设备通过运营商网络访问 MQTT/MQTTS 云服务;HTTP 仅用于 NTP、OTA 等系统功能
本地 Web 管理WiFi AP设备作为热点,用户连接后访问管理界面

访问方式:4G 模式下,请先将手机/电脑连接到设备 AP,然后通过 http://192.168.4.1 访问 Web 管理界面。

设备同时通过 4G 网络提供 MQTT 上报等云端功能,两条路径仍共享设备CPU、内存和串口等资源,须在实际组合负载下验证。

默认引脚与参数:

字段说明默认值
cellular.txPinESP32 TX,接模块 RX39
cellular.rxPinESP32 RX,接模块 TX40
cellular.pwrPin模块电源/使能控制38
cellular.baudRateUART 波特率115200
cellular.apn运营商 APNCMNET

常见 APN:

运营商常见 APN
中国移动CMNET、CMIOT
中国联通3GNET、WONET
中国电信CTNET

配置步骤:

  1. 插入已开通数据业务的 SIM 卡。
  2. 确认 4G 天线连接可靠。
  3. 交叉连接 UART:ESP32 TX 到模块 RX,ESP32 RX 到模块 TX。
  4. 连接或配置 pwrPin,保证模块可以上电。
  5. 在 Web 界面选择 4G蜂窝 (EC801E)。
  6. 填写 APN,保存配置,等待网络初始化。

注意事项:

  • 4G 模块上电瞬间电流较大,电源不足会表现为反复重启、无 AT 响应或注册失败。
  • APN 错误会导致模块能识别 SIM,但无法建立数据连接。
  • 弱信号环境建议外接高增益天线。
  • 4G 模式下公网入站访问通常不可用,云端数据通信应由设备主动连接 MQTT/MQTTS 服务。
  • 4G 模式下 WiFi 仅工作在 AP 模式(不提供 STA 连接),因此本地管理必须连接设备热点。
  • 4G 模式下请固定使用 AP IP 192.168.4.1 管理设备;网络页不会显示本地域名配置。

联网方式选择建议 ​

场景推荐方式原因
普通家庭/办公室测试WiFi STA配置简单,调试方便
首次配置或忘记网络参数WiFi AP不依赖外部网络
工业控制柜、固定网关W5500 以太网稳定、低延迟、抗干扰
户外或无局域网现场4G 蜂窝不依赖现场网络

配置文件示例 ​

json
{
  "mode": 0,
  "networkType": 0,
  "deviceName": "FastBee-Device",
  "apSSID": "fastbee-ap",
  "apPassword": "admin123",
  "apChannel": 1,
  "apHidden": false,
  "apMaxConnections": 4,
  "staSSID": "factory-main",
  "staPassword": "wifi-password",
  "networks": [
    { "ssid": "factory-main", "password": "wifi-password", "priority": 0 },
    { "ssid": "factory-backup", "password": "backup-password", "priority": 1 }
  ],
  "ipConfigType": 0,
  "staticIP": "",
  "gateway": "",
  "subnet": "",
  "dns1": "8.8.8.8",
  "dns2": "8.8.4.4",
  "connectTimeout": 20000,
  "reconnectInterval": 5000,
  "maxReconnectAttempts": 5,
  "customDomain": "fastbee",
  "conflictDetection": 2,
  "failoverStrategy": 2,
  "autoFailover": true,
  "conflictCheckInterval": 30000,
  "maxFailoverAttempts": 3,
  "conflictThreshold": 2,
  "fallbackToDHCP": true,
  "ethernet": {
    "spiMosi": 11,
    "spiMiso": 13,
    "spiSck": 12,
    "csPin": 47,
    "rstPin": 48,
    "intPin": 14
  },
  "cellular": {
    "txPin": 39,
    "rxPin": 40,
    "pwrPin": 38,
    "baudRate": 115200,
    "apn": "CMNET"
  }
}

构建开关 ​

多联网方式由功能开关控制:

宏作用
FASTBEE_ENABLE_ETHERNET编译 W5500 以太网适配器
FASTBEE_ENABLE_CELLULAR编译 4G 蜂窝适配器

如果某个宏为 0,对应适配器代码不会编译进固件。Web 配置文件中保留字段不代表当前固件一定支持该联网方式。

开机 STA 连接策略(预扫描快速失败) ​

设备上电后按以下流程连接已保存的 WiFi,串口日志可直接观察每一步:

上电 → 预扫描(含隐藏 SSID)
  ├─ SSID 可见 → 最多 4 次尝试,每次超时 = connectTimeout(默认 20s)
  └─ SSID 不可见 → 快速失败模式:最多 2 次尝试,每次 6s
                     (避免对不存在/打错的 SSID 阻塞约 90s)
连接成功 → STA 模式,恢复本地域名与协议连接
连接失败 → 回退 AP 模式(热点名称与密码以保存配置及实际AP为准),
           后台周期性探测:WiFi 恢复后自动切回 STA,无需手动干预

串口关键日志:

  • [NET] Pre-scan: 25 networks, SSID 'fastbee' visible —— 预扫描结果
  • [NET] Pre-scan: ... NOT visible (fast-fail mode) —— SSID 不可见,进入快速失败
  • [WiFi-AP] WiFi recovered! IP: ... —— AP 模式下探测成功,自动切回 STA

频繁重启/重连的注意事项:短时间内多次重启设备会向路由器发起大量认证请求,部分路由器会对设备 MAC 临时限流(表现为反复 reason=6 认证失败)。此时应保留断连原因、重连节奏及路由器日志,有限退避后检查密码和网络;单凭reason=6不能证明是路由器限流,也不能排除固件问题。

排障速查 ​

问题常见原因处理建议
WiFi 连接失败SSID/密码错误、信号弱、路由器拒绝接入重新扫描并选择网络,靠近路由器,检查 2.4GHz 支持
反复 reason=6 认证失败短时间频繁重连触发路由器 MAC 限流保留日志,有限退避并核对密码/路由器;不要仅凭reason=6判定限流
开机很久才能访问 Web旧固件对不可见 SSID 阻塞约 90s核对固件、扫描及重试日志;连接超时不是页面可用的总时长保证
STA 失败后进入 AP 模式WiFi 暂时不可用等待 WiFi 恢复后设备会自动切回 STA,或连接 AP 热点重新配置
STA 保存后访问不到设备IP 变化或网络切换中等待 10-20 秒后使用路由器分配的 IP 或已配置的 .local 地址
AP 模式下设备不自动回到 STA用户主动设置了 AP 模式在 Web 界面将模式改为 STA,设备重启后尝试连接 WiFi
AP 热点周期性短暂中断WiFi 探测恢复机制正在工作正常行为,每次约 10 秒后恢复;如不需探测请将模式改为 AP
AP 热点搜不到apHidden=true、信道不兼容、AP 启动失败关闭隐藏 SSID,使用信道 1/6/11,重启设备
静态 IP 无法访问IP/网关/子网不匹配或冲突改回 DHCP,或在路由器里确认网段和占用情况
.local 地址不可用客户端不支持、跨网段、路由器隔离使用设备 IP;域名可用性不影响 STA 和 MQTT 连接
W5500 无连接SPI 引脚错误、网线/交换机问题、供电不足检查 MOSI/MISO/SCK/CS/RST/INT,确认链路灯和 3.3V
W5500 有链路但无 IPDHCP 不可用或静态 IP 配错检查路由器 DHCP,或填写正确静态 IP
4G 模块无响应TX/RX 接反、供电不足、PWR 控制异常交叉检查串口,使用独立稳压电源,确认模块上电时序
4G 注册失败SIM 未激活、APN 错误、信号弱测试 SIM 数据业务,确认 APN,检查天线和信号

维护建议 ​

4G 与 UART 资源边界(2026-10-01 候选增量) ​

本节描述主工作区候选代码,尚未形成当前设备的部署/实物通过证据。保存 4G 网络配置或启用外设时,系统检查 RX/TX/PWR 与已配置外设的 GPIO、固定 UART 冲突;RX/TX 必填,PWR 不使用时填 -1,不能通过越界数字截断为其它 GPIO。

4G 和 Modbus 都沿用固件固定业务串口(有 UART2 时 UART2,否则 UART1),因此即使引脚不同,也不能同时占用同一控制器。通用 UART 会避开协议预留端口;运行时另有互斥租约,冲突时返回 UART_RESOURCE_BUSY/UART_RESOURCE_EXHAUSTED,不关闭原所有者。请按板卡能力与当前固件核对,不能据多个插座或多个 GPIO 推断存在多个控制器。

4G disconnect 不等于串口/内存已经释放:仍持有客户端时保留控制器,直到适配器清理完成。网络 API 的资源清单仍是配置预检,不是所有运行中 GPIO/旧配置的实时租约图。现场电源、接线、AT 通信、故障恢复、内存和长稳仍需对应设备验证。

常规维护 ​

  • 调试阶段优先使用 WiFi STA 或 AP,确认协议和外设逻辑后再切换到 4G。
  • 现场固定部署优先使用 DHCP 保留地址,其次再考虑设备静态 IP。
  • 切换 networkType 后建议重启设备并观察串口日志,确认实际适配器已经初始化。
  • 生产环境请修改默认 AP 密码,避免开放维护入口。

蜂信物联 | fastbee.cn