PsychicHttp - ESP32上的HTTP魔法师
PsychicHttp
ESP32
2/5
已发布
项目简介
基于ESP-IDF的ESP32 HTTP/S服务器,支持WebSockets。
PsychicHttp 是一个专为 ESP32 设计的轻量级、高性能 Web 服务器库,同时支持 Arduino 框架和原生 ESP-IDF 开发环境,无需依赖 Arduino 组件即可独立运行。该项目基于乐鑫官方 ESP-IDF HTTP Server 构建,在 API 风格上借鉴了 Arduino WebServer、ESPAsyncWebServer 和 ArduinoMongoose 等流行库,使得从这些库迁移代码变得非常直观和便捷。
标签
项目特点
**双协议支持**:同时提供 HTTP/HTTPS 和 WebSocket 服务,一个库搞定所有网络通信需求。
**ESP-IDF 原生驱动**:基于 ESP-IDF 官方 HTTP 服务器实现,性能稳定、资源占用低。
**双平台兼容**:既支持 ESP-IDF 原生开发,也兼容 Arduino 框架,降低入门门槛。
**异步非阻塞**:支持异步请求处理,不阻塞主循环,适合实时性要求高的场景。
**简单易用的 API**:路由注册、参数解析、WebSocket 事件处理都设计得直观清晰。
**MIT 开源许可**:完全免费,可商用,社区活跃,持续更新。
技术规格
| 支持平台 | ESP32、ESP32-S2、ESP32-S3、ESP32-C3 |
|---|---|
| 开发框架 | ESP-IDF v4.4+ / Arduino-ESP32 v2.0.0+ |
| 协议支持 | HTTP/1.1、HTTPS(TLS 1.2/1.3)、WebSocket(RFC 6455) |
| 最大并发连接 | 默认 10(可通过配置调整) |
| 最大 URI 长度 | 2048 字节 |
| 最大请求头大小 | 4096 字节 |
| 最大请求体大小 | 取决于可用堆内存 |
| WebSocket 帧大小 | 默认 4096 字节(可配置) |
| 支持的 HTTP 方法 | GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS |
| 文件系统支持 | SPIFFS、LittleFS、SD 卡 |
| 内存占用 | 约 40KB RAM(基础服务) |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ESP32 开发板(如 ESP32-DevKitC) | 1 | — | 推荐 4MB Flash 以上版本 |
| 外接天线 | 1 | — | 用于增强 WiFi 信号 |
| 电源模块 | 1 | — | 3.3V 稳压,建议 500mA 以上 |
| 传感器模块 | 按需 | — | 如 DHT22、BME280 等 |
| LED 指示灯 | 1-3 | — | 用于状态指示 |
| 电阻 | 若干 | — | 220Ω-10kΩ,用于限流/上拉 |
能力画像
**记忆与知识检索**:3/5 — 需要查阅 ESP-IDF 文档和 PsychicHttp API 手册,但库本身封装良好,文档清晰。
**动手与操作**:4/5 — 需要连接硬件、烧录固件、调试网络,有一定动手要求。
**编程与算法**:3/5 — 主要涉及 C++ 编程和事件驱动逻辑,算法复杂度不高。
**设计与建模**:2/5 — 主要关注路由设计和 WebSocket 消息格式,无需复杂建模。
**实验与调试**:4/5 — 需要频繁测试网络连接、调试 WebSocket 通信、处理异常情况。
**协作与分享**:3/5 — 可通过 GitHub Issues 和 PR 参与社区,适合分享项目成果。
**学习与研究**:4/5 — 涉及 HTTP 协议、WebSocket 协议、ESP32 网络栈,学习价值高。
**系统集成**:4/5 — 可轻松集成传感器、执行器、云服务等,构建完整 IoT 系统。
项目图库
所需技能
C/C++ 编程基础
ESP32 开发环境搭建(ESP-IDF 或 Arduino)
基本的 WiFi 网络知识
HTTP/HTTPS 协议基础
WebSocket 协议概念
串口调试工具使用
版本控制(Git)基础
硬件连接与面包板使用(可选)
适用场景
**智能家居控制**:搭建本地 Web 控制面板,通过 WebSocket 实时控制灯光、窗帘、空调等设备。
**传感器数据采集**:将温度、湿度、气压等传感器数据通过 WebSocket 实时推送到浏览器或手机 App。
**远程设备配置**:为 IoT 设备提供 Web 配置页面,方便用户设置 WiFi 密码、MQTT 服务器等参数。
**实时监控仪表盘**:在浏览器中实时显示 ESP32 采集的电压、电流、功率等数据。
**固件 OTA 升级**:结合 HTTP 文件上传功能,实现通过浏览器远程升级固件。
**物联网网关**:作为本地网关,接收传感器数据并通过 WebSocket 转发到云平台。
**教育演示**:用于教学演示 HTTP 协议、WebSocket 通信、嵌入式 Web 开发等课程内容。