眠った危機管理能力を呼び覚ませ イケオジ流!熱中症・火災を防ぐ!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化:クラウドに送信して、遠くから温度を監視

次回は、家一軒、AIが守る時代へ イケオジ流!Raspberry Piで作る究極のオールインワン防災システムです。

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

最初の一歩が未来を変える イケオジ流!ラズベリーパイ:本体・モニター・センサー類の部品リスト

(旧twitter) 今日のイケオジ 

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

ここでは、イケオジお勧めの神経を刺激する趣味、人生を面白くする道具、大人を進化させるアイテム、イケオジ愛用品を紹介します。

ただの買い物ではない。「人生を再起動する装備」だ。

ミニPCブランド【GMKtec】:[PR]Intel/AMD最新プロセッサ搭載で、デスクに置きやすいコンパクトサイズながら本格的な処理性能を実現しています。AMD Ryzen AI Max+395など最新AIチップ対応モデルを用意しており、LLM・データ分析用途にも対応できます。

ミニPC専門店 GEEKOM:[PR]複数のコアとスレッドにより、高い処理能力を実現。様々なニーズに応え、4つの画面での作業をサポート。シンプルかつ洗練された工業デザイン。メモリやストレージの簡単な拡張。コンパクトで持ち運びやすい。ビジネスからパーソナルまで多様なシーンに対応。

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

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

デル株式会社

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

富士通 FMV LIFEBOOK PH

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

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

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


コメントを残す

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

CAPTCHA


Back to top