一个存放 Arduino / ESP32 / STM32 等自制嵌入式小项目的仓库。
这里会陆续收录我折腾的嵌入式项目。每个项目放在独立目录中,包含源码、文档、接线说明和踩坑记录。一方面方便自己回顾,另一方面也希望能给同好一些参考。
这是一个个人嵌入式项目合集,不是某个单一产品的代码库。它同时承担三个作用:
- 存档:把自己做过的板子、玩过的模块、写过的固件集中放好,避免散落各处最后找不到;
- 复盘:记录每个项目当时的设计思路、踩过的坑、以及为什么最终这样实现;
- 分享:如果某个项目刚好能帮到别人,那就更好了。
内容以小而完整为主——单个项目通常在一周内能做完,元件成本不高,适合周末动手。不做大而全的框架,也不追求工业级可靠性,重点是把一个想法从零跑通,并把过程写清楚。
把 AI 编程助手的工作状态搬到桌面上。通过蓝牙连接电脑,在 1.77 英寸屏幕上实时显示 Claude Code 的运行状态;当 AI 需要批准敏感操作时,设备响一声、弹出审批卡,按一下物理按钮就能批准或拒绝——不用切窗口,不用敲键盘。
| 项目 | 说明 |
|---|---|
| 平台 | ESP32-C3 SuperMini |
| 外设 | 1.77" ST7735S TFT(128×160)、双微动按钮、无源蜂鸣器、状态 LED |
| 通信 | BLE(Nordic UART Service)+ JSON Lines |
| 电脑端 | Python 3.9+,仅依赖 bleak |
| 目录 | vibepet/ |
| 状态 | 电脑端已实现并通过 27 项测试;固件编译通过(Flash 占用 48%),尚未在真实硬件上验证 |
| 详细说明 | vibepet/README.md |
屏幕上的六种状态:IDLE(空闲)、WORKING(工作中)、APPROVE?(等待审批)、DONE(完成)、ERROR(出错)、LOST(连接断开,设备自行判定)。
更多项目正在路上……
myproject/
├── vibepet/ # 项目一:AI 编程助手物理终端
│ ├── firmware/ # ESP32 固件
│ │ ├── VibePet/
│ │ │ └── VibePet.ino
│ │ └── TFT_eSPI_User_Setup.h
│ ├── pc/ # 电脑端 Python 程序
│ │ ├── hook_client.py
│ │ ├── bridge_daemon.py
│ │ └── _smoke_test*.py
│ ├── .claude/ # Claude Code Hook 配置
│ └── README.md # 项目详细说明 │ ├── [下一个项目]/ # 每个项目一个独立目录
│ ├── firmware/ 或 src/
│ ├── docs/
│ └── README.md
│
└── README.md # 本文件
不同项目用的工具链不一样,常见的有:
| 平台 | 工具链 | 备注 |
|---|---|---|
| Arduino | Arduino IDE / arduino-cli | 简单项目首选,库生态丰富 |
| ESP32 | Arduino IDE(ESP32 板支持)/ PlatformIO | 涉及 BLE、WiFi、FreeRTOS 时用 PlatformIO 更顺手 |
| STM32 | STM32CubeIDE / Keil / PlatformIO | 需要 HAL 库或寄存器操作 |
每个项目的 README 会写明它自己需要哪些工具链、哪些库、以及具体的版本要求。不要假设所有项目环境一致。
每个项目相互独立,进入对应目录查看它自己的 README。一般流程是:
- 阅读该项目的 README,确认硬件清单和依赖;
- 按说明接线、配置工具链、烧录固件;
- 如有电脑端/上位机程序,安装对应依赖并运行;
- 遇到问题先看该项目的「常见问题」一节。
为了让仓库保持整洁,新增项目时建议遵循以下约定:
目录命名
- 避免空格和中文,避免与已有项目重名;
- 每个项目一个顶层目录,不嵌套在其他项目里。
每个项目目录至少包含 项目名/ ├── README.md # 必需:硬件清单、接线、依赖、烧录、用法、常见问题 ├── firmware/ 或 src/ # 固件 / 源码 ├── docs/ # 可选:原理图、接线图、设计文档、照片 └── LICENSE # 可选:如与仓库整体许可不同,单独声明
README 建议包含
- 一句话说明这个项目是做什么的;
- 硬件清单(型号 + 大致价格);
- 接线说明或接线图;
- 依赖的第三方库及版本;
- 烧录 / 编译 / 运行的步骤;
- 当前状态(是否经过真实硬件验证);
- 已知问题和踩坑记录。
代码风格
- 固件代码尽量保持可读,关键逻辑写注释;
- 涉及引脚定义、常量、可调参数时,集中放在文件顶部或单独的配置区;
- 不提交编译产物(
build/、.pio/、*.bin、*.hex等),用.gitignore排除。
这个仓库主要是个人项目存档,但非常欢迎交流:
- 提 Issue:如果你发现某个项目的代码有问题、文档有误,或者接线说明不清楚,欢迎指出;
- 提 PR:修复 bug、改进文档都很欢迎。如果是较大的功能改动,建议先开 Issue 讨论一下;
- 自己加项目:如果你想把自己的项目也放进来(虽然更推荐 fork 后自己维护),请遵循上面的项目组织约定。
除非项目内另有说明,本仓库所有项目均采用 MIT License。你可以自由使用、修改、分发,保留版权声明即可。
各项目如引用了第三方库,其许可归属原作者,使用时请遵守对应库的许可条款。
- GitHub: @zenith8366
- Email:lyh351608807@outlook.com or ericalaplce8@gmail.com
- 有问题优先提 Issue,方便其他人也能看到答案。
如果这里某个项目对你有帮助,欢迎点个 Star ⭐