这个温控水杯项目是我去年花了三个月时间从零开始设计的智能硬件产品,现在已经实现了±1℃的精准控温、手机APP远程调节和12小时长效保温。作为一个经常需要喝温水但又总忘记及时补充的上班族,市面上大多数保温杯要么温度不可控,要么操作复杂,于是决定自己动手做一个真正实用的智能温控杯。
与传统保温杯相比,这个方案最大的特点是采用了PID算法控制加热片功率,配合高精度NTC温度传感器,可以实现快速升温后的稳定恒温。整套系统成本控制在200元以内,比同类商业产品便宜至少30%,而且所有硬件设计文件和代码都已开源。
主控芯片选择了ESP32-C3,这款国产芯片不仅支持Wi-Fi/蓝牙双模,还内置了温度传感器和PWM控制器,关键是一片只要12块钱。实测在2.4GHz频段下,隔着两道墙还能稳定连接手机APP。
温度传感器对比了DS18B20和NTC热敏电阻后,最终选用了10K 3950型号的NTC。虽然DS18B20数字输出更方便,但NTC的0.1℃分辨率和快速响应特性更适合液体测温,配合1%精度的10K分压电阻,经过校准后测温误差可以控制在±0.3℃以内。
加热元件试过PTC加热片和镍铬合金丝,最后定制了20W的硅胶加热膜,厚度只有1mm可以贴合杯壁,12V供电下3分钟就能把300ml水从25℃加热到55℃。为了防止干烧,在杯底增加了水位检测电极。
采用3.7V 18650锂电池供电,配合IP2312充电管理芯片支持5V/2A快充。升压电路选用SY7208将电压升至12V驱动加热膜,实测连续加热时整机电流约1.8A,5000mAh电池可支持4-5次完整加热循环。
特别要提醒的是,升压电路布局时要让电感和滤波电容尽量靠近芯片,否则开关噪声会导致ESP32无线连接不稳定。我在第一版设计时就因为这个问题,Wi-Fi经常断连,后来重新布局PCB才解决。
采用位置式PID算法,参数通过Ziegler-Nichols方法整定:
c复制float PID_Calculate(float setTemp, float realTemp) {
static float errSum = 0, lastErr = 0;
float err = setTemp - realTemp;
errSum += err;
float dErr = err - lastErr;
lastErr = err;
// 经测试得出的最优参数
float Kp = 25.0, Ki = 0.8, Kd = 12.0;
return Kp*err + Ki*errSum + Kd*dErr;
}
实际调试中发现几个关键点:
使用MIT App Inventor快速开发了控制APP,主要功能包括:
蓝牙通信采用自定义协议,每500ms发送一次温度数据。这里要注意Android和iOS系统的蓝牙API差异,iOS需要额外处理后台连接保持的问题。
采用双层304不锈钢真空杯身,在内胆和外壁之间预留1.5mm间隙放置加热膜。杯盖集成了控制主板和电池,通过4pin防水连接器与杯身连接。
关键工艺要点:
在杯盖内部做了三重防水设计:
实测即使整杯倒置也不会漏水,但要注意充电时必须确保接口完全干燥,否则容易腐蚀触点。
在25℃室温下测试300ml水量:
BOM总成本约186元(小批量采购价):
下一步计划:
这个项目所有设计文件(包括原理图、PCB、3D打印模型、源代码)都已上传到GitHub,搜索"Smart-Thermos-Cup"即可找到。对于想DIY的朋友,建议先从现成的保温杯改造开始,避免复杂的杯体加工。