精准温控木炭烟熏炉套件:Arduino MKR1000 物联网 BBQ 大师
项目缘起
木炭烟熏能赋予肉类独特风味,但温度难以稳定:需频繁调节通风口、添加木炭。本项目基于 **Arduino MKR1000**(内置 WiFi + LiPo 充电管理)打造**全自动温控烟熏炉控制器**:NTC 热敏电阻监测炉膛温度,MOSFET 驱动 5V 无刷鼓风机调节进风量,维持设定温度(默认 225°F ≈ 107℃);同时搭建 Web 服务器与 Windows 10 通用 App (UWP),实现手机/平板/PC 远程监控炉温、探针温度与修改目标温度。
硬件清单
- Arduino MKR1000 ×1 — 3.3V 逻辑、内置 WiFi、JST LiPo 接口
- 5V 无刷鼓风机 ×1 — 进风量执行器
- IRF520N MOSFET 驱动模块 ×1 — PWM 调速/开关鼓风机
- 100kΩ NTC 热敏电阻 (3D 打印机热端同款) ×1+ — 炉温探针,可多路扩展肉芯温度
- 10kΩ 精密电阻 ×若干 — 分压电阻
- 3.7V LiPo 电池 (≥700 mAh) ×1 — MKR1000 直供,鼓风机另供电
- 不锈钢管 (1/4″) + 热缩管 — 探针护套,耐高温
- 狗粮碗 (不锈钢) + 鼓风机安装座 — 覆盖原通风口,隔热固定鼓风机
- 面包板、跳线、10kΩ 电位器、LED+330Ω — 原型调试用
探针制作工艺
- NTC 焊接高温硅胶线,套入不锈钢管,一端钳压封口并折尖
- 另一端套热缩管固定导线,防油烟渗入
- 分压电路:3.3V → 10kΩ → A0 → NTC → GND
- ADC 读值 → 电压 → 电流 → NTC 电阻 → **Beta 方程** 换算华氏度
温度计算原理 (Beta 方程)
// 分压电路:固定电阻 Rf 接 VCC,NTC 接 GND,中点接 ADC
V_ntc = ADC_reading / 4095 * 3.3 // MKR1000 12-bit ADC
I = (3.3 - V_ntc) / Rf // 固定电阻两端电流
R_ntc = V_ntc / I // NTC 瞬时电阻
// Beta 方程:1/T = 1/T0 + (1/Beta) * ln(R_ntc/R0)
// T0 = 25℃ = 298.15K, R0 = 100kΩ, Beta = 3950 (典型值)
T_K = 1 / (1/298.15 + (1/3950) * log(R_ntc/100000))
T_F = (T_K - 273.15) * 9/5 + 32
固件架构
- WiFi 服务器:静态 IP (192.168.123.90),端口 80,单页 HTML 响应
- 页面内容:表格显示所有探针实时温度、表单输入目标温度 (GET 参数
t=xxx) - 控制逻辑:Bang-Bang 控制(开关量),
炉温 < 目标温 → 鼓风机全开 (PWM 255),否则全关 - 指示 LED:D0 接 LED,鼓风机开启时点亮
- 电位器:调试时切换至 ADC 模拟温度信号
Windows 10 通用 App (UWP)
- 定时轮询 MKR1000 HTTP 端点,解析 HTML 表格提取温度
- 界面显示:炉温、多路肉芯温度、目标温度设定框、更新按钮
- 支持任何 Windows 10 设备 (PC/平板/手机/Xbox/HoloLens)
- 源码 C#/XAML,Visual Studio 2015+ 编译
电源设计
- MKR1000 由 LiPo 供电,板载充电管理,可插 USB 充电
- 鼓风机单独由大容量移动电源 (10,000 mAh) 供电,经 MOSFET 模块端子块接入
- MOSFET 模块 VCC/GND 接鼓风机电源,信号线接 MKR D0,三地共地
实测与调试技巧
- 面包板阶段用电位器模拟 NTC 电压,验证温度换算与控制逻辑
- 串口监视器打印 ADC 原值、电压、电阻、温度,核对 Beta 参数
- 实际烟熏中,炉温波动 ±10°F 可接受;若需更平滑可升级 PID + PWM 调速
- 探针耐温验证:NTC 引线耐 200℃+,不锈钢管隔离火星油烟
扩展方向
- **PID 控制**:引入积分/微分项,配合 MOSFET PWM 实现无刷电机调速,消除温度超调
- **多探针**:利用 A1–A6 扩展 6 路肉芯温度,网页同步显示
- **云端日志**:MQTT 推送至 InfluxDB + Grafana,生成烟熏曲线报告
- **语音助手**:对接 Alexa/Google Home,语音查询/设定温度
- **固态继电器 + 电加热棒**:兼容电烟熏炉/烤箱改装
项目资源
完整 Arduino 草图、UWP App 源码、Fritzing 原理图 (MKR1000 用 Nano 代号) 托管于 GitHub:
DuncanBarbee/SmokerController
制造工艺
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- Arduino + DHT11 + 以太网盾板温湿度数据记录仪
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- 非接触体温筛查闸机:Arduino MKR1000 + 红外测温 + 舵机控制
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程