制作一款可夹在锅边的厨房定时器:在水温达到设定的温度时开始倒计时
所有厨房定时器都有一个共同的缺陷,一旦你察觉到这一点,就再也无法忽视:它们会在你按下按钮后立即开始计时。
但“软煮蛋三分钟”并不意味着从你按启动键起算的三分钟。而是指实际沸腾的三分钟。所以你站在炉灶旁等待气泡冒出,在感觉合适的时间按下按钮,然后接受早餐就像抛硬币一样。
PotWatch 可以固定在锅沿上,将不锈钢探针插入水中,从而让你不再需要自己判断时间。它会一直等待水温达到目标值,只有在达到后才会开始倒计时,然后发出提示声。
Hackster 的目录中没有列出本款设备所需的一些部件,因此这里将其列出来:
•3.3V 降压模块——必须工作电压低于 4.2V,并以微安级怠速运行。不能使用 LM2596 或 MP1584,因为这些器件需要 4.5V 输入且无法从单节电池启动。详情请参见下方的稳压器说明。
•不锈钢热敏管——封闭式,带螺纹接头和电缆密封圈,可按锅具尺寸裁切。
•导热膏——普通CPU散热片专用复合材料。配合管体上的接地线,可防止电磁炉感应加热损坏传感器。
•不锈钢弹簧夹——购买的部件,拧入两个印刷支架之间。
•M3×6mm螺丝6个,2mm自攻螺丝4个——可自动在印刷孔中形成螺纹。
将设备固定在锅上,探针浸入水中
水的沸点并非100°C
这是大家都知道但常被忽略的一个事实:水的沸点取决于当地气压。如果你住在高海拔地区,气压较低,沸点也会相应降低;当天气系统移动时,温度变化可能仅几度:
•海平面(0米)——100.0°C
•500米处——98.3°C
•1000米处——96.7°C
•1500米处——95.0°C
•2000米处——93.4°C
如果设备设定一个固定的100.0°C作为阈值,它要么永远等待,要么提前启动,这两种情况都会导致设备失效。即使在海平面,大西洋低气压区也可能使气压下降30百帕,相当于沸点降低整整一度。
因此,PotWatch内置BMP280气压计,并持续计算其阈值:
每百帕0.03°C的下降值已超出克劳修斯-克拉佩龙关系,且在±30百帕范围内变化接近线性,因此天气确实会发生移动。而海拔的变化远比这大得多,公式特意未尝试处理这种情况——这就是一次性校准的目的所在。你用自家厨房的炉灶煮锅,告诉设备所测到的数据,它会将该温度与测量时的压力一起存储,并据此进行校正。
检测则需要连续五次读数达到或超过阈值,每次采样间隔为一秒。一次溅水、蒸汽喷发或异常转换都会重置计数器。如果设计得不够充分,就会导致设备正常工作和设备在你搅动锅时才启动计时器之间的区别。
等待期间显示87.6°C
几乎导致项目失败的故障
最初的原型机不断损坏其温度传感器。
并非逐渐发生。一个DS18B20传感器可能在几次使用后完全正常工作,但之后就永远返回错误数据。我更换了传感器,归因于线路问题、进水、廉价模块等。后来我发现共同原因:只有在电磁炉上才会出现这种问题。
电磁炉的大型线圈会产生强烈的交变磁场,我便在它旁边的一个金属管内巧妙地放置了一个裸露的半导体。而我用来保护传感器的不锈钢热井却起到了相反的作用——充当天线,将干扰信号直接传递到需要保护的部分。
通过两个改进措施解决了问题:第一,在将传感器滑入热井之前,先用导热硅脂(普通的CPU散热片专用膏)将其嵌入;第二,用一根细线将钢制热井本身与接地端(GND)连接起来。
接地管几乎肯定起到了关键作用:它将套筒从天线转变为包裹在传感器周围的屏蔽层。原本的导热胶是为了改善热耦合,确实有效——去掉空气间隙后,探头响应速度明显加快了。同时,它还能机械固定传感器,使其保持在接地外壳内,这自然不会造成任何问题。
自从做出这一改变以来,该探头已成功经受了多次感应炉使用,从未出现故障。这数月的实测数据比几年更可靠,因此我只能说“这个解决了我的问题”,而非“这个问题已经彻底解决”。如果你自制探头后仍然丢失传感器,我很乐意听到你的反馈。
如果在炉灶、电机或变频器附近安装传感器,这个经验仍值得借鉴:金属外壳只有连接到其他东西时才起屏蔽作用;一旦处于悬浮状态,就会变成一个天线,把收集到的信号传递到其内部最敏感的元件中。
正在处理感应炉,炉体上可见INDUCTION标识
我未预料到的一个功能:阈值设置是一个可调节参数
校准界面的存在,让你能准确判断水开沸点的位置我实际使用它的方法却有所不同,而且我认为更好。
水并不会在一瞬间从静止变为沸腾。早在完全烧开之前,它就已经开始剧烈工作了——气泡从底部不断涌出,表面持续翻腾,大量热量被传递到食物中。在我的炉灶上,这一过程大约在88°C时达到峰值,所以我将触发器设定在这个温度。倒计时从这里开始,炉灶同时下降,食物在一种活跃而非剧烈的水中烹煮。
这彻底改变了整个装置的功能。它并非真正的沸点检测器,而是“当水温达到某个特定值时启动计时器”——这个值介于85至102°C之间,而沸腾恰好是默认的明显选择。
制作过程
打印零件:共四个部件:外壳尺寸为60.5 × 84 × 24毫米,盖子为59 × 84 × 3毫米,以及两个小型夹持架。采用标准切片设置,无需支撑结构。原型采用纤维增强ABS材质,外覆ASA材料;设备安装在蒸汽锅上方,而PLA在约60°C时软化,蒸汽上升时可轻松接触。PETG则作为开放式框架打印机的折中方案。
螺丝孔特意被缩小打印——M3螺丝孔为2.8毫米,显示屏螺丝孔为1.8毫米——因此螺丝会自行切割螺纹。无需使用螺母,也无需热固定嵌件。不同线材收缩率不同,因此在批量打印前请先测试一个孔。
四个打印部件与电子元件
准备探测器:将加热套裁剪至适合的尺寸,注入导热膏,插入DS18B20芯片,并用导线将管体连接到GND。这一步决定了设备是否能在感应加热下存活一年。
加热套及其接地
接线方式
•DS18B20数据引脚 — GPIO3,带4.7 kΩ上拉电阻至3V3
•加热套本体 — 与GND相连
•I²C SDA — GPIO4,由显示屏和气压计共享
•I²C SCL — GPIO5
•SSD1306 OLED — I²C地址0x3C
•BMP280 — I²C地址0x76
•压电蜂鸣器 — GPIO6,直接驱动。压电元件为电容性负载,因此无需晶体管或反向二极管
•确认按钮 — GPIO7至GND,内置上拉
•设置按钮 — GPIO10至GND,内置上拉
电源链:锂聚合物电池 → TP4056充电器 → 3.3 V降压模块 → 自锁开关 → 板子的3V3引脚。板子自带的USB-C接口仅用于刷写程序;充电通过TP4056进行。
关于调节器,因为这是人们容易搞错的部分。从单个锂电池中输出3.3V比看起来要困难得多:电池的电压从4.2V开始,下降到约3.4V后才耗尽,因此其整个使用寿命几乎都停留在你试图输出的电压之上。原型机上的模块是一个降压转换器,其数据手册要求输入电压为6–25V;在组装好的设备上测量,该电源轨电压为3.296V,所以厂商给出的数据只是保守估计。接近放电结束时,它无法再进一步降压,输出电压会跟随电池电压变化,但这并无害处——ESP32-C3可以在3.0至3.6V之间正常运行。
然而,即使看起来显而易见,以下情况仍无法实现:LM2596 和 MP1584 都需要至少 4.5 V 的输入电压,远高于一个完整电池的电压,因此它们永远不会启动。AMS1117 需要超过一伏的余量空间,在看似半电量时就会变暗。LM2596 在空闲状态下也大约消耗 5 mA,这意味着如果什么都不做,一个 1000 mAh 的电池在一周内就会耗尽。按照规范,HT7333 或 MCP1700 LDO,或降压-升压转换器才是正确选择。
闪烁与校准
安装 ESP32 板载软件包和五个库文件,将 potwatch.ino 文件放入名为 potwatch 的文件夹中,并通过 USB-C 上传。如果串口监视器保持静默,请启用 USB CDC 启动功能。
然后进行一次校准:煮沸一个电热壶,然后在校准界面设置倒计时开始所需温度。该设置会存储在非易失性内存中,且在固件升级后仍然保留。
倒计时运行
准备就绪,警报响起
两个值得借鉴的固件细节
报警不会被阻断。在压电元件上播放音调的最简单方法是使用一系列 tone() 和 delay() 函数,其自然结果就是设备在提示你时会忽略自身按钮的响应。一个小的非阻塞序列器就能解决这个问题——一个频率数组、一个持续时间数组,以及由主循环调用的服务函数:
频率为0表示静止。当报警运行时,设备保持响应状态,并持续采样温度,这使得它能察觉到你已将探头移开并自动静音。
两个按钮同时按下的情况从未发生过。自定义定时器界面使用“SET”和“OK”作为加减操作,两者同时按下即启动计时。但其中一个按钮总是比另一个提前几毫秒触发,因此每次启动都会额外产生±1分钟的延迟。由于数值计算中看起来完全像“偏移一位”,所以要准确校准花了相当长的时间。最终的解决方案是:在按键后保持按住80毫秒再执行操作——足够长以识别出有意的音符组合,又足够短,不会被人类察觉延迟。
还有一个难得的细节:压电盘在远离其机械共振频率时几乎处于无声状态。我扫频并监听峰值,而不是选择一个整数频率,结果发现该元件的峰值出现在3 kHz。换一个不同材质的压电盘重新扫频,音量差异并不细微。
故障处理,因为它就位于沸水旁边。
干锅。连续四次采样温度超过105°C时,锅中已无水。倒计时停止,设备发出“无水”警报,而不是安静地对传感器进行自检。
探头损坏。当DS18B20断开连接,或传感器的开机复位值恰好为85.0°C时,系统均将其识别为无效数据,而非正常读数。五次异常样本后,屏幕显示“检查探头”,并以波浪线代替数字。
探头移除。在准备就绪报警期间取出探头,会导致温度低于阈值。固件将此视为确认,自动静音并返回菜单——这正是你去处理食物时通常会做出的手势。
仍然存在问题
夹子。只有当螺丝拧得足够紧时,夹子才能将设备固定在锅边,使用过程中张力会逐渐松弛。一旦松动到一定程度,设备就会倾斜——探头从液体中脱离,进入空气中,此后它将始终报告你的水是冷的,并永远等待下去。
值得一提的是,该支架是设计中最独立的部分:两个印刷部件——holder1 和 holder2——承载着购买的弹簧夹,其余部分均不依赖其形状。一个更好的夹具只需花费两把文件工具,而无需重新制造。如果你对夹具结构感兴趣,那么这一点将尤为有价值。
夹具安装方式是设计中的薄弱环节
本文编译自hackster.io





