2026年1月24日土曜日

2ch温度ロガーの製作(10;評価)

しばらく放置していた2ch温度ロガーのプログラム書き換えやケースへのラベル貼りが終わったので、ヨーグルト発酵時の温度推移を記録して評価してみました。

発酵器の設定温度は40℃なのですが、温度ロガーの示す値は44.3℃と高い。まぁ発酵器も自作なので温度の精度は不明ですが、こんなに違うのはちょっと変。以前から薄々高くでるなと思ってはいたのですが。


発酵器は以前、納豆発酵器として作った以下です。最近はもっぱらヨーグルト作りに活用しています。もう15年になるのかと少々驚いてます。
センサの一つは扉の取っ手に引っかけてあります。稼働中は扉も若干温まるので室温よりは高めになります。温度コントローラの温度表示が消えているように写っていますが、ダイナミック点灯で、カメラのシャッター速度が速くて写りませんでした。

もう一つのセンサは、発酵器の内部の牛乳ヨーグルトの種を入れたタッパの横。発酵器の温度センサと並べて配置してあります。


1分毎に記録した温度推移はこんな感じ。45℃近くまで上がっていますが、実際はこんなに高くないと思う。室温が12時前後で高いのはファンヒータを動かしていたため。


ChatGPTにESP32のAD変換について聞いてみて、個体ごとにキャリブレーション値を持っているのでそれで補正すればよい、との回答だったので一応キャリブレーション値を表示してみた。

デフォルトVref(mV) 1100に対して、1135だったので少々高い。ここから逆算して温度を補正すると44.6℃が41.7℃になる。それでも高い気がする。補正値を考慮して電位を返してくれる下記の関数があるのでそれを組み込んでみた。

uint32_t voltage_mV = esp_adc_cal_raw_to_voltage(adcRaw, &adc_chars);

それでも、手元にあるシンワの温度計2台が示す室温19.7℃に対して、ch1:21.1℃, ch2:21.4℃ と約1.5~1.8℃程高い温度になる。chの温度差はセンサの個体差だと思う。

chatGPTに聞いたら以下の答えが返ってきた。

原因①:MCP9700Aの仕様上の誤差(一番大きい)

データシートより

  • 精度:±2℃(典型)

  • 室温付近でも普通に ±1℃ 以上ズレる

つまり👇

1.5℃ズレてても「正常範囲」

これ、地味にショックですが事実です😅

今すぐできる対策(効果順)

対策①:1点校正(超おすすめ)

室温を正解として補正

const float tempOffset = -1.5; // 実測差分 temperatureC += tempOffset;

👉 温度センサは 校正してナンボ


ということでオフセット補正することにします。

0 件のコメント:

コメントを投稿