プロジェクト10:サーミスタで温度モニタリング
このプロジェクトで学ぶこと: センサーの生の電圧値を数式で実際の温度に変換する方法を学びます。アナログ入力と数学の組み合わせで「見えないものを数値化」する体験です。
完成イメージ
[シリアルモニタに温度が摂氏で表示されているスクリーンショットを挿入]
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Uno R3 | 1 |
| サーミスタ(NTC型、10kΩ) | 1 |
| 抵抗 10kΩ | 1 |
| ブレッドボード | 1 |
| ジャンパー線 | 数本 |
回路図と配線
[回路図画像を挿入]
配線手順
- サーミスタの一方を 5Vピン に接続する
- サーミスタのもう一方を A0ピン と 10kΩ抵抗 に接続する
- 10kΩ抵抗のもう一方をGNDに接続する
Arduinoスケッチ(プログラム)
// サーミスタで温度を摂氏表示
#include <math.h> // log()関数を使うため
const int THERMISTOR_PIN = A0;
const float SERIES_RESISTOR = 10000.0; // 直列抵抗値(10kΩ)
const float NOMINAL_RESISTANCE = 10000.0; // 25℃時のサーミスタ抵抗(10kΩ)
const float NOMINAL_TEMPERATURE = 25.0; // 基準温度(25℃)
const float B_COEFFICIENT = 3950.0; // Bコンスタント(データシート参照)
void setup() {
Serial.begin(9600);
}
void loop() {
int rawValue = analogRead(THERMISTOR_PIN); // 0〜1023
// サーミスタの抵抗値を計算
float resistance = SERIES_RESISTOR / (1023.0 / rawValue - 1.0);
// Steinhart-Hart近似式で温度に変換
float steinhart = resistance / NOMINAL_RESISTANCE;
steinhart = log(steinhart);
steinhart /= B_COEFFICIENT;
steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15);
float tempC = (1.0 / steinhart) - 273.15;
Serial.print("温度: ");
Serial.print(tempC, 1); // 小数点1桁で表示
Serial.println(" ℃");
delay(1000);
}
コードのポイント解説
サーミスタの特性 サーミスタ(NTC型)は温度が上がると電気抵抗が減ります。プロジェクト06の電圧分割回路と同じ回路で、温度→抵抗値の変化を電圧として読み取ります。
Steinhart-Hart近似式 サーミスタの非線形な特性を温度に変換する標準的な数式です。log()は自然対数、273.15は絶対温度への変換(℃→ケルビン)です。数式が複雑に見えますが、データシートのB定数を入れると正確な温度が得られます。
float型 小数点以下の精度が必要な計算にはintではなくfloat(浮動小数点)を使います。温度のような実数値の計算には必須です。
動作確認
- スケッチをアップロードしてシリアルモニタを開く(9600bps)
- 室温に近い温度(20〜30℃程度)が表示されれば成功
- サーミスタを指でつまむと温度が上がることを確認する
このプロジェクトで学んだこと
- センサー値の変換: 生の電圧値を数式で意味ある数値に変換する方法を学びました
- float型の使用: 実数計算に必要なデータ型を習得しました
- ライブラリ関数:
math.hのlog()など、組み込み数学関数の使い方を学びました
次のプロジェクト「ボリュームで電圧制御」では、ポテンショメーターを使ってアナログ入力をよりシンプルに体験します。
深掘り:技術の背景と社会への広がり
温度センサーの歴史:測れることで見えてくる世界
温度を数値で測る最初の試みは1714年にダニエル・ファーレンハイトが水銀温度計を発明したことにさかのぼります。電気で温度を測る原理(熱電対)は1821年にトーマス・ゼーベックが発見し、これが20世紀の電子温度計の基礎となりました。サーミスタが実用化されたのは1930年代で、それまで使われていた白金測温抵抗体より安価で小型だったため急速に普及しました。
気候変動モニタリングと精密農業への応用
温度センサーは現代の気候科学の基盤技術です。世界中の気象観測所・海洋ブイ・衛星から収集されるデータがIPCCの気候変動報告に使われ、政策決定に影響を与えています。農業分野では土壌温度・気温・湿度を組み合わせた精密農業システムが、作物の生育最適化・病害虫の予測・収量向上に貢献しています。日本の農業IoT市場は急速に成長しており、センサーで集めたデータをAIで分析して農作業を自動化する試みが各地で進んでいます。
← プロジェクト09:LCD表示 | 全プロジェクト一覧 | 次のプロジェクト:ボリュームで電圧制御 →

