記事一覧
探究Memo 009
高校生が開発したRaspberry Piを用いた現状のシリンダー錠を電子錠化するシステム。間違いなどがあったらコメントで教えてください。
現状の開発状況のまとめ。
まずは、Raspberry Pi内で動かすPythonコード。
Supabaseのテーブルの状況とかはそのうち載せます。
main.py
#モジュールのインポートimport datetimeimport osimport pig
- #supabase
- #setting
- #動体検知
- #現在時刻
- #カメラで撮影用
- #メッセージの詳細
- #discordに画像を送信する
- #データを取得した時刻
- #モーションファクターがしきい値を超えていれば動きを検知したことにする
- #モーションファクターを計算する
- #比較用のフレームを取得する
- #ファイル名と
- #モジュールのインポート
- #サーボモーターの設定
- #参考にするデータリストを定義している
- #カードを認証できた時の操作
- #DiscordのWebhook
- #カードのid情報を取得する
- #現在時刻の取得
- #ドアの状態を確認する
- #現在時刻を取得し
- #ローカルファイルにログを記録する
- #他のファイルのクラスの呼び出し
- #DiscordのWebhookのURL
- #作動時間
- #動体検知を行う
- #ドアの解錠・施錠のシステムを起動する
- #Supabaseから情報を引っ張ってくる
- #一般用の鍵が使える時間
- #動体検知を行いたい時間
- #認証失敗時のメッセージ
- #動体検知に引っかかったときのメッセージ
- #ドアの解錠施錠用のシステムを作動させる
- #一般ユーザーのカードが使える時間を設定する
- #ドアが施錠されている時の操作
- #Supabaseのリンク
- #認証システムを構成しているクラス
- #認証失敗時のカメラシステムの呼び出し
- #時刻を比較して実行内容を変更する
- #認証失敗した人物の写真を撮影する
- #システムを作動させたい時間
- #システムのスタートとエンドの時刻の設定
- #NFCのカードを読みとるための関数
- #一般ユーザーのカードが利用できるか利用できないかを時間を確認して設定する
- #サーボモーターを制御する関数の作成
- #カードを認証できなかった時の操作
- #ドアが解錠されている時の操作
- #失敗した時の処理
- #システムの起動時間の設定
- #Supabaseにログを送信する
- #成功した時の処理
- #現在時刻を取得する
自作ドアシステムのコード
Pythonを用いたドアシステムの開発。NFCカードを用いて認証を行う。認証に失敗したときは失敗した人物の写真を撮影し、Discordに送信する。認証できた場合は、サーボモーターを回転させて鍵の解錠・施錠をする。
開発環境
Raspberry Pi4
Genny
サーボモーター(MG996R)
Webカメラ(EMEET C960)
NFCカードリーダー(RC-S380)
ラズパイに接
Camera.py idea
from discord import Webhookimport discordimport aiohttpimport asyncioimport cv2import timeimport datetimeimport cv2 as cvwebhook_url = "Discdord Webhook URL" #カメラで撮影用 camera = cv2.VideoCapture(0) ret,
もっとみるDoor_System.py
import binasciiimport nfcimport osimport pigpioimport timeimport jsonimport datetimeimport sysSERVO_PIN = 18pi = pigpio.pi()json_open = open('Pass_ID.json', 'r')Pass_data = json.load(json_open)id_list
もっとみる探究スタートアップ報告書
1.探究テーマ
セキュアで便利なドアシステムの開発
2.大きな目標・最終目標
NFCカードまたはSuicaを用いた認証により解錠・施錠ができるセキュリティシステム
深夜に動体検知を用いて不審者の検知
3.最初の目標・最初の山場
・カメラで撮影した画像をDiscordに送信する
・NFCタグを用いて認証を行いサーボモーターを用いてドアの施錠・解錠ができるようになる
・夏休