校正というのか、温度を無理やりオフセットして手元にあるシンワの温度計と同じになるようにしました。写真はすべて同じ19.4℃を表示していますが偶々です。0.1~0.2℃位は動きます。そもそも単純にオフセットしてよいものなのか? 温度によって変わりそうな気もするけど。そこまで精度を求めるものでもないので、これで完了とします。
float temp_sensing(const int sensor) {
float offset;
uint32_t voltage_mV = 0;
const int N = 100;
for ( int i = 0 ; i < N ; i++ ) {
int adcRaw = analogRead(sensor);
// ADC値 → 電圧(mV)(補正済み)
voltage_mV += esp_adc_cal_raw_to_voltage(adcRaw, &adc_chars);
}
// 電圧 → 温度(℃)
float temperatureC = ((float)voltage_mV/N - 500.0) / 10.0;
// 温度センサ毎の校正
if (sensor==SENSOR_PIN1) offset = -0.9;
else offset = -1.2;
return temperatureC + offset;
}
需要があるか不明ですが、回路図とスケッチ全体はコードを少しキレイにしてから公開します。






















