Raspberry PiにI2C温度センサーADT7410を2台、SHT-21を1台、合計3台接続して同時測定
カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:174)

↑B


2015.09.07

Raspberry PiにI2C温度センサーADT7410を2台、SHT-21を1台、合計3台接続して同時測定



先日、接続したSHT-21は温度と湿度を同時に測定可能なメリットはあるものの、I2Cアドレスが固定されていて1台のRaspberry Piに2台接続することが出来ないので他らしくADT7410というI2C温度センサーを購入しました。


このセンサーは1台500円と安く、基板上のジャンパーパターンをショートさせることでアドレスを4種類に変更可能、すなわち1台のRaspberry Piに4台まで接続可能です。今回は先日接続したSHT-21と合わせて2台のADT7410を接続してみました。接続はこの記事の一番上のように4つの端子を並列に接続するだけです。



i2cdetectで確認。SHT-21のアドレスが0x40(固定)、ADT7410が0x48と0x49で認識されています。

ADT7410はSHT-21に比べずいぶん簡単に温度取得出来るみたいです。
によると
i2cget -y 1 0x48 0x00 w
で読みだした値を加工するだけみたい。

今回は
を参考にPython用の汎用I2Cライブラリsmbusというのをインストール
sudo apt-get install python-smbus

スクリプトは下記のようにしました。
------------------------------------------------------------
import smbus
import urllib

i2c=smbus.SMBus(1)
address=0x48

block=i2c.read_i2c_block_data(address,0x00,2)
# calcurate to degree C
temp=(block[0]<<8 | block[1]) >>3

#if the temperature is minus
if(temp>=4096):
temp=temp-8192
temp=str(temp/16.0)
print("Temp:"+temp)
r=urllib.urlopen('http://xxxxx.xxx/xxx/xxxx.cgi?'+temp)
print r.read()
--------------------------------------------

3つのセンサーの結果をEXCELでグラフにしたのが下記


SHT-21が14ビットなのに対しADT7410がデフォルトでは13ビットのためちょっと荒いですが、接続した2つのADT7410はかなり似た温度を示しています。SHT-21はADT7410に比べ途中から0.2℃ほど高い値を示しています。最初は同じだったので自身の発する熱の影響とかでしょうか?

これで1台のRaspberry Piで最大5か所の温度を測定可能になりました。

Category:#電子工作 Raspberry Pi、Arduinoなど



■ ■ ■ コメント ■ ■ ■

いいっすね!=3

名前 ↑B

コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数:


→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:174) (コメント数)