chumuchomu が 2024年10月23日16時30分40秒 に編集
コメント無し
本文の変更
# 概要 ・置き配の荷物をLINENotifyを利用し確認出来るシステム ・荷物が置かれた時と取られた時に画像送信される。 # アイデア詳細 今回の制作したシステムの動作は以下の通り ・超音波距離センサーを利用して荷物が置かれた時と取られた時に画像とメッセージをLINENotifyに送信する ・誤動作防止のために、荷物が置かれた時はセンサーが一定時間反応した場合に画像送信する。 ・盗難へ対策として、カメラを荷物と人が映るように設置することで、 荷物が本人以外が取った際にLINENotifyで人物を確認出来る。 # 設置イメージ    # 使用パーツ 今回の制作に使用したものは以下の通り ・Raspberry Pi 4 ・Raspberry Pi Camera ・超音波距離センサー(hc-sr04) # 実際の配置イメージ 配置イメージ  センサに荷物が反応したとき  荷物が取られた時  # LINE Notifyの動作画面

 # raspiでの動作画面
# ラズパイ側の動作画面
荷物が置かれた時は一定時間反応したら画像の送信を行う。  荷物が取られた場合はすぐに画像の送信を行う。  # プログラム ``` #coding: utf-8 import RPi.GPIO as GPIO import time import requests from picamera import PiCamera #GPIOの設定 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) TRIG = 15 ECHO = 14 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) #カメラの設定 camera = PiCamera() camera.resolution = (1024, 768) #LINE Notifyにメッセージを送信する関数 def send_line_notify(image_path, message): token = ' aaa ' # トークンをここに入力 headers = {'Authorization': 'Bearer ' + token} with open(image_path, 'rb') as f: data = {'message': message} files = {'imageFile': f} requests.post('https://notify-api.line.me/api/notify', headers=headers, data=data, files=files) #距離を測定する関数 def get_distance(): GPIO.output(TRIG, False) time.sleep(2) GPIO.output(TRIG, True) time.sleep(0.00001) GPIO.output(TRIG, False) start_time = time.time() stop_time = time.time() while GPIO.input(ECHO) == 0: start_time = time.time() while GPIO.input(ECHO) == 1: stop_time = time.time() time_elapsed = stop_time - start_time distance = (time_elapsed * 34300) / 2 return distance try: previous_state = 'far' #初期状態を「遠い」に設定 close_time = 0 #20cm未満の時間をカウントする変数 while True: distance = get_distance() print(f"距離: {distance:.2f} cm") #距離が20cm未満の場合 if distance < 20: close_time += 1 # 1秒カウント if close_time >= 10: # 10秒以上経過したら if previous_state == 'far': print("[撮影] 距離が近いです。") image_path = "photo.jpg" camera.capture(image_path) print("[保存完了] photo.jpg") #LINE Notifyに画像を送信 send_line_notify(image_path, '荷物が届きました') print("[LINE Notifyに送信完了]") previous_state = 'close' # 状態を「近い」に更新 else: close_time = 0 # 距離が遠くなったらカウントをリセット if previous_state == 'close': print("[距離が遠くなりました]") image_path = "photo_far.jpg" # 遠くなったときの画像名 camera.capture(image_path) print("[保存完了] photo_far.jpg") #LINE Notifyに再度画像を送信 send_line_notify(image_path, '荷物が取られました') print("[LINE Notifyに送信完了]") previous_state = 'far' # 状態を「遠い」に更新 time.sleep(1) # 1秒待つ except KeyboardInterrupt: print("プログラムが中断されました") finally: GPIO.cleanup() ``` # Raspberry Pi 4と超音波距離センサー(hcーrs04)の接続方法  # 今後の課題 現段階ではプログラムの作成、動作までしかできていないためPCとラズパイをつないで動作させているためバッテリーを使用して動作させる。 また、カメラを今回は一つしか使用していないため、二つ使用することで荷物が取られた際に[荷物]と[取った人物]を映しやすくし、防犯対策を上げれるシステムを作れる。 # 参考文献 ・LINE Notify https://notify-bot.line.me/ja/ ・ラズベリーパイで超音波距離センサーの使い方 https://raspi-school.com/ultrasonic-sensor/ ・Raspberry Pi Zeroで作るカメラ付きIoTポスト https://elchika.com/article/b1f3d90f-f0e8-4ac6-901a-13c2f8cd6bfc/