眠った防災魂を呼び覚ませ イケオジ流!豪雨・洪水対策!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でつくる温度監視システムです。

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

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

(旧twitter) 今日のイケオジ 

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

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

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

ポータブルレーザー彫刻・カットを自由自在に【レーザーペッカー】:[PR]レーザー彫刻機とは、木材、革、金属、アクリルなど様々な素材の表面に、文字やイラストを彫刻したり、 素材をカットしたりできるハイテクツールのことを指します。 従来の工業用レーザー機は大型で高額でしたが、ポータブルレーザー機は家庭の卓上でも使えるほどコンパクトで、 スマホアプリやPCから誰でも簡単に操作できるのが特徴です。

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

ソーラー防犯カメラ:[PR]かんたん取り付け、バッテリー内蔵、ソーラーチャージ、高解像度、防水&堅牢設計、選べる録画機能。フラッシュライト&サイレン、フルカラーナイトビジョン、AIスマート検知機能。 

relica G3

パイプとジョイントでアイデア無限大:[PR]スペーシアは豊富な種類のパイプとジョイント、金具類をラインナップ。自由な発想でご家庭内のちょっとしたDIYから、工場や物流倉庫などの現場改善まで 様々なアイデアを形にできます。ホームセンターでは入手できないスペーシア製品もスパクリショップならご購入可能!

日本人工芝計画:[PR]草むしりや天然芝刈りに疲れてしまった方、新築で綺麗な外観を長い間保ちたい方、ワンちゃんを飼われていてお庭で遊ばせたい方。手間をかけることがない綺麗なお庭が実現できるので、生活の質が向上します。人工芝が10年以内に破損した際は直す約束(10年保証)も付いております。

ガジェット、工具、Iot製品:[PR]職場で使ったり、お子様・お孫様のおもちゃの修理、メガネや時計など身近なものの修理に 役立つ工具セットや緊急時に役立つ懐中電灯やバッテリーなど。

宅配ボックス名品館:[PR]宅配ボックス「ルスネコボックスシリーズ」を取り扱う宅配ボックス名品館。長く使える“10年品質”にこだわり、厳選モデルのみを掲載。売れ筋は複数受け取り可のスタンダードモデルやポスト付きで大容量の指紋キーモデル。大容量、置き型中心で工事不要。厚みのある鋼板+多層パウダーコートで耐候性と堅牢性を確保し、雨風やイタズラに配慮。

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


コメントを残す

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

CAPTCHA


Back to top