熱中症・火災を防ぐ!Raspberry Piでつくる温度監視システム


前へ⇒ 豪雨・洪水対策!Raspberry Piで作る家庭用水位センサー

※当サイトは、アフィリエイトプログラムを利用して商品を紹介しています。

猛暑による熱中症や、急な温度上昇による火災の危険は誰にでも起こり得ます。Raspberry Piと温度センサーをつなぐだけで、室内の温度をリアルタイムに確認できる仕組みを自作できます。

防災・防犯の第一歩として、初心者でも簡単に始められる電子工作を紹介します。

  • Raspberry Pi
  • ADT7410 温度センサー
  • ブレッドボード(部品を差し込む板)
  • ジャンパーワイヤー(オス-メス)

温度センサー

ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサーモジュール: 計測器・センサー・ロガー 秋月電子通商-電子部品・ネット通販

ADT7410は I2C通信 という方式でラズパイと会話します。配線はとてもシンプルです。

ADT7410 ピンRaspberry Pi ピン番号説明
VCCPin 1(3.3V)電源(3.3V)
SCLPin 5(GPIO3)クロック線
SDAPin 3(GPIO2)データ線
GNDPin 6(GND)グランド(マイナス側)

必ず 3.3V に接続してください。5Vに接続すると壊れる危険があります。

Raspberry pi本体 GPIOピンの配置

 3.3V  (1) (2)  5V
 GPIO2 (3) (4)  5V
 GPIO3 (5) (6)  GND
 GPIO4 (7) (8)  GPIO14
  GND  (9) (10) GPIO15
 GPIO17(11)(12) GPIO18
 GPIO27(13)(14) GND
 GPIO22(15)(16) GPIO23
 3.3V  (17)(18) GPIO24
 GPIO10(19)(20) GND
 GPIO9 (21)(22) GPIO25
 GPIO11(23)(24) GPIO8
  GND  (25)(26) GPIO7
 ID_SD (27)(28) ID_SC
 GPIO5 (29)(30) GND
 GPIO6 (31)(32) GPIO12
 GPIO13(33)(34) GND
 GPIO19(35)(36) GPIO16
 GPIO26(37)(38) GPIO20
  GND  (39)(40) GPIO21

I2Cを有効化する

Raspberry Piの初期状態ではI2Cは無効になっているため、有効化する必要があります。

  1. ターミナルを開きます。Ctrl + Alt + T を同時に押す。設定ツールを起動 sudo raspi-config
  2. メニューから以下を選択
    Interfacing Options → I2C → Enable

Interfacing Optionsを選択

I2Cを選択

3. 有効化を確認するメッセージが出るので「はい」を選択

4. 設定を保存してRaspberry Piを再起動 sudo reboot

5. 再起動後、コマンドでデバイスファイルがあるか確認。ターミナルを開きます。Ctrl + Alt + T を同時に押す。ls /dev/i2c-* → 出力に /dev/i2c-1 が表示されれば成功!

ADT7410のI2Cアドレスの仕組みと選び方
ADT7410のI2C通信

ADT7410はI2Cで通信する温度センサーです。
Raspberry Piなどから「どのデバイスに話しかけるか」を区別するために、I2Cアドレスが必要になります。

ADT7410のアドレスは固定ではなく、ハードウェアの設定ピン(A0, A1)によって変更できます。

ADT7410のアドレス設定方法

ADT7410には A0ピンとA1ピン という入力ピンがあります。
このピンを GND(0) または VDD(1) に接続することで、アドレスが決まります。

アドレスの範囲は 0x48〜0x4B です。

A1A0I2Cアドレス
000x48
010x49
100x4A
110x4B

(0 = GND、1 = VDD)

どう使い分けるの?
  • センサーを1つだけ使う場合
    → A0とA1をGNDに接続して、デフォルトの 0x48 を使うのが一般的です。
  • 複数のADT7410を同じI2Cバスに接続したい場合
    → それぞれのセンサーでA0/A1の接続を変えて、0x480x4B の範囲で違うアドレスを割り当てます。
    こうすることで、Raspberry Piはセンサーを区別して読み取れます。

実際にアドレスを確認する方法
  1. 配線を終えたら、ターミナルを開きます。Ctrl + Alt + T を同時に押す。 i2cdetect -y 1を入力して実行。

2. 表の中に 484B のどれかが表示されるはずです。

3. Pythonプログラムで通信する時は、そのアドレスを指定します。例:デフォルト(0x48)の場合 I2C_ADDR = 0x48

  1. ターミナルを開きます。Ctrl + Alt + T を同時に押す。
  2. 新しいファイルを作成します: nano shikosjikoondo.py
