火锅侠-我给火锅配了一位不知疲倦的"烫菜师傅"
1. 项目介绍
1.1 创作背景:一次肠胃炎换来的一个想法
我很爱吃火锅。热气腾腾的锅底,配上现切的牛肉、虾滑和毛肚,热闹又满足。
但去年我因为吃了没涮熟的牛肉片,闹了一场肠胃炎。后来我查资料才知道,这不是小事:近年我国食源性寄生虫病呈上升趋势,淡水鱼虾、牛蛙、螺类如果没彻底煮熟,可能携带肝吸虫、裂头蚴等寄生虫;新闻里甚至报道过因食用未熟海鲜感染"食脑虫"的极端案例。专家给出的建议很朴素——彻底煮熟。
可"彻底煮熟"这四个字,在火锅桌上恰恰是最难判断的。我和同学做过一次小访谈,问了经常在家吃火锅的牛肉供应商奶奶和一位同龄人,得到的答案几乎一样:
l 怎么判断熟没熟?——"看它浮起来没有""看肉的颜色变深没有"。
l 有没有煮老了或者没煮熟的情况?——"经常有,有时候不想浪费就吃掉了。"
l 有没有因为吃火锅拉过肚子?——两个人都有过。
也就是说,大家手上唯一的"检测仪器"是自己的眼睛和习惯,而眼睛看到的只是食材的表面颜色,看不到中心温度。这就是我想动手的原因。
1.2 探究问题
主问题:能不能把"看颜色、凭感觉"的烫菜过程,变成"识别食材 → 查它该烫多久 → 到点自动捞起"的闭环?
拆成三个可以用实验回答的小问题:
l Q1(时间差异有多大):不同食材要在同一锅底里烫多久才安全?差别是否大到必须分开设定?
l Q2(机器能不能认出来):行空板自带摄像头,能否在蒸汽弥漫的火锅上方稳定识别食材种类?
l Q3(自动执行是否更安全):交给机器执行后,食材中心温度能否稳定达到安全线?
1.3 应用场景
l 家庭火锅:老人、小孩、不熟悉食材的人也能吃到熟度刚好的食材;
l 火锅店:把"帮客人烫菜"这类依赖服务员经验的动作标准化;
l 科学课堂与食育活动:把"熟没熟"从生活经验变成一个可测量、可验证的科学问题。
1.4 核心功能
1. 食材"身份证"识别:每种食材配一张二维码卡片,摄像头读取后自动判断种类;
2. 分类定时烫煮:内置每种食材的安全时间(牛肉片 80 s、羊肉卷 30 s、牛蛙片 90 s、鱼片 60 s、毛肚 45 s);
3. 双工位独立控制:金、银两只漏勺各由一支推杆驱动,可同时烫两种食材;
4. 三重状态反馈:屏幕显示食材与倒计时,RGB 灯变色,语音播报提示;
5. 全自动升降:时间到自动提起漏勺,全程无需看管。


1.5 科学原理
(1)蛋白质热变性——为什么必须"够热"
肉类与水产的主要成分是蛋白质。加热到 60~70℃ 时肌红蛋白变性、肉色由红转灰褐,这正是大家"变色即熟"判断的依据。但颜色变化只发生在表层 1~2 毫米,此时中心温度可能还不到 50℃,寄生虫囊蚴依然存活。食品安全上通行的做法是让中心温度达到 75℃ 并维持 30 秒以上。所以"看着熟了"和"真的熟了",中间隔着一整块肉的距离。
(2)热传导——为什么羊肉卷 30 秒够、牛蛙要 90 秒
热量从表面逐层传到中心,所需时间大致与厚度的平方成正比,可用 τ ≈ L²/(π²α) 做量级估算(L 为半厚度,肉类热扩散系数 α 约 1.3×10⁻⁷ m²/s)。按此估算:半厚度 5 mm 的薄片,时间尺度在十几秒量级;半厚度 10 mm 的块状食材,迅速上升到七八十秒量级。
这解释了一件事:火锅桌上"一刀切"烫 30 秒是危险的——薄片可以,块状食材远远不够。所以程序必须按食材分别设时间,这不是多此一举,而是被物理规律逼出来的设计。
说明:上式只用于判断数量级与比较相对长短,具体秒数仍由对比实验反复调参确定。
(3)机器视觉替代人眼——把经验变成规则
人眼判断靠经验,机器判断靠规则。用二维码作为食材"身份证":识别本质是把图像中的黑白模块解码成字符串,容错率高、对焦要求低,在蒸汽、水汽、油雾干扰下比直接做菜品图像分类更稳定,也更容易被他人复刻。
(4)直流电机 + 丝杠 = 精确的直线运动
电动推杆内部由直流电机带动丝杠,把旋转运动变成直线伸缩;电机两根线正接、反接即可伸出或缩回,断电自停,行程可控,正适合"把漏勺放下去、提上来"。


