PsychicHttp - ESP32上的HTTP魔法师 PsychicHttp

ESP32 2/5 已发布
hoeken 197 Stars MIT BOM 完整度: 0/5 教程完整度: 0/5
PsychicHttp - ESP32上的HTTP魔法师

项目简介

基于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 开发等课程内容。