温度制御されたチャコールスモーカー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
裏話
ほとんどの真面目なバーベキュー喫煙者は、最高の味は彼らの喫煙者を加熱するために木炭を使用することから来ることを知っています。プロパンと電気の喫煙者はより良い温度制御を持っていますが、その木炭の風味を失います。熱源として、木炭は苦痛になる可能性があります。常に温度を監視し、適切な温度になるように通気口を調整し、適切な温度になるように数回操作する必要があります。次に、喫煙者の炭のレベルが変化するので、30分ごとにそれを続けなければなりません。ソファに腰を下ろし、お気に入りの冷たい飲み物やスポーツイベントをテレビで楽しんだり、喫煙者にやらせたりするのは素晴らしいことではないでしょうか。
プロジェクト
喫煙者の温度を監視し、木炭への空気の流れを調整して正しい温度を維持するコントローラーを作成します。また、喫煙者と肉のプローブの両方の温度をリモートで監視する方法を提供します。これは、Wi-Fiが組み込まれ、LiPoバッテリーの充電をサポートする、間もなくリリースされるArduinoMKR1000に基づいています。
ハードウェア
煙の中の温度は、MKRのアナログ入力の1つに接続された分圧器の100KNTCサーミスタを使用して監視されます。このサーミスタは、3DプリンターのPrusa RepRabホットエンドに使用されるために選択されたため、広く入手可能で安価です。は、理想的な温度プローブを作成するために、高温シリコン絶縁ワイヤにはんだ付けされた状態で購入できます。サーミスタは、物理的な保護のために細い(1/4インチ以下)ステンレス鋼管に挿入され、一方の端が圧着されて閉じられ、もう一方の端が熱収縮を使用してワイヤが固定されます。
分圧器は、分圧器の残りの半分として10K抵抗を使用します。この値は、一般的な喫煙者の温度(225 F)での100KNTCサーミスタの抵抗に近いために選択されました。これにより、温度測定に適した範囲が得られ、約50Fから300Fを超える読み取り値が妥当な粒度で提供されます。
A0は温度を監視するために使用されます。それは喫煙者の内側の火格子に置かれるより短いプローブを使用します。他のアナログピンを使用して、燻製する肉に挿入するサーミスタプローブと分圧器をさらに作成し、肉の内部温度を監視して、いつ調理されるかを知ることができます。
反対側では、小さな送風機が喫煙者の通気口に取り付けられています。小さなステンレス製のドッグフードディッシュが喫煙者の通気口の上に取り付けられ、ブロワーがディッシュの底の穴に取り付けられています。これは2つの機能を果たします。1つは通気口を完全に覆うこと、もう1つは喫煙者の体と送風機の間にある程度の断熱を提供することです。ブロワーはNチャネルMOSFETを使用して制御されます。これは直接配線することもできますが、構築を容易にするために、MOSFETモデルが使用されました。 MOSFETのゲートはArduinoのデジタルピンに接続されています
ビルド
最初の実装では、物事を単純にするためにすべてがブレッドボード上で行われます。サーミスタブリッジは配線が簡単で、Vcc(MKRの場合は3.3V)からサーミスタの片側に10K抵抗を接続し、もう一方の側をグランドに接続します。ブリッジの中心とMKRのアナログピンの間にジャンパーを接続します。プローブに使用するチューブの長さをカットし、一方の端を万力で圧着してシールします。次に、プライヤーを使用して圧着チューブの角を折り曲げ、より鋭いポイントを作成します。サーミスタをチューブ内で最後までスライドさせます。シュリンクラップをもう一方の端とワイヤーにかぶせます。熱を加えて収縮させ、ワイヤーを固定します。
ブロワー側はほぼ同じくらい簡単です。ブロワーへのリード線をMOSFETモジュールの出力端子ブロックに固定し、極性を確認します。 LiPoバッテリーパックとJSTプラグからのワイヤーをMOSFETモジュールの電源端子ブロックに接続し、極性を確認します。 JSTプラグをMKRのバッテリー充電器のJSTジャックに差し込みます。 Vcc、アース、およびMOSFETボードのピンからMKRへの制御線用に3つのジャンパーを実行します。 10,000 mAhのバッテリーを使用して、ブロワーで十分なバッテリー寿命を実現しました。
<図>ブレッドボードに、回路図にない項目がいくつか追加されました。ジャンパーの1つをサーミスタから可変抵抗器のスライダーに切り替えることでスケッチをテストするための電圧を生成するために使用できる10Kの可変抵抗器があります(抵抗器の端はVccとグランドに接続されています)。スケッチがファンのオンとオフを切り替えるタイミングを示すために、出力ピン0に接続された330オームの電流制限抵抗を備えたLEDもあります。
<図>
ソフトウェア
関連するソフトウェアは2つあります。 1つはArduinoを制御するためのスケッチで、もう1つはユニバーサルWindowsアプリであるため、喫煙者は任意のWindows10デバイスでリモートで監視できます。
スケッチは主に、SimonMonksの著書「ProgrammingArduinoNext Steps:Going Future with Sketches」(http://www.amazon.com/Programming-Arduino-Next-Steps-Sketches/dp)のWi-Fiサーバースケッチに基づいています。 / 0071830251 / ref =sr_1_6?ie =UTF8&qid =1459448622&sr =8-6)。
基本的に、測定された温度を表示する1ページを提供し、喫煙者の目標温度を設定できるようにする単純なWebサーバーを作成します。初期化は、Wi-Fiアダプターのセットアップと、コンピューターに接続されていないときに何に接続するかを知るために固定IPアドレスを割り当てて、DHCPで割り当てられたアドレスを確認することで構成されます。ピン0は出力に設定されています。ループでは、接続しようとしているクライアントがあるかどうかを確認し、接続しようとしている場合はWebページを提供します。リクエストがある場合は、目標温度を設定するためのパラメータがURLに含まれているかどうかもチェックします。次に、喫煙者の温度をチェックし、目標温度を下回っている場合はブロワーをオンにし、上回っている場合はブロワーをオフにします。
分圧器のサーミスタを使用して温度を測定するのは比較的簡単です。まず、アナログ入力の読み取り値から、固定抵抗器の電圧降下を決定できます(固定抵抗器がグランドに接続されている場合の読み取り値、Vcc-Vccに接続されている場合の読み取り値)次に、オームの法則(V =IR)を使用します。抵抗器を流れる電流(I)を計算するには(I =V / R)同じ電流がサーミスタを流れるため、オームの法則を再度使用してサーミスタの抵抗を計算します。 R =V / Iここで、Vはサーミスタの電圧降下(アナログ入力の読み取り値またはVcc-分周器のどちら側にあるかによる読み取り値)であり、Iは計算したばかりの電流です。 Rを使用して、サーミスタベータ方程式にプラグインできます:
1 / T =1 / T0 + 1 /ベータ* ln(R / R0)
ここで、R0はT0でのサーミスタの抵抗です
(注:すべての温度はケルビンであるため、それを考慮に入れてください)
単純なHTMLWebページを提供するには、基本的に、測定された温度の周囲にhtmlヘッダーブロックとhtmlフォーマットコードを送信する必要があります。また、目標温度の入力と、サーバーへのリクエストにそれを含めるためのボタンも含まれています。
Windowsユニバーサルアプリ <図> <図> <図>
これは、喫煙者がペコス(または任意の川)の西にある最高の燻製ビーフブリスケットのいくつかをかき回していることを知って、座ってリラックスできる作品です。喫煙者から定期的にウェブページを読み込み、温度を解析して表示します。また、喫煙者の目標温度を設定することもできます。
スケッチとユニバーサルアプリの両方のコードは、以下にリストされているGitHubリポジトリで入手できます。
コード
- 喫煙者コントローラーのスケッチ
スモーカーコントローラースケッチ Arduino
// Sketch_12_04_server_wifi#include#include char ssid [] ="BeeBar2"; //ネットワークSSID(name)char pass [] ="9254582716"; //ネットワークパスワードWiFiServerserver(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; float smokerTemperature =225; float v0; void setup(){Serial.begin(9600); while(!Serial){}; // Leonardoはこれを必要とします(int i =0; i "); sendAnalogReadings(); client.println( " \ n