必要なもの
- Raspberry Pi
- Raspberry Pi 3 model B+を使用しています
- K型熱電対アンプモジュール(MAX31855使用)
- K型熱電対
- MiSUMiとかで買えます https://jp.misumi-ec.com/vona2/detail/110500113720/
- ブレッドボードおよびジャンパーワイヤ
- はんだとはんだこて
K型熱電対モジュールについて
- Adafruit社の熱電対を使って温度を取得できるモジュール
- K型の熱電対のみ使用可能
- -200〜1350℃の範囲を0.25℃刻みで出力可能、ただしK型熱電対の精度は±2℃から±6°C程度
- SPIでデータ出力
- 詳しい情報はデータシートを参照
モジュールの準備とRaspberry Piとの接続
買ったままのモジュールはピンと熱電対をつけるコネクタが付いていないので、はんだ付けする必要があります。
次にK型の熱電対を取り付けます。
基盤には「Yellow +」と「Red -」と書いてありますが、おそらく熱電対は赤(もしくは緑)と白になっていると思います。
これはJIS C 1602でK熱電対は赤(+)と白(-)と決められているためです。
一方、アメリカのASTM E230では黄(+)と赤(-)となっているので基盤はこの表記に従っていると考えられます。
同じ赤が+だったり-だったりしてややこしいので気をつけてください。
(間違えて配線しても壊れることはありません。温度上げても出力結果が下がるだけです。)
Raspberry Piとモジュールをブレッドボードを使って接続します。
- MAX31855(Vin) ⇔ GPIO1(3.3V)
- MAX31855(GND) ⇔ GPIO6(Ground)
- MAX31855(DO) ⇔ GPIO21(MISO)
- MAX31855(CS) ⇔ GPIO29(BCM5)
- MAX31855(CLK) ⇔ GPIO23(SCLK)
(Raspberry PiのGPIOピン配置は https://pinout.xyz/ などを参照)
Raspberry Piの準備とプログラムでの読み出し
使用しているRaspberry PiのOSバージョンは以下の通りです。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
SPIを有効化します。
$ sudo raspi-config
-> 5 Interfacing Options
--> P4 SPI
MAX31855のライブラリをインストールします。
Adafruit社から提供されているCircuitPythonというものを使用します。
$ sudo pip3 install adafruit-circuitpython-max31855
Pythonのプログラムは以下の通りです。
# -*- coding: utf-8 -*-
import board
import busio
import digitalio
import adafruit_max31855
spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
cs = digitalio.DigitalInOut(board.D5)
max31855 = adafruit_max31855.MAX31855(spi, cs)
print(max31855.temperature)
実行すると温度が表示されます。
$ python3 max31855.py
23.75
# K熱電対の先端を指で少し触って実行すると、温度が上がることが確認できます。
$ python3 max31855.py
28.0
熱電対を使って温度を測りたいときにご活用ください。