Raspberry Piで温度センサADT7410を使用

秋月電子で購入した温度センサADT7410のモジュールをRaspberry Piに4個I2C接続して、温度を取得できるようにしました。
サーマルカメラの実験において室温を測定するために使用します。

Raspberry PiとADT7410を接続する基板は、もともとPICマイコンボードを挿すために作ったものを流用しました。

以下、使用したプログラムです。

from smbus2 import SMBus
import time
from datetime import datetime

interval_sec = 5

bus = SMBus(1)
addrs_all = [ 0x48, 0x49, 0x4A, 0x4B ]
addrs = []

for addr in addrs_all:
    try:
        bus.write_byte_data(addr, 0x03, 0x80)
        print("ADDR:{0:02X}".format(addr))
        addrs.append(addr)
    except:
        pass

d1 = datetime.now()

while True:
    d2 = datetime.now()
    if (d2 - d1).seconds < interval_sec:
        time.sleep(0.1)
        continue

    d1 = d2
    ts = ""
    d = datetime.now().timetuple()

    for addr in addrs:
        t = bus.read_word_data(addr, 0x00)
        t = (((t & 0xFF) << 8) | (t >> 8)) / 128
        ts = ts + ",{0:6.2f}".format(t)

    print("{d[0]:4d}/{d[1]:02d}/{d[2]:02d} {d[3]:02d}:{d[4]:02d}:{d[5]:02d}{ts}" \
        .format(d = d, ts = ts), flush = True)

実行すると以下のような出力が得られます。

ADDR:48
ADDR:49
ADDR:4A
ADDR:4B
2017/11/28 21:05:26, 18.02, 18.21, 18.10, 18.35
2017/11/28 21:05:31, 18.07, 18.22, 18.13, 18.37
2017/11/28 21:05:36, 18.15, 18.23, 18.17, 18.33