温控木炭烟熏机
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
|
关于这个项目
背景故事
大多数认真的烧烤吸烟者都知道最好的味道来自使用木炭加热吸烟者。丙烷和电动吸烟者有更好的温度控制,但失去了木炭的味道。作为热源,木炭可能是一种痛苦。您需要不断监控温度,调整通风口以尝试获得合适的温度,并且必须玩几次才能使其恰到好处。然后,随着吸烟者体内木炭含量的变化,您必须每半小时继续这样做。只是坐在沙发上,在电视上享受您最喜欢的冷饮和体育赛事,同时让吸烟者做自己的事情不是很好吗?
项目
创建一个控制器来监控吸烟者的温度并调整到木炭的气流以保持正确的温度。此外,提供一种远程监控吸烟者和肉类探头温度的方法。这是基于即将发布的 Arduino MKR1000,内置 Wi-Fi 并支持为锂聚合物电池充电。
硬件
使用连接到 MKR 模拟输入之一的分压器中的 100K NTC 热敏电阻监测烟雾中的温度。选择该热敏电阻是因为它用于 3D 打印机中的 Prusa RepRab 热端,因此它们广泛可用且价格低廉。可以购买已经焊接到高温硅绝缘电线上的理想温度探头。热敏电阻插入一根细长(1/4 英寸或更小)的不锈钢管中进行物理保护,一端卷曲以将其关闭,另一端使用热收缩固定电线。
分压器使用10K电阻作为分压器的另一半。选择此值是因为它接近 100K NTC 热敏电阻在典型吸烟者温度 (225 F) 下的电阻。这为温度测量提供了良好的范围,以合理的粒度提供大约 50 F 到 300 F 以上的读数。
A0 用于监测温度。它使用一个较短的探头,放置在吸烟者内部的炉排上。其他模拟引脚可用于创建更多的热敏电阻探头和分压器,插入正在熏制的肉中,以监测肉的内部温度,以了解肉何时煮熟。
在另一侧,一个小鼓风机连接到吸烟者的通风口。一个小的不锈钢狗粮盘连接在吸烟者的通风口上,鼓风机连接到盘子底部的孔中。这有两个功能,首先完全覆盖通风口,其次在吸烟者的主体和鼓风机之间提供一些热隔离。鼓风机使用 N 沟道 MOSFET 进行控制。这可以直接接线,但为了便于构建,使用了 MOSFET 模型。 MOSFET 上的栅极连接到 Arduino 的数字引脚
构建
对于第一个实现,一切都在面包板上完成以保持简单。热敏电阻桥易于接线,从 Vcc(MKR 为 3.3V)到热敏电阻一侧的 10K 电阻器接地,另一侧接地。在桥的中心和 MKR 上的模拟引脚之间连接一个跳线。剪一段管子用于探头,用虎钳压住一端以密封它。然后使用钳子折叠卷曲管的角以形成更锋利的尖端。将热敏电阻滑入管中,直至到达末端。将一块收缩包装滑过另一端和电线。加热使其收缩并固定电线。
鼓风机侧几乎同样简单。将鼓风机的引线固定到 MOSFET 模块上的输出端子块上,注意极性。将 LiPo 电池组和 JST 插头的电线连接到 MOSFET 模块上的电源接线端子,再次观察极性。将 JST 插头插入 MKR 上电池充电器的 JST 插孔。为 Vcc、接地和从 MOSFET 板上的引脚到 MKR 的控制线运行三个跳线。使用 10,000 mAh 电池为鼓风机提供充足的电池寿命。
在面包板上,添加了一些不在原理图中的项目。有一个 10K 可变电阻器,可用于通过将跳线之一从热敏电阻切换到可变电阻器上的滑块(电阻器的末端连接到 Vcc 和地)来产生电压以测试草图。还有一个带有 330 欧姆限流电阻的 LED 连接到输出引脚 0,以指示草图何时打开和关闭风扇。
软件
涉及到两个软件。一个是控制Arduino的草图,另一个是通用Windows应用程序,因此可以在任何Windows 10设备上远程监控吸烟者。
该草图主要基于西蒙·蒙克斯 (Simon Monks) 的书“编程 Arduino 下一步:进一步使用草图”(http://www.amazon.com/Programming-Arduino-Next-Steps-Sketches/dp) 中的 Wi-Fi 服务器草图/0071830251/ref=sr_1_6?ie=UTF8&qid=1459448622&sr=8-6).
它基本上创建了一个简单的 Web 服务器,该服务器提供一个页面,显示测量的温度并允许设置吸烟者的目标温度。初始化包括设置 Wi-Fi 适配器并分配固定 IP 地址,以便在未连接到计算机时了解要连接的内容以查看 DHCP 分配的地址。引脚 0 设置为输出。在循环中,它检查是否有客户端尝试连接,如果有则提供网页。如果有请求,它还会检查它是否包含 url 中的参数来设置目标温度。然后检查吸烟者的温度,如果低于目标温度则打开鼓风机,如果高于目标温度则关闭。
使用分压器中的热敏电阻测量温度相对简单。首先从模拟输入读数,我们可以确定固定电阻上的压降(固定电阻接地时的读数,Vcc - 连接到 Vcc 时的读数)然后我们使用欧姆定律(V =IR)计算通过电阻器的电流 (I) (I =V/R) 由于相同的电流流过热敏电阻,我们再次使用欧姆定律来计算热敏电阻的电阻。 R =V/I 其中 V 是热敏电阻的压降(模拟输入读数或 Vcc - 读数取决于它位于分压器的哪一侧),I 是我们刚刚计算的电流。使用 R 我们可以将其代入热敏电阻 Beta 方程:
1/T =1/T0 + 1/Beta * ln(R/R0)
其中 R0 是热敏电阻在 T0 处的电阻
(请注意,所有温度均以开尔文为单位,因此请务必将其考虑在内)
提供简单的 HTML 网页基本上涉及围绕测量的温度发送 html 标题块和 html 格式代码。它还包括目标温度的输入和将其包含在返回服务器的请求中的按钮。
Windows 通用应用 图> 图>
知道您的吸烟者正在生产 Pecos 以西(或您选择的任何河流)的一些最好的熏制牛腩,这件作品可让您高枕无忧。它定期从吸烟者加载网页,解析温度并显示它们。它还允许您为吸烟者设置目标温度。
草图和通用应用程序的代码可在下面列出的 GitHub 存储库中找到。
代码
- 吸烟者控制器草图
Smoker Controller SketchArduino
// sketch_12_04_server_wifi#include#include char ssid[] ="BeeBar2"; // 您的网络 SSID (name)char pass[] ="9254582716"; // 你的网络密码WiFiServer server(80);WiFiClient client;const int numPins =10;int pin[] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int pinState[] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0};char line1[100];char buffer[100];IPAddress server_IP(192,168,123,90);float targetTemperature =225;floatsmokerTemperature =225;浮动 v0;无效设置(){ Serial.begin(9600); while (!Serial) {}; // Leonardo 需要这个 for (int i =0; i ”);发送模拟读数(); client.println("\n