2. 运行演示
装置的工作流程只有四步:
1. 把食材放进漏勺,把对应二维码卡片放到摄像头下方;
2. 屏幕显示识别结果与烫煮时间,语音提示"请将火锅食材放在摄像头下方";
3. 按下按键,推杆带动漏勺下沉入锅,RGB 灯转红,屏幕开始倒计时;
4. 时间到,推杆自动提起漏勺,RGB 灯转绿,语音提示可以食用。
两只漏勺由两个按键分别控制,互不影响,可一边烫毛肚、一边烫牛蛙。
视频:演示视频.mp4(需压缩至 10 MB 以内,或上传视频平台后嵌入)。
照片:成品图1(整机)、成品图2(桌面完整测试)、成品图3(俯拍工作状态)、研究过程3(学生实际操作 + 程序运行)。
建议补拍:3~5 秒 GIF,只拍"放卡片 → 灯变红 → 漏勺下沉 → 升起变绿"一个完整动作。
3. 探究过程与结果
3.1 先搞清楚"人到底是怎么判断的"
设计三组问题(使用习惯 / 安全意识 / 工具评价),访谈 2 位典型用户并做使用记录。核心发现:
1. 判断依据高度依赖"浮起 + 变色"这类表面现象,没有温度依据;
2. 出问题时(煮老或没熟)多数人选择"吃掉算了",说明现有工具没有给出可执行标准;
3. 被访者都听说过"某些食材可能有寄生虫",但说不出具体是哪些、要烫多久——安全知识停留在"知道有风险",没落到"知道怎么做"。
这三条直接决定了设计方向:装置要给出的不是一个"提示",而是一个"确定的动作"和一个"确定的时长"。
3.2 从图纸到实物
先画结构:门式框架跨在锅上,两支推杆垂直向下吊着漏勺,摄像头在漏勺正上方俯拍。然后动手:
l 结构搭建:2020 铝型材搭门式支架,强度够、孔位标准、拆装方便,复刻时无需焊接加工;
l 对称布置:起初只装一支推杆,漏勺升降明显倾斜卡顿;改为两支对称布置后受力平衡,运行顺滑;
l 补光:火锅上方蒸汽重,画面易发白;在漏勺正上方加两只 RGB 灯,兼作照明与状态指示,识别成功率明显提升;
l 3D 打印连接件:设计带卡扣的连接件卡住漏勺边缘、螺栓固定在推杆头部;另打印主控支架,调整角度使摄像头正对漏勺中心;
l 电气连接:推杆需 12V,主控只给信号,中间用电机驱动模块做隔离与放大,整机由 12V 锂电池供电。
3.3 对比实验:人工涮 vs 机器涮
实验目的:比较传统人工烫煮与自动烫煮在熟度控制准确性与一致性上的差异。
材料与设备:牛肉片、羊肉卷、牛蛙片、鱼片、毛肚各 5 份共 25 份;自制装置、普通锅具与漏勺、红外测温枪、计时器;试吃员 3 位(12~50 岁,无过敏史)。
安全标准:肉类与水产中心温度 ≥75℃ 且维持 30 秒以上。
步骤:
| 阶段 | 内容 |
| 一 参数设定 | 牛肉片 80 s、羊肉卷 30 s、牛蛙片 90 s、鱼片 60 s、毛肚 45 s,写入程序并与二维码绑定 |
| 二 人工组 | 试吃员按个人习惯判断"熟了"即捞起,记录实际时间并测中心温度 |
| 三 自动组 | 扫码识别后由程序控时、推杆自动执行,同样记录时间与温度 |
| 四 数据汇总 | 对比熟度达标率、时间离散程度、口感评分 |
实验结果
| 指标 | 人工烫煮组 | 自动烫煮组 |
| 中心温度达标率 | 32%(68% 未达 75℃) | 100% |
| 高风险食材表现 | 牛蛙、鱼片、毛肚普遍夹生 | 全部达到安全温度 |
| 同一食材时间波动 | 羊肉卷 20~35 s,个体差异大 | 严格等于预设值,零波动 |
| 口感评价 | 易出现"外老内生" | 在安全前提下评分更高 |
| 主观反馈 | — | 3 位试吃员一致认为"更放心、操作简单、适合家庭" |
数据说明了什么
1. 人工组的失败不是"不小心",而是"看不出来"。68% 样本中心温度不达标,其中大部分外观已"变色",人眼没有可用信息。
2. 真正危险的是块状、厚身高风险食材。牛蛙片人工组几乎全部不合格,而它恰好寄生虫风险最高。这说明"按食材分别定时"是必需项——回答了 Q1。
3. 自动组的 100% 不是运气,而是把不可控的人为变量替换成固定参数——回答了 Q3。
4. "中心温度"与"表面颜色"之间的落差,是本次项目最大的认知收获:看得见的现象,未必是决定性的变量。


