Make.

I2C温度センサー(ADT7410)を使う

Pocket

Raspberry Piで温度を計るため、I2C温度センサー(ADT7410)を使う方法を解説します。
I2C温度センサー(ADT7410)モジュールを使用することで、簡単に温度を計ることができます。


ADT7410との接続方法

ADT7410をI2CでRaspberryPiと接続する方法は、I2Cを使う(設定編)に記載しています。


プログラムで操作する(Python)

Raspberry PiのI2Cにはリスタートコンディションがうまく設定できないため、レジスタを指定して1byteだけ読み出すことができないようです。
参考サイト:http://raspberrylife.wordpress.com/2013/06/29/temperature-sensor3/
先頭から複数バイトを読みだすことは可能であるようなため、ここでは先頭バイトから複数バイト読みだす方法をとります。

13bit計測モードで1秒毎に温度を取得するプログラム「adt7410.py」を作成します。

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import smbus
import time
 
i2c = smbus.SMBus(1)
address = 0x48
 
while True:
    block = i2c.read_i2c_block_data(address, 0x00, 12)
    temp = (block[0] << 8 | block[1]) >> 3
    if(temp >= 4096):
        temp -= 8192
    print("Temperature:%6.2f" % (temp / 16.0))
    time.sleep(1)

以下のコマンドを実行すると、1秒毎にI2C温度センサーから値を呼び出し、今の気温を出力します。

$ sudo python adt7410.py

このように簡単なプログラムで、温度を測ることが可能になります。

Pocket