78873e0c6dc25470e97d6d36dfd85abe487e71fa
Ignore transient NO_SSID after begin; settle radio after scan; longer timeout and connect logs. Co-authored-by: Cursor <cursoragent@cursor.com>
CYD WiFi 配网基础
可复用 WiFi 配网模块,支持 2.8" 与 3.5" CYD。显示/触控骨架对齐 tftest;3.5 背光与 GT911 按 CYD_PROJECT_GUIDE.md。
| 板型 | env | 屏 / 触控 | 背光 |
|---|---|---|---|
| 2.8" · 2432S028R | cyd(默认) |
ILI9341 + XPT2046 SoftSPI | GPIO21 |
| 3.5" · 3248S035C | cyd_35r |
ST7796 + GT911 I2C | GPIO27 |
为什么这样设计
| 方式 | 优点 | 缺点 | 本项目 |
|---|---|---|---|
| 屏上 LVGL 扫网 + 键盘 | 不离开手机当前 WiFi;有屏设备体验最好 | 依赖触控 | 主路径 |
| SoftAP + Captive Portal | 手机浏览器配网;无屏板子也能用 | 需连设备热点 | 备用(Phone AP) |
| BLE / Espressif Provisioning | 官方、可加密 | 要专用 App、占内存 | 未采用 |
| tzapu WiFiManager | 成熟 | 阻塞式、和 LVGL 难并存 | 未采用 |
凭证存 NVS(Preferences),重启自动重连;断线会周期性重试。
刷写(无需每次编译)
| 板型 | 目录 |
|---|---|
| 2.8" | firmware/cyd/ |
| 3.5" | firmware/cyd_35r/ |
cd firmware\cyd # 或 firmware\cyd_35r
.\flash.ps1
# 或
.\flash.ps1 -Port COM3
重新打包:
.\firmware\export_from_build.ps1 # 2.8
.\firmware\export_from_build.ps1 -Env cyd_35r # 3.5
.\firmware\export_from_build.ps1 -SkipBuild
源码烧录:pio run -e cyd -t upload 或 pio run -e cyd_35r -t upload
串口监视:pio device monitor -b 460800
- 无凭证:进入 WiFi Setup,点 Scan,选网络,键盘输入密码,Join。
- 或点 Phone AP:手机连
CYD-Setup,打开http://192.168.4.1/。 - 成功后进状态页;Change WiFi / Forget 可重配。
接到其它项目
只需带走这些文件(无业务耦合):
include/wifi_prov.h # 核心 API(无 LVGL)
src/wifi_prov.cpp
include/wifi_ui.h # 可选:屏上 UI
src/wifi_ui.cpp
有屏时的最小接入:
wifi_prov_begin(); // 有凭证则自动连
wifi_ui_create(); // 无凭证则进配网页
void loop() {
wifi_prov_loop();
wifi_ui_tick();
// ...
}
无屏 / 只要门户:
wifi_prov_begin();
if (!wifi_prov_is_connected()) {
wifi_prov_portal_start("MyDevice-Setup");
}
// loop 里 wifi_prov_loop();
宏可覆盖(build_flags):
WIFI_PROV_AP_SSID— 默认CYD-SetupWIFI_PROV_CONNECT_TIMEOUT_MS— 默认 20sWIFI_PROV_RECONNECT_MS— 默认 8s
模块划分
touch.*/pins.h— CYD 硬件(按CYD_BOARD_3248S035分支)wifi_prov.*— NVS、扫描、连接、重连、SoftAP 门户wifi_ui.*— LVGL 列表 + 密码键盘 + 状态页(UX/UY适配 480×320)main.cpp— 演示入口
硬件
- 2.8":ILI9341 240×320,横屏
ROTATION_270(逻辑 320×240),触控 SoftSPI。 - 3.5" C:ST7796 320×480,逻辑 UI 480×320;GT911
SDA33/SCL32/INT21/RST25;勿把 GPIO33 当TOUCH_CS。
Description
Languages
C++
44.7%
C
42.1%
PowerShell
8.3%
HTML
4%
Python
0.6%
Other
0.3%