眠った防災魂を呼び覚ませ イケオジ流!豪雨・洪水対策!Raspberry Piで作る家庭用水位センサー


老け込むには早すぎる。

最近、防災は行政任せ、自分には関係ない、市販品があるから十分、そんな大人が増えている。

原因は年齢じゃない。

“挑戦する神経が眠っているんだ”

水位センサーは、ただ水位を測る装置じゃない。

川の増水を見守る、用水路の異常を知らせる、浸水の危険をいち早く知らせる、家族の安心を守る。つまり、「眠った防災魂を呼び覚ます見張り番」だ。

自分の手で防災システムを作るたびに、止まっていた神経が目を覚ます。

災害を待つ人ではなく、災害に備える人へ変わろう。

老けるな、神経を止めるな。

人生はアフターファイブから始まる。

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

前回は、異変を見逃すな イケオジ流!センサーが反応した瞬間だけ撮影するAI防犯カメラ を紹介しました。

近年増える線状降水帯やゲリラ豪雨。河川や自宅周辺の水位をいち早く知ることが、防災行動に直結します。Raspberry Piと超音波センサーを使えば、水位を自動で計測するシステムを簡単に自作可能!

超音波を発射して反射までの時間を測ることで距離を計算できます。避難判断や早期警戒につながる電子工作を初心者向けに解説します。

  • Raspberry Pi 5(Raspberry Pi 4でも可)
  • HC-SR04 超音波距離センサー
  • ジャンパーワイヤー(オス-メス)
  • 抵抗(2.2kΩと3.3kΩ) → 電圧を5V→3V以下に変換するために使用
  • ブレッドボード(あると便利)

[PR]抵抗セット

[PR]HC-SR04 超音波距離センサー

抵抗値の見方(色コード)

抵抗には、4本または5本のカラーリングが印刷されています。
色の組み合わせで抵抗値を表しています。

例:2.2kΩ の抵抗(4本帯)

帯の順意味
1本目2 (数字)
2本目2 (数字)
3本目乗数 100 → 22×100 = 2200 Ω = 2.2kΩ
4本目誤差 ±5%

 

例:3.3kΩ の抵抗(4本帯)

帯の順意味
1本目オレンジ3
2本目オレンジ3
3本目×100 → 33×100 = 3300 Ω = 3.3kΩ
4本目±5%

HC-SR04には 4本のピン があります。

HC-SR04 ピン接続先(Raspberry Pi)説明
VCC5Vピン(Pin 2)電源
TRIGGPIO24(Pin 18)トリガー信号
ECHOGPIO23(Pin 16)
GNDピン(Pin 9)
抵抗で分圧してから接続
(2.2kΩと3.3kΩ使用)
GNDGNDピン(Pin 6 )グランド

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

HC-SR04のECHOピン接続

HC-SR04 の ECHO ピンは 5V 出力なので、Raspberry Pi の GPIO(3.3V 仕様)に直接つなぐと破損の恐れがあります。そのため、抵抗で分圧して 3V 前後に落とす必要があります。

接続方法
  1. HC-SR04のECHO → 2.2kΩ抵抗 → 分岐点
  2. 分岐点 → GPIO23(Pin 16)
  3. 分岐点 → 3.3kΩ抵抗 → GND(Pin 9)

回路イメージ

電圧計算(抵抗分圧)
  • Vin = 5V
  • R1 = 2.2kΩ(上側)
  • R2 = 3.3kΩ(下側)

R1

Vout = Vin × (R2 / (R1 + R2))
     = 5V × (2.2 / (2.2 +3.3))
     = 5V × (2.2 / 5.5)
     = 2.0V

R2

Vout = Vin × (R2 / (R1 + R2))
     = 5V × (3.3 / (2.2 + 3.3))
     = 5V × (3.3 / 5.5)
     = 3.0V

これで安全に動作します。

3. Pythonプログラム

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

ターミナルで nano shikoshikosuii.py と入力し、新しいファイルを作成。

nano shikoshikosuii.py

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

from gpiozero import DistanceSensor
from time import sleep
import tkinter as tk
import threading

# 最大測定距離(メートル単位)
MAX_DISTANCE = 5.0

# センサー設定
# echo = GPIO23, trigger = GPIO24
sensor = DistanceSensor(echo=23, trigger=24, max_distance=MAX_DISTANCE)

# GUIウィンドウの準備
root = tk.Tk()
root.title("水位計")
root.geometry("400x200")

label = tk.Label(root, text="測定中...", font=("Helvetica", 24))
label.pack(pady=50)

def measure_loop():
    while True:
        reversed_distances = []

        # 10回分の測定(10秒間)
        for _ in range(10):
            actual_distance = sensor.distance * MAX_DISTANCE
            reversed_distance = max(0.0, MAX_DISTANCE - actual_distance)
            reversed_distances.append(reversed_distance)
            sleep(1)

        average = sum(reversed_distances) / len(reversed_distances)
        cm_value = average * 100

        # GUIラベルに値を表示
        label.after(0, lambda v=cm_value: label.config(
            text=f"水位: {v:.1f} cm"))

# 測定を別スレッドで実行(GUIが固まらないように)
threading.Thread(target=measure_loop, daemon=True).start()

# GUI起動
root.mainloop()

4. プログラムを保存して実行

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

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

ターミナルを開きます。Ctrl + Alt + T を同時に押す。以下を入力してプログラムを実行します。

python3 shikoshikosuii.py

すると新しいウィンドウが開き、10秒ごとの平均水位が表示されます。

5. Tkinterとは?

Tkinterは、Pythonに標準で入っている GUI(グラフィカル・ユーザー・インターフェイス)ライブラリ です。
これを使うと、黒いターミナルの文字だけでなく、ボタンやラベルを使った ウィンドウアプリ を作れます。

今回のプログラムでは、

  • tk.Tk() → 新しいウィンドウを作成
  • tk.Label() → 測定値を表示するラベルを作成
  • root.mainloop() → ウィンドウを開いたままにする

という使い方をしています。

6. 水位計以外の応用例

HC-SR04は水位計以外にもいろいろ使えます。

  • 人感センサーの代わりに使う
    → 一定距離内に物体が来たらLEDを光らせる
  • ゴミ箱の残量測定
    → 満杯かどうかを自動で検知
  • 車庫の駐車アシスト
    → 車と壁の距離を測ってLEDでお知らせ
  • ロボットの障害物回避
    → 距離を測って自動でストップ

もっともっと電子工作を作ってラズパイを楽しんでいきましょう!

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

ここにあるのは、イケオジが実際に興味を持ち、試したいと思った”武器”だ。

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

小型防犯カメラ:[PR]防犯カムカムは日本で最大の小型防犯カメラを取り扱う公式オンラインストアです。小型防犯カメラを取り扱って15年の老舗ブランドであり、累計販売数は約100万個を超え、多くのお客様にご好評を頂いております。

「人生再起動装置一覧」の中にも、そそられるアイテムがあるはずだ。よかったら見てくれ。

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

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

(旧twitter) 今日のイケオジ 

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


コメントを残す

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

CAPTCHA


トップへ戻る