tukumoyuukiのアイコン画像
tukumoyuuki 2024年09月20日作成 (2024年10月30日更新)
製作品 製作品 Lチカ Lチカ 閲覧数 41
tukumoyuuki 2024年09月20日作成 (2024年10月30日更新) 製作品 製作品 Lチカ Lチカ 閲覧数 41

鍵かけ忘れ防止システム

概要

家の鍵をかけ忘れがないか鍵の状態を確認
鍵の傾きを検知して、スマホで確認できる

概要図

キャプションを入力できます

詳細

・9軸センサ(mpu-9250)とraspiを接続し、x軸、y軸、z軸の傾きを取得し、設定したセンサ値から鍵の状態を確認し、施錠ができていない場合LINE Notifyに通知が送られる。

使用した物品

・rasberry pi4
・スマホ
・9軸センサ

動作確認

鍵が閉まっている時の傾き(例)↓
キャプションを入力できます

鍵が開いている時の傾き(例)と設定しておいた傾きと通知
キャプションを入力できます

LINENotifyへ通知↓

キャプションを入力できます
設定しておいた傾き
キャプションを入力できます

キャプションを入力できます

ソースコード

ソースコード

import smbus import time import requests # LINE Notifyの設定 LINE_NOTIFY_TOKEN = '*********************************' LINE_NOTIFY_API = 'https://notify-api.line.me/api/notify' # I2C busのセットアップ bus = smbus.SMBus(1) MPU9250_ADDR = 0x68 # 通知送信用関数 def send_line_notify(message): headers = {'Authorization': f'Bearer {LINE_NOTIFY_TOKEN}'} data = {'message': message} response = requests.post(LINE_NOTIFY_API, headers=headers, data=data) if response.status_code == 200: print("通知が送信されました") else: print("通知の送信に失敗しました") # 初期化 def init_MPU9250(): bus.write_byte_data(MPU9250_ADDR, 0x6B, 0) # ウェイクアップ # 加速度センサーの値を読み込む def read_MPU9250(): acc_x = bus.read_byte_data(MPU9250_ADDR, 0x3B) # X軸加速度データ acc_y = bus.read_byte_data(MPU9250_ADDR, 0x3D) # Y軸加速度データ acc_z = bus.read_byte_data(MPU9250_ADDR, 0x3F) # Z軸加速度データ return acc_x, acc_y, acc_z # 閾値を設定 THRESHOLD_X = 7 # 適宜調整 THRESHOLD_Y = 195 # 適宜調整 THRESHOLD_Z = 240 # 適宜調整 # 加速度が設定した範囲内かを判定する関数 def check_acc_threshold(acc_x, acc_y, acc_z): if abs(acc_x - THRESHOLD_X) < 5 and abs(acc_y - THRESHOLD_Y) < 5 and abs(acc_z - THRESHOLD_Z) < 5: return True return False # MPU9250の初期化 init_MPU9250() # メインループ notified = False while True: acc_x, acc_y, acc_z = read_MPU9250() print(f"Acc: X={acc_x}, Y={acc_y}, Z={acc_z}") if check_acc_threshold(acc_x, acc_y, acc_z): if not notified: send_line_notify(f"鍵かけ忘れが検出されました: X={acc_x}, Y={acc_y}, Z={acc_z}") notified = True else: notified = False # 状態が変わったら通知をリセット time.sleep(1)

まとめ
この作品の使い勝手としては配線が鍵の金具までつなぐのに長くなってしまうという欠点がありますが、センサを用いて値を取得すれば手軽に動作させることができます。

ログインしてコメントを投稿する