开始前适用开发板:ESP32-P4 + ESP32-C5 · 开发框架:ESP-IDF
适用开发板:P4C5 · 工程
02.beginner.http_request· targetesp32p4
前置:Wi-Fi Station
学习时长:约 15 分钟 · 难度:★★☆☆☆
学习目标
完成本节后,你将能够:
- 理解 P4C5 通过 C5 联网后主动发 HTTP 请求的完整流程
- 掌握原生 Socket 的 DNS → TCP → HTTP 全过程
1. 这个例子在干嘛
功能与 Korvo http_request 相同——用原生 lwIP Socket 向 example.com 发 HTTP GET 请求,串口打印响应 HTML。MIPI 屏显示各阶段状态(DNS/连接/发送/接收)。
C5 注意:等 C5 就绪并连上 Wi-Fi 后才能发起请求。
ESP32-P4 → esp_hosted → C5 → Wi-Fi → Router → example.com
2. 编译烧录
cd P4_C5_4.3_Firmware\02.beginner.http_request
idf.py set-target esp32p4
idf.py menuconfig # Example Connection Configuration → Wi-Fi
idf.py build flash monitor
3. 运行现象
| 阶段 | 屏幕 | 串口 |
|---|---|---|
| 等 C5 | Waiting... | Transport active |
| Wi-Fi | WiFi OK | GOT_IP |
| DNS | DNS OK | 93.184.216.34 |
| 发送 | Sending... | GET / HTTP/1.0 |
| 接收 | Recv: N bytes | HTML 内容 |
| 等待 | Wait 10s... | 倒计时 |
4. 与 Korvo 版的区别
| 对比 | Korvo | P4C5 |
|---|---|---|
| Wi-Fi | S3 内置 | C5 外置 |
| 启动延迟 | 无 | 等 C5 |
| Socket API | 相同 | 相同 |
| HTTP 目标 | example.com | 相同 |
| 屏幕 | SPI 小屏 | MIPI 大屏状态更清晰 |
5. 常见问题与排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| DNS 失败 | C5 未就绪/路由器无网 | 等 C5 + 检查路由器 |
| 连接超时 | example.com 被墙 | 换国内 URL |
| 响应截断 | 正常(循环 read 到 0 就是完整的) | 检查串口 |
详细原理(Socket 编程、HTTP 协议、API 对比)参见 Korvo http_request。
6. 下一步
| 方向 | 推荐例程 | 说明 |
|---|---|---|
| HTTP Server | HTTP Server | 被动提供服务 |
| MQTT | MQTT | IoT 通信 |
| 详细原理 | Korvo HTTP Request | Socket 详解 |
酷世DIY · Kevincoooool