https://github.com/longxiangam/work_timer
ESP32C3 + Embassy 练习项目
https://github.com/longxiangam/work_timer
embassy esp32 esp32c3
Last synced: 5 months ago
JSON representation
ESP32C3 + Embassy 练习项目
- Host: GitHub
- URL: https://github.com/longxiangam/work_timer
- Owner: longxiangam
- Created: 2024-05-27T08:47:19.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T01:49:12.000Z (over 1 year ago)
- Last Synced: 2025-07-26T21:10:18.677Z (11 months ago)
- Topics: embassy, esp32, esp32c3
- Language: Rust
- Homepage:
- Size: 362 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ESP32C3 + Embassy 练习项目
这是一个练习项目,旨在研究如何在ESP32C3上使用Embassy进行开发。由于很难找到系统性的参考项目,大多数都是简单的main函数示例,因此只能自己实践一下。本项目的目标是实现一些实用功能,尽管功能比较杂,但都是我在考虑实际业务需求时需要的一些功能。由于时间有限,项目实现较为粗糙,但希望能对有类似需求的人有所参考。觉得有参考意义的人就看一看,本来也只是作为我自己的练习与记录。
项目功能如下:
## 1. 通过 AP 模式启动 WiFi
- 设备启动时进入 AP 模式。
- 通过手机连接后进行 WiFi 配网操作。
## 2. 简单的 DHCP 服务
- 提供一个固定 IP 地址,只用于初次配网。
- 无需完整的 DHCP 服务。
## 3. 对 WiFi 使用进行处理
- 在程序内可随时方便使用网络请求。
- 当WiFi长时间未使用时自动关闭WiFi节省电量,当使用WiFi时自动拉起。
## 4. 简易 Web 服务
- 启动一个基本的 Web 服务器。
- 通过手机访问网页进行设备设置。
## 5. EC11 和按键事件监测
- 监测 EC11 旋转编码器和按键事件。
- 检测长按、短按、双击等事件。
- 实现 EC11 的转动速度计算。
## 6. 简易事件监听功能
- 注册事件回调函数。
- 事件触发时运行相应的回调函数。
## 7. 时间功能
- 使用 SNTP 同步时间。
- 显示当前时间。
## 8. 天气预报
- 通过心知天气 API 获取天气信息。
- 显示天气预报。
## 9. CHIP-8 模拟器
- 在程序内含一个 CHIP-8 模拟器。
- 运行 CHIP-8 游戏或应用。
## 10. 通过 PWM 播放简单的 WAV 音频文件
- 使用 PWM 播放 WAV 音频文件。
- 提供基本的音频播放功能。
## 11. 设置界面显示二维码
- 生成和显示一个设置地址的二维码。
- 方便手机扫码进入设置页面。
## 12. 通过 NVS 保存信息
- 使用 NVS(非易失性存储)保存配置信息。
- 确保重要数据在重启后仍然可用。
## 13. 低功耗处理
- 方便进入睡眠模式降低功耗。
## 14. 程序页面管理
- 简易的页面管理系统,方便从主窗口进入各子程序页面。
---
### 结语
整个项目的设计和实现过程中仍然存在许多问题,需要进一步优化和改进。由于时间有限,只能粗略实现部分功能。希望这些内容对有相似需求的开发者有所帮助,如果有不妥之处,欢迎指正,一同学习进步。
希望这个项目能为大家在使用ESP32C3和Embassy开发时提供一些参考和借鉴。
参考的项目:
[claudiomattera/esp32c3-embassy: A Rust async firmware for ESP32-C3 for reading and displaying sensor values using Embassy (github.com)](https://github.com/claudiomattera/esp32c3-embassy)
[vpikulik/sntpc_embassy: Example how to integrate sntpc crate with emabssy on rpi-pico w ([github.com](https://github.com/vpikulik/sntpc_embassy))](https://github.com/vpikulik/sntpc_embassy)