awesome-esp32
精选值得构建、复刻或围观的ESP32项目。每个条目都链接到可用的代码仓库;当演示本身就是重点时,会保留演示链接。
范围:以ESP32系列为主,也包括近亲(RP2350等),前提是项目可跨芯片移植而非仅限单一芯片。
两个顶层板块:Applications是人们在ESP32上实际构建并运行的东西;Tools, utilities & libraries是构建它们所需的工具。在Applications内,目录树只回答一个问题——项目是干什么的;标签回答另一个问题——它在什么硬件上运行。可用标签:e-ink、s3-amoled、led-matrix、p4、c3、headless、battery、ecosystem。它们位于条目的末尾,标记特殊情况:没有标签的条目是带普通屏幕的普通ESP32。
s3-amoled主要指一块开发板——Waveshare ESP32-S3 Touch AMOLED 1.8,一款带IMU、扬声器和电池支持的 pocket-size 触摸屏。买一块就能运行Play板块的大部分应用;想自己为它开发,可以从Guides中的实地指南开始。
入选标准简而言之:可构建的公开源码、在真实硬件上运行的证据(照片、视频或实况演示,而非渲染图),以及README中足够让其他人复现的内容。Star数不是标准。完整版和提交方式见CONTRIBUTING.md。待构建的内容见ideas/ideas.md。
指南
本仓库中,从所列项目的构建方式中提炼出的要点:
- ESP32开发实践——从每个列出的项目中提炼的与具体开发板无关的经验,每条都标注了来源项目:技术栈选择、维护开发板矩阵、内存纪律、看门狗、OTA、连接、电源。
- Waveshare AMOLED 1.8指南——面向
s3-amoled开发板的实地笔记,基于真实硬件测量:引脚图、CO5300面板、触摸、IMU、音频编解码器、电源和电池,以及一份精简的“不要做”清单。
此外,@ardchain 在X上发布的帖子(第三方内容,非仓库文档;如无账号,X可能显示登录墙):
- 一晚从零学会ESP32——从零开始的入门路径:安装工具链、点亮外部LED、添加按钮,然后提供Wi-Fi网页。
- 给ESP32装上眼睛:摄像头、本地视觉和反应——摄像头板、在设备上运行视觉,以及通过去抖和置信度阈值将检测转化为动作。
- 你的8美元本地AI入口:ESP32大师课——将小型本地模型拆分到多个ESP32-S3节点上,通过I2S麦克风采集音频并经BLE执行。
应用
陪伴设备
- chat-stick——ESP32-S3 棒状设备上的按住说话语音接口,接Gemini Live,支持持久定时器、服务端工具和OTA更新。(演示)
s3-amoled - xiaozhi-esp32——基于MCP的AI聊天机器人固件,驱动了一整个会说话的桌面陪伴设备生态。
ecosystem - pixelcat——ESP32-S3 AMOLED掌机上的拓麻歌子风格像素猫,会学习你的日程,对触摸和声音做出反应,并且永远不会不可逆地死亡。(演示)
s3-amoledbattery - pocket-pet——ESP32-S3 AMOLED开发套件上的“口袋皮卡丘”风格虚拟宠物手表:像素宠物在草地上游荡,统计你的真实步数,随屏幕休眠,随行走升级。
s3-amoledbattery - InkSight——ESP32-C3上的电子墨水桌面伴侣:24种显示模式(天气、诗歌、习惯追踪)、社区市场模式,以及基于浏览器的刷写方式。
e-inkc3ecosystem
显示与环境
- awtrix3——将Ulanzi像素时钟变成可脚本化的智能显示器,拥有庞大的应用社区。
led-matrixecosystem - HomePoint——用于控制MQTT和HomeKit设备的小型ESP32屏幕。
- esp32-lvgl-watchface——在240x240 LVGL屏幕上渲染智能手表二进制表盘,并附带一个将表盘文件转换为可编译代码的转换器。(演示)
- OpenEPaperLink——将电子货架标签改造成无线电子墨水显示网络,以ESP32为接入点。
e-inkecosystem - trmnl firmware——TRMNL电子墨水仪表盘背后的固件,ESP32-C3驱动一个电池友好的插件生态。
e-inkc3batteryecosystem
游戏
- tinydraw——面向ESP32-S3/RP2350触摸AMOLED掌机的手指绘画应用,支持可变宽度笔触、缩放、撤销和SVG/PNG导出。(演示)
s3-amoled - infinite-golf——ESP32-S3 AMOLED掌机上的程序化生成迷你高尔夫;你物理挥动设备,IMU测量击球。(演示)
s3-amoled - esp32-gameos——同一AMOLED设备上的掌上游戏操作系统:启动器加六个完全程序化的游戏,60帧/秒,无引擎、无素材文件。(演示)
s3-amoled - esp32-fluidbox——设备外壳内的3D粒子流体:约900个粒子随加速计晃动,就像屏幕后面有液体。(演示)
s3-amoled - puck apps——时钟、四子棋等:按puck约定编写一次即可在其两块板上运行的小应用。(实况画廊)
s3-amoled - 67——ESP32-S3 AMOLED掌机上的抛接派对游戏;屏幕在空中闪烁随机数字,接住时锁定,五分之一的概率停在红色67上以选出输家。(演示)
s3-amoled
家庭与控制
无线电与通信
- Meshtastic——离线、加密的LoRa网状网络消息系统;ESP32无线电项目的参考之作。
ecosystem - Waycast——ESP32-P4触摸屏仪表盘上的车对车LoRa网状网络:地理瞬时危险报告、车队位置共享和离线地图,完全不需要蜂窝网络。(网站)
p4
音频与音乐
- squeezelite-esp32——在裸ESP32上实现的多房间音频播放器,支持AirPlay/Spotify/蓝牙端点。
headless - esp32_basic_synth——用一颗芯片加一个DAC实现的复音MIDI合成器。
headless
实用工具与装置
- ESP-KVM——基于ESP32-P4和TC358743 HDMI桥的IP-KVM:捕获目标机屏幕,向目标机模拟USB键盘鼠标,并将两者呈现在浏览器中,甚至可操作无操作系统的电脑BIOS。(演示)
p4headless
工具、实用程序与库
框架与语言
- ESP-IDF——乐鑫官方开发框架。
- esp-hal——面向ESP32芯片的裸机Rust支持。
- MicroPython——芯片上的Python,对ESP32有一流支持。
- ESPHome——用YAML描述设备,生成固件;ESP32进入Home Assistant的默认方式。
ecosystem
实用程序与SDK
- ESP Web Tools——通过浏览器经WebSerial刷写固件,无需安装工具链。
- openHASP——构建用于家庭自动化的自定义触摸屏控制面板,通过MQTT驱动。
- psiop——面向ESP32的紧凑型软件3D渲染库。(演示)
- openai-realtime-embedded——OpenAI官方SDK,用于从ESP32-S3经WebRTC与Realtime API通信。
模拟器
- Wokwi——在浏览器中模拟ESP32板、传感器和显示器;桌面无硬件时快速尝试固件的最快方式。(模拟器)
- espressif/qemu——乐鑫的QEMU分支:用于CI和调试的全系统ESP32仿真。
- puck——用于在小型计算机(RP2350和ESP32-S3)之间迁移应用的规范和模拟器,带经过测试的像素级精确移植。
许可
CC0 1.0。引用处的描述归其各自项目的作者所有。