本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于ESP8266的四探针烧烤温度计—WMT4

发布时间:2022-08-25
分享到:

基于ESP8266的四探针烧烤温度计—WMT4

发布时间:2022-08-25
分享到:

本文要介绍的是一个带有 4 个独立探头的烧烤温度计。在手机上控制设置、监控进度并获取通知。

通过智能手机控制的 WiFi 肉类温度计
有大量的无线烧烤/烤箱温度计可通过零售渠道购买。那么,为什么要做另一个呢?实际上,这个项目是在我寻找一个可以处理 4 块单独的肉块并允许我从房子内部和后院监测温度的烧烤肉类温度计时开始的。我在网上搜寻了一阵子后一无所获,因为所有产品都至少有一个致命缺陷:

  • 拥有智能手机应用程序的产品通常有负面的用户评论
  • 找到 2 个以上的探针性价比比较低
  • 远程监控需要随身携带接收器

所以我转而将其视为摆脱我在 Kickstarter 上支持的Blynk应用程序的一种方式,并使用 ESP-12E/F 作为 MCU 和 WiFi 适配器。这是一个“坚果汤”项目,包括软件、硬件以及外壳的 3D 设计和打印。

我的项目目标是能够在我的 iPhone 上监控 4 块肉的温度。这将使我有更多的时间与家人/客人在一起,而不是在烧烤上徘徊。此外,在每块肉完成时推送通知将确保每块肉都煮熟至完美。

WMT4 功能

  • 4 个独立的探针,可在整个烹饪过程中留在烧烤中(700 华氏度耐受性)
  • 具有每个温度和设定点的 LCD 显示屏以及“完成”指示器的控制单元
  • iPhone/Android 应用程序,带有每个探头的控件和显示
  • 无线通讯

组成
控制模块

  • ESP12-E/F MCU/WiFi 使用 Adafruit Huzzah 模块
  • 带有 4 端口 12 位 ADC、运算放大器、探头 RC 电路、3.3V 和 5V 电源轨以及 3.3/5V 电平转换器的定制 PCB
  • 20x4 LCD 显示屏(I2C 连接)
  • 定制 3D 打印外壳
  • Maverick ET-73 热敏电阻探头

固件

  • Arduino 草图(使用 IDE 1.6.8 和 ESP8266 库版本 2.2.0 开发)
  • MCP320x 库(我的 MCP3204/8 12 位 ADC 库)

Blynk应用

  • 滑块设置目标温度
  • 当前温度显示
  • 指示探头存在的 LED
  • LED 指示已达到设定值
  • 一个“克隆”按钮,用于将设置从第一个探针复制到其他探针
  • 温度随时间变化的图表(每个探头一条线,颜色编码)
  • 当每个探头达到其设定点时推送通知

WMT4 最显着的优势之一是温度历史图表。大多数烧烤烤架都有热点和冷点,因此您可以查看每个切割的烹饪速度并根据需要调整位置。通过仔细观察这张图表,我通常会在所有切割同时完成的情况下,将每个切割都控制在目标的一到两度以内。

注意:在上图中,历史图表上的初始温度峰值是由于探针一直延伸到鸡胸肉并接触烧烤炉排。

设计
理论与概念

热敏电阻项目有许多有用的参考资料,它们对设计这个项目非常有帮助。我认识到了Steinhart-Hart热敏电阻方程,这是该项目中使用的核心算法。如果您决定使用不同的热敏电阻探头,则应遵循探头校准部分并替换草图中的 A、B 和 C Steinhart-Hart 系数。不同的探头也可能具有不同的电阻,因此您可能还需要更改电路和草图中的探头串联电阻。Tony 确定探头电压的算法巧妙地使用了电阻比,从而无需知道参考电压。因此,如果您决定使用以 5V 运行的 MCU,则无需修改此算法。

温度测量的基本方法很简单:确定每个探头的电阻并使用 Steinhart-Hart 算法计算温度。(热敏电阻的电阻随温度而变化。)通过使用具有非常高的最高温度(在这种情况下为 700 华氏度)的探针,我们可以在整个烹饪周期中将探针留在烧烤/烤箱中。

Blynk 应用程序管理所有值:设置目标温度,显示当前温度,并绘制温度随时间变化的图表。它还具有状态信息:插入了哪些探头以及一个设定值指示器。此外,控制模块上有一个 LCD,可显示温度(当前和设定)以及设定点指示器。这使得 WMT4 可以在没有 Blynk 应用程序的情况下使用,或者只是快速检查温度而无需参考应用程序。

硬件

使用 ESP8266 有两个显着的好处:WiFi 非常容易与 Blynk 和 ESP8266 WiFi 库一起使用,以及大容量的 SRAM。

尝试使用带有 ESP8266 (ESP-01) 的 MCU 的 Uno 作为 Wifi 适配器以悲痛告终,因为 Blynk 和 WiFi 库的内存要求导致堆栈和堆碰撞时内存损坏。使用 ESP 作为 MCU 也不会出现此类问题,而且内置 WiFi 比外接 ESP-01 更容易处理(无需处理 UART TX/RX 线、AT 命令集等)

使用 ESP8266 作为 MCU 的一个缺点是它的单个模拟端口。由于我们需要 4 个端口,我还用了Microchip MCP3204 12 位 ADC ,它使用 SPI 与 ESP8266 通信。

之后还需要通过在线性 1:1 配置中使用运算放大器以及定位 MCP3204 库,将(非常)高阻抗热敏电阻输入转换为低阻抗。我设法为该设备找到了一个旧库,但它需要针对当前的 Arduino IDE 进行更新,并且需要进行代码清理。

稳压器为 ESP 提供 5V 电压,Huzzah 的板载 3.3V 稳压器提供 3.3V 电源轨。这是可行的,因为探头和 MCP 的电流需求很小。

运算放大器在 5V 和 LCD 上运行,并且为 LCD 的 I2C 通信路径提供了基于 MOSFET 的双向电平转换器。

软件

我在草图中遇到的最大挑战是必须通过 Blynk 应用程序同步的数据量。起初,我压倒了 Blynk 服务器,并且遭受了很多超时。一旦开始,它就会变得越来越糟。解决方案是尽量减少在草图和 Blynk 仪表板之间交换的数据量。另一个关键的稳定性策略是将工作分解为小模块,并通过计时器以不相互重叠的方式安排它们。Blynk 似乎也对事情开始的顺序很敏感。

之后我发现必须在控制单元之前启动 Blynk 应用程序才能获得最大的稳定性。控制单元启动时会显示此提醒。

外壳

底座和盖子有单独的文件。两者都有支架以分别支持主 PCB 和 20x4 LCD。外壳相对较高,以便在电压调节器上方留出一些空间,以便在设备长时间打开时不会过热。

2.5mm 千斤顶安装孔是凹进的,以确保有足够的枪管长度将螺母牢固地固定在外部。

到这一步,你的成品已经趋于完成了。

本文中所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

以上内容翻译自网络,原作者:Rob Redford,如涉及侵权,可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论