nano shikoshikoondo.py

3. 次に、以下のプログラムを入力します。

import smbus2 
import time

I2C_ADDR = 0x48   # ADT7410のアドレス(多くの場合0x48)
I2C_CH = 1        # I2Cのチャンネル(Raspberry Piは通常1)

bus = smbus2.SMBus(I2C_CH)

# 温度を読む関数
def read_temperature():
    try:
        data = bus.read_i2c_block_data(I2C_ADDR, 0x00, 2)
        raw = (data[0] << 8) | data[1]
        raw = raw >> 3  # 13ビットモード
        if raw & 0x1000:
            raw -= 1 << 13
        return raw * 0.0625  # 温度に変換
    except OSError as e:
        print("通信エラー:", e)
        return None

try:
    print("温度計測開始(10秒ごとに平均を表示します)")
    while True:
        readings = []
        for _ in range(10):   # 10回計測して平均を取る
            temp = read_temperature()
            if temp is not None:
                readings.append(temp)
            time.sleep(1)
        
        if readings:
            avg_temp = sum(readings) / len(readings)
            print("平均温度(過去10秒):{:.2f} ℃".format(avg_temp))
        else:
            print("データが取得できませんでした")

except KeyboardInterrupt:
    print("終了します")
    bus.close()

nanoで入力が終わったら、以下の手順で保存します。

  1. Ctrl + O を押す(ファイルを保存)
  2. Enter を押す(ファイル名を確定)
  3. Ctrl + X を押す(エディターを終了)

ターミナルを開きます。Ctrl + Alt + T を同時に押す。

実行します: python3 shikoshjikoondo.py

ターミナルに「平均温度」が10秒ごとに表示されれば成功です!

ADT7410で温度が測れるようになると、いろいろな工作に発展できます。

  • 室温モニター:部屋の温度が30℃を超えたらLEDを点ける
  • 温度ロガー:温度をCSVに記録して、グラフ化する
  • Webで表示:Flaskなどを使い、スマホから部屋の温度をチェック
  • IoT化:クラウドに送信して、遠くから温度を監視

次回は、水害・熱中症・防犯対策を1台で!Raspberry Piでつくるオールインワン防災システム です。

イケオジ流!ラズベリーパイ(Raspberry Pi)一覧はこちら

ラズベリーパイを始めるならこれ!本体・モニター・センサー類の商品リスト

(旧twitter) 今日のイケオジ 

イケオジのキング・オブ・アスリートへの道はこちら

プログラミングスクール:[PR]仕様書通りにコードを書ける、だけじゃない。業界でも稀な「2年間」という長期間の充実したカリキュラム、プログラミングをする前に知っておくべきITの基礎から徹底的に指導することで、IT未経験からでも、仕事も、働き方も選べる”希少型エンジニア”を育成します。

オンラインのプログラミングスクール:[PR]SiiD(シード)は、合同会社BugFixが運営するオンラインのプログラミングスクールです。登録者数12.7万人を誇るエンジニアYouTuberのセイト先生が運営しており、未経験者からITエンジニア転職を目指す方や、現役エンジニアのキャリアアップを支援するカリキュラムを提供しています。

ミニPC専門店:[PR]MinisforumのミニPCは、仕事向けのコスパ重視のミニPCや最新のCPUやGPUなどを使用した最新型ミニPC。省スペースながら高性能、豊かな接続端子、より良い冷却システムと静音性、メモリやストレージを増設など簡単、複数ディスプレイ同時に出力可能。

DELL:[アフィリエイト広告]抜群の価格競争力と製品の信頼性で、法人ユーザのみならず、個人・SOHOユーザからも高い支持を受けています。

デル株式会社

富士通:[PR]富士通パソコンFMVの直販サイト。予算や用途に合わせて機能が選べるカスタムメイドモデルFMVをはじめ、未使用・未開封のワケありパソコンやアウトレットなど直販ならではの特価品も豊富に取り揃えています。最新モデルは送料無料&富士通保証付きです。

富士通 FMV LIFEBOOK PH

激安な中古パソコンといえば:[PR]圧倒的な品揃えと低価格: 年間100万台の中古パソコンを取り扱い、スケールメリットを活かした低価格を実現。NEC、富士通、東芝、パナソニック、HP、DELLなど、国内外の人気メーカーのノートパソコン、デスクトップPC、液晶モニター、タブレット、さらにはワークステーションやゲーミングPCまで幅広く取り揃えています。

パソコン直販 驚きのプライス!

さあ、勇気を出してイケオジブログをシェアしよう!


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


PAGE TOP