logo
Published on

Raspberry Piに「PT1000」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは多様な入出力機能を備えたシングルボードコンピュータであり、センサーやアクチュエーターを制御するのに適しています。この記事では、温度センサー「PT1000」をRaspberry Piに接続し、温度を制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. PT1000温度センサーの概要

PT1000は、抵抗が温度に応じて変化するプラチナ抵抗温度センサーの一種です。温度に応じた抵抗の変化を計測することで、周囲の温度を精密に検知することができます。Raspberry Piに接続して使用する際は、アナログ信号をデジタル信号に変換する方法が必要です。

2. PT1000の接続

PT1000の接続には、アナログデジタル変換器(ADC)が必要です。Raspberry PiのGPIOピンに接続する前に、ADCを介してアナログ信号をデジタル信号に変換します。一般的なADCとしては「MCP3008」が利用されます。

以下は、PT1000とMCP3008を接続する例です。

  • PT1000接続:

    • VCC: 3.3V
    • GND: GND
    • Signal: MCP3008のアナログ入力ピン(例:CH0)
  • MCP3008接続:

    • VDD: 3.3V
    • VREF: 3.3V
    • AGND: GND
    • CLK: GPIO11
    • DOUT: GPIO9
    • DIN: GPIO10
    • CS/SHDN: GPIO8

3. Raspberry Piコードの作成

Raspberry Pi上でPythonを使用してPT1000を制御するためのサンプルコードを以下に示します。

import spidev
import time

# SPIデバイスの設定
spi = spidev.SpiDev()
spi.open(0, 0)  # bus, device

def read_adc(channel):
    adc = spi.xfer2([1, (8 + channel) << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data

def convert_to_temperature(adc_value):
    # PT1000の抵抗-温度変換式に基づいて温度を計算
    resistance = (1023.0 / adc_value - 1) * 1000
    temperature = (resistance - 1000) / 3.85
    return round(temperature, 2)

try:
    while True:
        adc_value = read_adc(0)  # CH0にPT1000を接続した場合
        temperature = convert_to_temperature(adc_value)
        print(f"温度: {temperature} ℃")
        time.sleep(1)

except KeyboardInterrupt:
    spi.close()

このPythonコードは、SPI経由でMCP3008からアナログデータを取得し、それをPT1000の温度に変換して表示します。1秒ごとに温度が更新されます。

4. コードの実行と動作確認

Raspberry Pi上でPythonスクリプトを実行し、PT1000からの温度データが正しく読み取られ、表示されることを確認します。これでRaspberry Pi上でPT1000を接続し、温度を制御する基本的な手順が完了しました。