ESP32制作加热杯垫
如果杯子已经放在桌面上,我看这块杯垫时最先想到的不是电热膜能不能发热。
我更关心几个动作能不能接在同一条状态链里。温度、时间、输入和语音提醒只要有一个环节脱开,使用起来就会像几个互不相干的小功能。
我先把项目页的内容收拢成四件事。它们是 ESP32-C3 主控、彩屏界面、触摸或三按键输入,以及独立驱动板承接的加热功率路径。
资料还给出了 45℃到130℃的设定范围、30分钟到8小时的定时区间和可替换语音文件。
下面的判断都从公开板级资料、界面图和操作流程出发。我会把资料能够确认的部分说清楚,也把没有源码或没有实物证据的地方单独标出来。
项目页同时保留了触摸版和按键版,驱动板上的风扇、HX711 与功放位置也被标成预留。版本之间的差异,会直接影响复刻时的接线和排查顺序。
公开资料没有提供可以逐行核对的固件源码,所以我不把菜单流程改写成假想代码,只沿着已经写明的功能、烧录方式和文件替换规则分析。

电源与功率路径的板级分工
我先从两块板的分工入手。主控板上的 ESP32-C3 负责接收触摸或按键输入,驱动彩屏,读取温度状态,并用指示灯给出反馈。
驱动板接住的是电热膜相关的功率路径。这样一来,菜单里的一次设定先变成控制信号,再由驱动板去处理加热电流,逻辑操作不用直接穿过高电流回路。
项目页把输入写成 PD 或 DC 供电,更新记录又提到过驱动板布线和按键版本的调整。我在复刻前会先把手里的主控板和驱动板版本对上,再决定采用触摸接口还是三只独立按键。

驱动板原理图里还留着风扇、HX711 和功放的驱动位置,但资料明确说这些功能不需要全部焊接。
我不会把预留焊盘当成已经实现的功能。先分清当前加热链路和可选扩展,后面看原理图时才不会把一条备用路径误读成工作路径。

输入动作到加热状态的控制链
为了不把三只按键只写成器件清单,我把一次操作拆成四步。输入层先收到上、确定、下的动作,接着把动作交给菜单状态。
菜单状态保存温度、预约或定时的选择,驱动层再根据当前状态决定是否允许加热。彩屏和语音最后把这个状态变化反馈给使用者。
触摸版和按键版的目标相同,变化的是输入器件。项目更新日志提到有用户不方便装配触摸按键,于是增加了按键交互版本。
我更愿意把这看成输入层的替换,而不是两套完全不同的控制逻辑。因此,不能拿触摸版照片去猜按键版的引脚,也不能看到一个版本的接口就默认另一个版本一样。

| 模块 | 公开资料能确认的职责 | 拿到实物后要复核的边界 |
|---|---|---|
| 主控板 | ESP32-C3、彩屏、温度监测、LED | 触摸版或按键版的具体接口 |
| 驱动板 | 电热膜相关功率路径 | 供电规格、散热和保护动作 |
| 菜单状态 | 温度、预约、定时和语音提醒 | 状态切换时是否立即执行 |
| 扩展位置 | 风扇、HX711、功放预留 | 是否焊接以及对应固件支持 |
这里的 45℃到130℃是界面允许输入的目标范围,我不会把它当成杯垫表面每个位置都能达到的实际温度。传感器放在哪里、多久采样一次,资料里都没有展开。
所以在具体装配上,我还会把温度采样位置、闭环响应和异常停机行为单独确认。只有这些条件对得上,菜单里的数值才有明确的工程含义。
显示与语音的状态同步
我看彩屏和语音时,关注的是它们怎样共享同一次状态变化。彩屏负责呈现当前温度、日期、时间和加热状态,语音负责播报开机、开始加热、停止加热和提醒喝水等离散事件。
这样安排的好处是,界面显示当前状态,语音提示刚刚发生的事件。两者围绕同一个状态更新,使用者才不会看到一个状态、听到另一个状态。

语音替换走的不是联网下载路径。把数据线接到电脑后,设备会被识别成 U 盘,这一步解决的是文件如何进入设备。
我会保留 001 到 010 这些 MP3 文件名,让控制板继续按固定槽位找到对应事件。文件名或存储位置改掉时,通常先表现为某一条提醒没有声音,不应该直接判断成加热控制坏了。

固件烧录与语音文件更新
我把烧录和语音替换分成两条路径,是因为它们改变的对象不同。烧录改的是控制板程序和分区,换语音改的是设备存储里的固定文件。
项目页给出的烧录流程针对 ESP32-C3 的 USB 模式。按顺序选择 bootloader、partitions 和对应软件版本,再选择串口开始写入,排查时要让芯片型号、文件和串口彼此对应。
flash_download_tool_3.9.2.exe
目标芯片 ESP32-C3
连接方式 USB 模式
写入顺序 bootloader / partitions / 软件版本
执行动作 选择 COM 后点击 START

如果设备能正常启动,只有语音缺失,我会先看 001 到 010 的文件名和存储路径。这个现象和程序没有写进去不是一回事。
如果设备完全不能启动,我会回到芯片型号、分区文件和串口选择这条链路。把两种故障放在一起排查,只会让范围变大。
长期运行的安全边界
最后我把长期运行拆成三个需要分别确认的边界。电热膜、驱动器件和供电输入属于高功率边界,ESP32-C3、彩屏、触摸和语音文件属于逻辑与存储边界。
装配时,我会先让功率路径和逻辑信号的连接关系清楚,再去核对外壳、底板和散热条件是否与手里的版本一致。这个顺序能避免先调界面、后发现供电或结构版本对不上。

资料没有展开传感器校准方法、过温保护阈值和长时间满功率运行条件。因此我把 45℃到130℃理解成界面设定范围,而不是已经由公开资料证明的安全工作温度。
如果要把它放进无人看守的保温场景,我还会在具体装配上确认采样位置、异常断电行为和外壳温升。
对我来说,关键是 ESP32-C3 把输入、定时、加热、显示和语音事件串成状态链,驱动板单独承接功率。先核对板卡版本与语音文件路径,再按安全边界复刻,后续排查才有起点。



