温度(室温)のリモートセンシング、モニタリング

サーミスタ(測温抵抗体)とArduino,ELEGOOを使った精密温度計測

温度計は0.1℃単位での表記が多いと思います。もう少し正確に、室温付近で0.01℃の分解能で測定して、パソコンで記録する方法をご紹介いたします。自由研究等にご利用ください。
Last undatepd on Aug. 8, 2022.


全体の手順

全体の手順は以下の通りです。必要なソフトやファイルは本ページからダウンロードできます。Arduinoの使用経験が無くてもパソコンが使える人であれば完成できると思います。

  1. サーミスタとArduino nano(ELEGOOでも可能)、抵抗をブレッドボード上で接続する。
  2. Arduino nano(ELEGOOでも可能)にプログラムを保存する。
  3. Arduinoに付属のシリアルモニターを使い、パソコン上で温度を読む。

用意する部品類

今回はArdiuno nano(ELEGOO)と普通の炭素被膜抵抗、サーミスタを使いました。

  1. ELEGOOチップ ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換 (3)
  2. サーミスタ(温度測定用の抵抗体)
  3. ブレッドボード、470Ωの抵抗(炭素皮膜抵抗)
  4. データを記録するパソコン(今回はエクセルで集計します)

使用したサーミスタ103AT-11

サーミスタの使い方

室温付近の温度の測定には熱電対よりもサーミスタが有利です。今回はもっとも一般的な103AT-11を使用します。103AT-11は25℃で10.0 kΩ、B定数が3435Kであることがわかります。B定数については以下の式で表される温度係数であります。式変形して測定した抵抗Rから温度Tを求められるようにします。下の式を見るとB定数の単位が[K]であることがわかります。


サーミスタの抵抗から温度に変換する式。logは自然対数です。Tは絶対温度(K)です。

手順1:Arduino(ELEGOO)で温度計測するための測定回路を組みます。

一つの温度計だけを見れば回路はとても簡単であることが分かります。
(5V)-(Thermistor)-(Analog IN)-470Ω-GND
が基本的な接続となります。この接続により、温度上昇=サーミスタの抵抗が下がる=Analog INで計測される電圧が上がる、 という変化を示します。この変化は線形(一直線)ではありません。計算は全てArduinoの中で示すのでご安心ください。 以下の写真をよく見て、ブレッドボードで真似するだけでもOKです。
ブレッドボードでの接続


温度計測の回路

ここで103ATの場合、1 KΩから30 KΩ程度が測定できればよいことがわかります。 5Vを印加した時の電流値はそれぞれ5 mA, 0.2 mA程度となります。今回はのアナログ入力の基準(AnalogReference)として5 Vを用いました。この基準電圧1024分割して測定しますので、470Ωの抵抗で読みだします。

この回路で電圧Vを測定した時、サーミスタの抵抗R1はR1=5.0R2/V-R2で求められますね。温度センシングなどにご使用の場合にはもう少し高い抵抗域で測定しますので、直列抵抗も470 Ωよりも大きい1 kΩや4.7 kΩを使用することになると思います。


手順2:Arduino(ELEGOO)のスケッチ(プログラム)

私が使ったプログラム(スケッチ)を以下に示します。コピーしてお使いください。Analog INとしてはA0とA6を使っています。
温度計測のArduinoのスケッチ
これにより、20秒(20000msec)に一度、計測が行われます。肝心の温度への変換は意外と複雑な式で
Temp1=1/(0.003356+0.0002911*log((48.0810*iMax/sensorValue1)-0.0470))-273.15;
となります。sensorValue1がAnalog INの読み取り値(の和)となります。iMaxが読み取り回数です。ArduinoのAnalog Inはおおよそ10kHzの速度があります。つまり、1秒に1万回程度の計測が出来ます。今回はそれらの平均値を用いて温度に変換しています。

温度計測の事例



戸田システムウェア

ここで公開するアイデア/装置は安全性を保障しておりません。用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。本サイトの情報の営利目的での利用はご遠慮ください。本サイトの内容の無断転載を禁じます。© 2022 TYK