本次实验的局限
1. 样本量小(25 份、3 位试吃员),只能说明趋势,不构成严格统计结论;
2. 红外测温枪测的是表面附近温度,与真正的中心温度存在偏差,属间接测量;
3. 只测了一种锅底、一种室温,未覆盖不同海拔(沸点不同)与锅底浓度;
4. 口感评分为主观打分,缺少双盲设计。
下一轮将增加样本量、用探针式温度计做中心温度对照,并把"沸点—海拔"作为新的探究变量。把这些不足写出来,本身也是科学探究的一部分。
3.4 遇到的 5 个问题与解决办法
| 问题 | 原因 | 解决办法 |
| 漏勺升降时倾斜、卡顿 | 单支推杆偏心受力 | 改为左右两支推杆对称布置 |
| 摄像头识别经常失败 | 蒸汽反光、画面发白 | 漏勺正上方加两只 RGB 补光 |
| 推杆动作生硬、抖动 | 直接用继电器通断,无缓冲 | 改用电机驱动模块控制正反转 |
| 二维码受潮变皱、识别不到 | 蒸汽冷凝水 | 卡片塑封并固定在亚克力板上 |
| 连接件用久了会松 | 卡扣尺寸偏小 | 重新建模加厚卡扣、增加螺栓固定 |
这些返工比一次成功更有价值——每一次都是"提出假设 → 改一个变量 → 再看结果"的小循环。


4. 软硬件清单与制作步骤
软件与工具
l 编程平台:Mind+(图形化 / Python 双模式),选择行空板对应主板扩展包(程序使用 esp32s3bit 扩展库)
l 二维码生成:在线二维码工具,为每种食材生成一张固定内容二维码
l 三维建模:设计漏勺卡扣与主控支架(STL 随附件提供)
l 数据处理:Excel / WPS 整理测温与计时记录
主要连线
| 模块 | 接线 | 作用 |
| 按键(金) | P4 | 触发金色漏勺升降 |
| 按键(银) | 另一路 GPIO(按实际接线) | 触发银色漏勺升降 |
| 推杆 A | 驱动模块 → P14 / P15 | 金色漏勺升降 |
| 推杆 B | 驱动模块 → 另一组信号脚 | 银色漏勺升降 |
| RGB 灯 | IO 扩展板信号脚 + 5V / GND | 补光与状态指示 |
| 电源 | 12V 锂电池 → 驱动模块,降压后供主控 | 整机供电 |
| 摄像头 | 板载,无需外接 | 二维码识别 |
注意:主控 GPIO 不能直接驱动推杆,必须经电机驱动模块;推杆与主控务必共地。
制作步骤(8 步)
1. 搭框架:按锅具直径裁切铝型材,用角件组装门式支架,保证横梁水平;
2. 装推杆:横梁两侧对称固定两支推杆,轴线垂直于锅面;
3. 做连接件:3D 打印漏勺卡扣,卡住漏勺并以螺栓固定在推杆头部;
4. 装灯与摄像头:漏勺正上方固定两只 RGB 灯;调整主控支架角度,使摄像头垂直俯拍漏勺中心;
5. 接线:按键、推杆驱动、RGB、电源依次接入 IO 扩展板,走线用扎带固定;
6. 生成二维码:为每种食材生成二维码,打印塑封后贴于亚克力卡片;
7. 写程序:先做"按键控制推杆升降"的最小可用版本,跑通后再加二维码识别与定时;
8. 标定参数:用计时器 + 测温枪反复试烫,把"刚好吃且安全"的秒数写进程序。
建议按第 7 步的顺序做:先让机械动起来,再让机器"认东西"。一次性写完所有功能,出问题时很难定位是机械、电路还是程序。
5. 开源代码
本作品使用 Mind+ 图形化编程,源工程随帖附件提供(02_火锅侠_源程序包.zip),可直接打开、修改与上传。
程序分为 5 个部分:
| 部分 | 作用 |
| 初始化 | 设置屏幕背景与标题、初始化摄像头与语音合成、输出脚置低、变量归零 |
| 识别 | 开启 AI 功能中的"二维码识别",循环读取画面中的二维码内容 |
| 匹配 | 将读到的内容与"食材—时间"对照表比较,取出对应秒数 |
| 执行 | 依按键状态控制 P14 / P15 高低电平组合,驱动推杆伸出或缩回,以"等待 N 秒"实现定时 |
| 反馈 | 屏幕显示食材与倒计时,RGB 灯变色,语音播报当前步骤 |
核心逻辑伪代码(与图形化程序一一对应):

食材—时间对照表:牛小排/牛肉片 80 s、羊肉卷 30 s、牛蛙片 90 s、鱼片 60 s、毛肚 45 s。
附件包内容:火锅侠_主程序.mp(Mind+ 工程)、推杆连接.stl、连接板.stl、使用说明.txt。
6. 优化方向与复刻建议
下一步三件事
1. 让识别更无感:现在是"扫码识别",需人工放卡片。下一步训练小型菜品识别模型,直接认食材;
2. 加温度闭环:现在靠时间间接保证熟度,若加防水温度探针,可用实测温度判断而非时间推算;
3. 更便宜更小:成本集中在主控与推杆,可换更便宜主控、用舵机替代推杆做小型化版本。
给想复刻的同学三条建议
1. 先做最小可用版本(按键 + 一个推杆),跑通再往上加功能;
2. 机械结构一定要对称,不对称会吃掉 80% 的调试时间;
3. 参数不要抄,一定自己用测温枪标定——锅、火力、食材厚度都不同。



