TFT_BL was wrongly GPIO21 (GT911 INT); use GPIO27, DRAW_BUF_DIV=20, and export firmware/cyd_35r. Co-authored-by: Cursor <cursoragent@cursor.com>
101 lines
3.1 KiB
Markdown
101 lines
3.1 KiB
Markdown
# 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`。
|