12/9(月) 応用科学学会シンポジウムで自動運転に関する講演を担当します☆彡(試乗会もあります!来て!)

7-36. Arduinoで低温調理器を作ってみた(リレー、湯沸かし器、温度センサー)

やること

低温調理器が欲しかったのですが、結構高いようなので自作してみます。なお、本記事を参考にしたことによる事故の責任は負いかねます。

Arduinoに温度センサーとリレーモジュールを繋いで、リレーでキャンプ用投げ込み湯沸かし器をON/OFFします。こんなイメージです。※どの材料もAmazonで複数出品あるようなので適当に揃えてください

参考サイト

温度センサー(DS18B20)のライブラリおよび接続方法はこちら

GitHub - matmunk/DS18B20: Arduino library for the Maxim Integrated DS18B20 1-Wire temperature sensor.
Arduino library for the Maxim Integrated DS18B20 1-Wire temperature sensor. - matmunk/DS18B20

電源ケーブルをリレーに繋ぐ方法はこちら

電源タップに大電流リレーモジュールを接続 – てまりのユニバーサルデザイン

ハードウェア構成

全体像です。

まずは各モジュールの電圧と電流を考えます。温度センサーはDS18B20という素子のようで、パワーレンジが3.0~5.5V、電流は数mAらしい。リレーは5V駆動でドライバ電流は15~20mA。よっていずれもArduinoのポート(最大20mA)から制御できます。

温度センサーは参考文献のとおりに接続しますが、プルアップ抵抗4.7kΩ(文献によっては5.1kΩなど)がなかったので10kΩにしました。

湯沸かし器は本来は220Vのコンセントに繋ぐものらしいですが、100Vでも大丈夫とのレビューがありました。面白いのが、100Vだと沸騰に非常に時間がかかるというレビューが多く評価がちょっと低いです。しかし今回は60~70℃での保温が目的なためデメリットになりません!(にっこり)

湯沸かし器は大きな電流を必要とするため、一般にリレーモジュールかトランジスタでスイッチングすることになります。トランジスタのほうが小型化・静音性・応答速度のメリットがありますが、リレーは制御回路と大電流回路が物理的に絶縁されているのが特徴です。今回は100Vの電熱線ですし水回りで扱うこともあるのでリレーのほうが良いでしょう。このリレーは10Aいけるようなので大丈夫です。

最後に注意しなければならないのが、延長コードをリレーに繋ぐ方法です。参考文献では圧着端子で延長して繋いでいますが、電流によっては太さが足りずに焼ける可能性があります。湯沸かし器は220Vで600Wとのことなので、計算すると100Vでは1~2Aの電流が流れる(本当?)。2.5Aには0.2sq(スケア)の太さが必要で・・・と、このあたりでよくわからなくなったため延長コードの元々の太さを使うことにしました。

コードが多いので適当な箱に収めました。

ソフトウェア(Arduino)

まず、温度センサー(DS18B20)用のライブラリをインストールします。[ツール] > [ライブラリを管理…] から検索してインストールします。※もし以降で「OneWireライブラリも必要だよ」と言われたら同様にインストールしてください。

コードはこちら。

#include <DS18B20.h>

void setup() {
  Serial.begin(9600);
  pinMode(3, OUTPUT); //電熱線リレーはデジタル3番
  digitalWrite(3, HIGH); //HIGHで絶縁(OFF)
}

DS18B20 ds(2); //温度センサーはデジタル2番
float threshold = 63.0; //温度しきい値
float temp;

void loop() {
  //温度取得
  while (ds.selectNext()) {
    temp = ds.getTempC();
  }
  Serial.println(temp);

  //電熱線リレー動作
  if (temp < threshold){
    Serial.println("ON");
    digitalWrite(3, LOW); //LOWで導通(ON)
  } else {
    Serial.println("OFF");
    digitalWrite(3, HIGH); //HIGHで絶縁(OFF)
  }
  delay(2000);
}

注意したいのは、私が買ったリレーは無電力およびデジタルHIGHでOFF(左導通)、デジタルLOWでON(右導通)です。繋ぐ場所を入れ替えてやればHIGH=ONにもできるのですが、安全のため無電力時をOFFにしたい。そうするとどうしてもHIGH=OFFで運用するしかないのかなぁ、という感じです。ややこしいです。

もう一つの注意点は、温度センサーが外れると0℃を返すようで、永久に加熱を続けてしまいます。フェールセーフに反していますので調理中は台所を離れないようにしてください。※そもそもこの湯沸かし器は水からはみ出ると焼け焦げるようなので要注意です

台所でやる前に [ツール] > [シリアルモニタ] で動作確認しておくと良いかと思います。

本番

本当はジューシーな肉塊が食べたいのですが、とりあえず温泉卵を。ArduinoはDCジャック給電(7~12V)します。

常温の卵を使い、60℃付近からスタートして30分間動作させました。台所にあった温度計が65℃を指したあたりでリレーがカチカチと動作していました。温度計の誤差か、温度センサーの誤差か、対流がなくて温度勾配があったのか、要改善です。※製品は水を対流させています。

はい、できました。温泉卵の63℃は一般に「やや柔らかめ」なのでのちょうど良い仕上がりに見えます。

おわりに

材料費は・・・考えないことにしましょう。製品を買ったほうが楽で安全。Amazonで1万円未満からあるようですしね。

SNS等でお気軽にご連絡ください

※当ブログに関することは何でもご相談・ご依頼可能です(Servicesになくても)
※TwitterはFF外の場合はDMではなく返信orメンションでお願いしますm(_ _)m

情報発信しています

質問・コメントはSlackやDiscordでお気軽に

勉強会の告知はこちらで

Raspberry Pi / Arduino
この記事を書いた人

博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。物価上昇のため半額弁当とともに絶滅寸前。

この記事をシェアする
Vignette & Clarity(ビネット&クラリティ)
タイトルとURLをコピーしました