東京デバイセズのUSB接続の熱電対温度センサ「TDSN7400」を使えば、K型熱電対プローブの温度をRaspberry Piから簡単に読み取れます。今回はRaspberry Piを使って、ツールの準備からPythonで温度を取り出すところまでをわかりやすく解説します。
1. TDSN7400ってどんなセンサー?
TDSN7400はUSBでつなげるK型熱電対用の温度センサです。熱電対プローブを接続すると、Raspberry Piからコマンドで温度を読み取れます。
- 対応熱電対:K型
- 測定レンジ:-40~1,200℃
- 最小測定頻度:100ミリ秒
- USB接続:USB mini-B
測定レンジはセンサ本体の性能です。実際に測れる温度は、接続する熱電対プローブの耐熱温度によって変わります。
2. はじめる前に準備するもの
| アイテム | 説明 |
|---|---|
| Raspberry Pi(OSインストール済み) | Raspberry Pi OSが入っているもの |
| TDSN7400 熱電対温度センサ | 付属のUSBケーブルでRaspberry Piに接続します |
| TDAC-THC1 TDSN7400対応 K型熱電対プローブ | 温度を測るためのプローブです |
| インターネット環境 | ツールのインストールやソースコードの取得で使います |
| Python3 | Raspberry Pi OSには通常最初から入っています |
3. 必要なツールをインストールしよう
Raspberry Pi のソフトをアップデートしてから、必要な開発ツールやライブラリをインストールします。
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential libusb-dev python3
- git はソースコードのダウンロード用です。
- build-essential はソースコードをビルドするためのツールです。
- libusb-dev はUSB接続デバイスを扱うためのライブラリです。
4. USBの権限を設定する
一般ユーザーでもTDSN7400にアクセスできるように、USBの権限を設定します。
下記のコマンドで設定ファイルを作ります。32ee と 1780 はTDSN7400のベンダーIDとプロダクトIDです。
sudo tee /etc/udev/rules.d/99-usb-tokyodevices.rules <<EOF
SUBSYSTEM=="usb", ATTR{idVendor}=="32ee", ATTR{idProduct}=="1780", MODE="0666"
EOF
変更を反映します。
sudo udevadm control --reload-rules
sudo udevadm trigger
設定後、TDSN7400を接続し直すと認識が安定します。
5. TD-USBツールを準備しよう
センサを操作するには、「TD-USB」という公式のコマンドラインツールを使います。GitHubからダウンロードしてビルドします。
git clone https://github.com/tokyodevices/td-usb.git
cd td-usb
make
ちゃんと動くか試してみましょう。
./td-usb
# → バージョン情報が表示されれば成功!
TDSN7400から温度を1回読み取ってみます。
./td-usb tdsn7400 get
24.875000
数値が1行表示されれば成功です。この数値は摂氏の温度です。
6. Pythonで温度を取得する
次のPythonスクリプトを書いて、10秒おきに温度を取ってみます。td-usbフォルダの中に read_tdsn7400.py というファイルを作成してください。
#!/usr/bin/env python3
import subprocess
import time
CMD = ['./td-usb', 'tdsn7400', 'get']
def read_temperature():
result = subprocess.run(CMD, capture_output=True, text=True)
if result.returncode != 0:
print("エラーが発生しました:", result.stderr.strip())
return
temp_text = result.stdout.strip()
try:
temp = float(temp_text)
except ValueError:
print("温度を読み取れませんでした:", temp_text)
return
print(f"温度: {temp:.2f} ℃")
if __name__ == "__main__":
print("TDSN7400の測定を開始します。終了するにはCtrl+Cを押してください。")
try:
while True:
read_temperature()
time.sleep(10)
except KeyboardInterrupt:
print("\n測定を終了しました。")
7. 実行してみよう
td-usbフォルダの中で、次のコマンドを実行します。
python3 read_tdsn7400.py
実行すると、10秒おきに温度が表示されます。
TDSN7400の測定を開始します。終了するにはCtrl+Cを押してください。
温度: 24.88 ℃
温度: 24.94 ℃
温度: 25.06 ℃
測定を止めるときは、CtrlキーとCキーを押してください。
8. おわりに
この記事では、Raspberry PiからTDSN7400を使ってK型熱電対プローブの温度を読み取る方法を紹介しました。コマンドで温度が取れるようになると、Pythonのプログラムに組み込んで、実験や装置の状態監視にも使いやすくなります。
高温を測る場合は、使用する熱電対プローブの耐熱温度を必ず確認してから使ってください。


