I2C温度センサーで室温計測

Raspberry Pi 3Bでスクリプト経由で計測データを得る

基礎は、

で述べました。実行すると現在の温度が得られるbashスクリプトを作っておきます。元のコードは、

import smbus

bus = smbus.SMBus(1)
addr = 0x48

# 温度レジスタ読み取り
raw = bus.read_word_data(addr, 0x00)

# バイト順入れ替え
raw = ((raw & 0xFF00) >> 8) | ((raw & 0x00FF) << 8)

# 13bit → 3bit右シフト
raw = raw >> 3

# 0.0625°C/LSB
temp = raw * 0.0625

print(temp)

Arduino nanoのスケッチと違い計測結果が一つだけ表示されます。python3のコードです。実行してみましょうかね。

nao@hawk:~ $ ./rtemp.sh
Tue 21 Jul 15:34:52 JST 2026, 31.8125

今日は結構室温高いですね。rtemp.shでは上のpythonのコードを使ってます。

nao@hawk:~ $ cat rtemp.sh
#!/bin/bash

now=`date`
temp=`python3 copi13.py`
echo ${now}, ${temp}

日時に続けて計測結果を足しているだけです。これをcronの仕組みで定期的に起動して、結果をファイルに書き足していけば温度計測結果の日時変化がテキストファイルとして得られます。上記のrtemp.shを駆動しているのは、

# m h  dom mon dow   command
*/30 * * * * /home/nao/rtemp.sh >> /mnt/nas/ctemp/rasrdata.csv 2> /dev/null

で、30分毎に記録しています。ファイルの中身(一部)は、

Sun 5 Jul 14:30:01 JST 2026, 26.125
Sun 5 Jul 15:00:01 JST 2026, 26.0625
Sun 5 Jul 15:30:01 JST 2026, 26.0
Sun 5 Jul 16:00:01 JST 2026, 26.0625
Sun 5 Jul 16:30:01 JST 2026, 25.9375
Sun 5 Jul 17:00:01 JST 2026, 26.0
Sun 5 Jul 17:30:01 JST 2026, 26.0625
中略
Tue 21 Jul 00:00:01 JST 2026, 30.4375
Tue 21 Jul 00:30:01 JST 2026, 30.375
Tue 21 Jul 01:00:01 JST 2026, 30.375
Tue 21 Jul 01:30:01 JST 2026, 30.3125
Tue 21 Jul 02:00:01 JST 2026, 30.375
Tue 21 Jul 02:30:01 JST 2026, 30.3125
Tue 21 Jul 03:00:01 JST 2026, 30.25
Tue 21 Jul 03:30:02 JST 2026, 30.25
Tue 21 Jul 04:00:01 JST 2026, 30.3125
Tue 21 Jul 04:30:01 JST 2026, 30.25
Tue 21 Jul 05:00:01 JST 2026, 30.125
Tue 21 Jul 05:30:01 JST 2026, 30.25
Tue 21 Jul 06:00:01 JST 2026, 30.3125
Tue 21 Jul 06:30:01 JST 2026, 30.3125
Tue 21 Jul 07:00:01 JST 2026, 30.375
Tue 21 Jul 07:30:01 JST 2026, 30.25
Tue 21 Jul 08:00:02 JST 2026, 30.3125
Tue 21 Jul 08:30:01 JST 2026, 30.3125
Tue 21 Jul 09:00:01 JST 2026, 30.3125
Tue 21 Jul 09:30:01 JST 2026, 30.375
Tue 21 Jul 10:00:01 JST 2026, 30.625
Tue 21 Jul 10:30:02 JST 2026, 30.6875
Tue 21 Jul 11:00:01 JST 2026, 31.0
Tue 21 Jul 11:30:01 JST 2026, 30.9375
Tue 21 Jul 12:00:01 JST 2026, 31.125
Tue 21 Jul 12:30:01 JST 2026, 31.4375
Tue 21 Jul 13:00:02 JST 2026, 31.125
Tue 21 Jul 13:30:01 JST 2026, 31.0625
Tue 21 Jul 14:00:01 JST 2026, 31.25
Tue 21 Jul 14:30:01 JST 2026, 31.625
Tue 21 Jul 15:00:01 JST 2026, 31.4375
Tue 21 Jul 15:30:01 JST 2026, 31.625

二週間強の期間に渡って記録していますから、さすがに室温が上がってきましたね。その傾向や、一日内の変化は数字面だけ見ていてもわかりにくいです。グラフ化すると良いのですが、この一連の室温計測の最後で触れます。

コメント