# CYD WiFi 配网基础 可复用 WiFi 配网模块,支持 **2.8"** 与 **3.5"** CYD。显示/触控骨架对齐 [tftest](../tftest);3.5 背光与 GT911 按 [CYD_PROJECT_GUIDE.md](../CYD_PROJECT_GUIDE.md)。 | 板型 | env | 屏 / 触控 | 背光 | |------|-----|-----------|------| | **2.8" · 2432S028R** | `cyd`(默认) | ILI9341 + XPT2046 SoftSPI | GPIO**21** | | **3.5" · 3248S035C** | `cyd_35r` | ST7796 + GT911 I2C | GPIO**27** | ## 为什么这样设计 | 方式 | 优点 | 缺点 | 本项目 | |------|------|------|--------| | **屏上 LVGL 扫网 + 键盘** | 不离开手机当前 WiFi;有屏设备体验最好 | 依赖触控 | **主路径** | | **SoftAP + Captive Portal** | 手机浏览器配网;无屏板子也能用 | 需连设备热点 | **备用**(Phone AP) | | BLE / Espressif Provisioning | 官方、可加密 | 要专用 App、占内存 | 未采用 | | tzapu WiFiManager | 成熟 | 阻塞式、和 LVGL 难并存 | 未采用 | 凭证存 **NVS(Preferences)**,重启自动重连;断线会周期性重试。 ## 刷写(无需每次编译) | 板型 | 目录 | |------|------| | 2.8" | [`firmware/cyd/`](firmware/cyd/) | | 3.5" | [`firmware/cyd_35r/`](firmware/cyd_35r/) | ```powershell cd firmware\cyd # 或 firmware\cyd_35r .\flash.ps1 # 或 .\flash.ps1 -Port COM3 ``` 重新打包: ```powershell .\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` 1. 无凭证:进入 **WiFi Setup**,点 **Scan**,选网络,键盘输入密码,**Join**。 2. 或点 **Phone AP**:手机连 `CYD-Setup`,打开 `http://192.168.4.1/`。 3. 成功后进状态页;**Change WiFi** / **Forget** 可重配。 ## 接到其它项目 只需带走这些文件(无业务耦合): ``` include/wifi_prov.h # 核心 API(无 LVGL) src/wifi_prov.cpp include/wifi_ui.h # 可选:屏上 UI src/wifi_ui.cpp ``` 有屏时的最小接入: ```cpp wifi_prov_begin(); // 有凭证则自动连 wifi_ui_create(); // 无凭证则进配网页 void loop() { wifi_prov_loop(); wifi_ui_tick(); // ... } ``` 无屏 / 只要门户: ```cpp 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-Setup` - `WIFI_PROV_CONNECT_TIMEOUT_MS` — 默认 20s - `WIFI_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`。