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
このように簡単なプログラムで、温度を測ることが可能になります。