概要
ラズベリーパイと各種センサーを組み合わせて、高齢者や身体障 がい者の安全と健康をリアルタイムで監視・支援するシステム。 検知、緊急通知などの機能を統合し、家族や介護者に通知することができます。
システム構成
- 動体検知
・Raspberry Pi が起動している状態である。
・常に検知範囲に動体があるので、動体が止まっていることが異常とする。
・常にセンサーが動体を検知していることが前提で、検知しなくなった(対象物が止まっている)ことを検知するプログラム。 - 写真撮影
・一定回数以上動体を検知しないときに写真を撮ることを想定する。 - 通知
・LineNotify を通してLINEに通知がくるようにする
ラズベリーパイ4にモーションセンサーであるHC-SR501を接続し、動体検知を行う。3メートル内の動体を検知し続け、一定時間動きが検知されなかった場合に、写真を撮影し、Lineに通知するようになっている。
プログラム
sample.py
import RPi.GPIO as GPIO
import time
import picamera
import requests
# GPIOの設定
PIR_PIN = 7 # PIRモーションセンサーが接続されているGPIOピン
# LINE Notifyのアクセストークン
LINE_NOTIFY_TOKEN = 'sI2F3FCBxGOtyOui8CkkL7QdOUiMKZ9WF1f41mUyyaS' # ここにLINE Notifyで発行したトークンを記入
# カメラの初期化
camera = picamera.PiCamera()
# LINE Notifyで写真を送信する関数
def send_line_notify_with_photo(message, image_path):
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": "Bearer " + LINE_NOTIFY_TOKEN}
payload = {"message": message}
files = {"imageFile": open(image_path, "rb")}
requests.post(url, headers=headers, data=payload, files=files)
# GPIOの初期化
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIR_PIN, GPIO.IN)
# 動作検知のタイマー設定(ここでは10分間動きがない場合に通知)
no_motion_time = 0
motion_timeout = 600 # 10分(600秒)
try:
while True:
if GPIO.input(PIR_PIN):
# 動きが検知された場合
print("動きを検知しました!")
no_motion_time = 0 # 動きが検知されたらカウンターをリセット
else:
# 動きがない場合
no_motion_time += 1
if no_motion_time >= motion_timeout:
# 指定時間動きがなければ写真を撮影し、LINEに送信
print("動きが10分間ありません。写真を撮ってLINEに通知します...")
image_path = '/home/pi/no_motion.jpg'
camera.capture(image_path) # 写真を撮影
send_line_notify_with_photo("10分間動きがありません。転倒や異常の可能性があります。写真を確認してください。", image_path)
no_motion_time = 0 # 通知後にカウンターをリセット
time.sleep(1) # 1秒ごとにチェック
except KeyboardInterrupt:
print("プログラムを終了します")
GPIO.cleanup()
使用部品
- Raspberry Pi 4
- PIR モーションセンサー(HC-SR501 など): 人の動きを検知。
- Raspberry Pi カメラモジュール: 動きを検知しなくなったときに写真を撮影。
- Wi-Fi または有線 LAN 接続: LINE Notify で通知を送るためのインターネット接続。
参考文献
-
ラズパイ 4 で人感センサーを使ってみる(HiLetgo HC-SR501)
https://qiita.com/BuckyBuckyBarnes/items/0aa670afec8e8727ee9e -
raspberryPi で PIR モーションセンサを使う
https://qiita.com/tomokitamaki/items/b5a5f17e3eac05e23a57 -
【Raspberry Pi】人感センサー(HC-SR501)の使い方
https://hellobreak.net/raspberry-pi-hc-sr501-0912/ -
Raspberry Pi 4 と 赤外線センサー(HC-SR501)を使って生存確認システムを構築したことの詳細
https://note.com/nrsw/n/n5eefae14d537 -
一人暮らしでぶっ倒れるのが怖いから監視システムをつくった
https://nrsw.hatenablog.com/entry/2022/06/09/023213
-
yamamo
さんが
2024/09/20
に
編集
をしました。
(メッセージ: 初版)
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/20
に
編集
をしました。
-
yamamo
さんが
2024/09/30
に
編集
をしました。
-
yamamo
さんが
2024/10/24
に
編集
をしました。
-
yamamo
さんが
2024/10/25
に
編集
をしました。
-
yamamo
さんが
2024/10/29
に
編集
をしました。
-
yamamo
さんが
2024/10/29
に
編集
をしました。
-
yamamo
さんが
2024/10/30
に
編集
をしました。
-
yamamo
さんが
2024/10/30
に
編集
をしました。
ログインしてコメントを投稿する