概要
おそらく最も安価に温度を計測することができるNTCサーミスタによる温度計測。
外観
回路
部品
サーミスタ 10kΩ (10本入)¥150
https://akizukidenshi.com/catalog/g/gP-17250/
プラグラム(MicroPython)
import machine
import utime
import math
adc = machine.ADC(machine.Pin(33))
adc.atten(machine.ADC.ATTN_11DB)
# サーミスタの設定
B = 3960 #B定数
To = 25 #基準温度
Ro = 10000 #基準温度時の抵抗値
# 回路の設定
Vcc = 3.3 #入力電圧
R1 = 10000 #分圧抵抗
Vout = adc.read_u16()* 3.3/65535
R = R1 * Vout/(Vcc-Vout)
T = 1/(1/(To+273.15)+math.log(R/Ro)/B)-273.15
print("Temp: " + str(T))
直線近似
上記のプログラムは、下式に基づくため、対数計算を行っている。
PIC等のマイコンの場合は、対数計算が手間であるため直線近似をすることが常用されるとのこと。
算定のためのエクセルファイル
thermistor_linear_approx.xls
補正
実際にDHT20の温度と測ってみると、結構ずれるため、補正が必要と思われます。
y = 0.0922*(x**1.6365)
または
y = 1.2763*x-13.905
これは一日試しに外気温を測定した結果のため、いつかちゃんと校正用のデータを取りたい。。。
詳細
MicroPythonでサーミスタから温度取得
https://tiblab.net/blog/2022/12/use_thermistor_by_esp32_micropython/
参照サイト
5ドル!ラズパイ・ゼロ(Raspberry pi Zero)でIoT (22) アナログ温度センサ4 サーミスタ
https://www.denshi.club/pc/raspi/5raspberry-pi-zeroiot-4.html