LoginSignup
19
19

More than 3 years have passed since last update.

Raspberry PiでMAX31855を使って熱電対でデータ取得

Posted at

必要なもの

K型熱電対モジュールについて

モジュールの準備とRaspberry Piとの接続

買ったままのモジュールはピンと熱電対をつけるコネクタが付いていないので、はんだ付けする必要があります。
DSCN0693.JPG
DSCN0694.JPG

次に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/ などを参照)
DSCN0695.JPG

fritzingで書いた配線図は以下です。

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のプログラムは以下の通りです。

max31855.py
# -*- 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

熱電対を使って温度を測りたいときにご活用ください。

19
19
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19