Skip to content

应用案例

这一章把前面的“单项技能”合成作品:比如一个会调光的小控制器、一个会采集数据的桌面设备、一个断网也不慌的联网设备。

学完外设、RTOS、AI 提示词和 ESP-Claw 后,再开始做应用。应用不是把所有功能堆在一起,而是把一个可演示目标拆成能验收的小里程碑。

ESP32 应用场景总览图
应用项目通常是多个独立外设的组合:输入、控制、通信、存储和网络各自跑通后,再用任务和消息把它们连接起来。

案例一:串口控制的多路 PWM 调光器

目标是用 UART 接收命令,用 LEDC 控制多路 LED 亮度。这个案例适合练习“协议”和“外设控制”的边界。

建议迭代顺序:

  1. 单路 LEDC 呼吸灯。
  2. UART 回显。
  3. 解析 ch=0 duty=512 这样的简单命令。
  4. 增加多通道 PWM。
  5. 用 NVS 保存上次亮度。

验收现象:电脑串口发送命令后,指定通道亮度变化;重启后亮度能恢复。

案例二:桌面数据采集器

目标是采集一个模拟量或 I2C 传感器数据,在本地保存最近状态,并通过 Wi-Fi 上传。这个案例适合练习数据采集、存储、联网和调试。

建议迭代顺序:

  1. ADC 或 I2C 单独读数。
  2. 串口打印采样值。
  3. FreeRTOS 中拆出采集任务和网络任务。
  4. 用队列传递采样结果。
  5. 用 NVS 保存阈值或设备名。
  6. 通过 HTTP 上传状态。

验收现象:断网时采集仍然运行;联网恢复后能继续上传;阈值修改后重启仍然有效。

案例三:联网设备的重试与状态机

目标是让设备能处理 Wi-Fi 断开、HTTP 超时和配置缺失。这个案例不追求酷炫界面,而是训练稳定性。

建议迭代顺序:

  1. Wi-Fi station 能连接并打印 IP。
  2. 断开路由器,观察事件顺序。
  3. 增加有限次数重试。
  4. HTTP 请求增加超时和错误日志。
  5. 把网络状态通过 LED 或串口清晰展示。

验收现象:网络异常时设备不会卡死,日志能说明当前处于连接、等待、重试还是失败状态。

案例四:ESP-Claw 外设能力封装

目标是把一个已经跑通的外设读写动作整理成“能力”。它可以是读取温湿度、控制灯光、读取按钮状态,也可以是触发 HTTP 请求。

建议迭代顺序:

  1. 先在普通 ESP-IDF 工程里跑通外设。
  2. 写清楚能力名称、输入参数、输出结果和错误码。
  3. 阅读 ESP-Claw 的能力模块结构。
  4. 设计能力接口,不急着一次完成全部移植。
  5. 用日志验证上层调用到硬件动作的路径。

验收现象:同一个硬件动作不再只是 main.c 里的函数,而是能被更高层逻辑描述和调用的能力。

继续扩展

后续可以选择 BLE、MQTT、低功耗、LCD、USB、摄像头、Matter、Thread、AIoT 或云平台方向。每次只选择一个主线,把目标拆成能在串口、LED、网络日志或真实外设上验证的现象。

本章提示词

请帮我把一个 ESP32 应用想法拆成两周可完成的项目计划。要求按里程碑列出外设、FreeRTOS 任务、数据存储、网络通信、演示现象、异常场景、调试方法和下一轮迭代方向。

本教程使用中文编写,代码和命令保留必要英文。