##作ったもの
- 部屋に入る前にWebカメラがONになっているか確認する仕組み
- (Windowsでしか動きません。ごめんなさい。)
使い方
- (部屋のドアにはったNFCにスマホをかざす) OR (部屋のドアに貼ったQRコード[URL]をスマホで読み込む)
- WebカメラがONになっているか否かがスマホの画面にでる
使ったツール
- Python (Flask, winreg)
- ショートカット(iOS)
- NFC
- QRコード
仕組みの大枠
- Webカメラを使うPC上で、PythonのWebサーバーを立てる(IPアドレスは固定しておく)
- 部屋に貼ってあるNFCもしくはQRコード読み込んで、PCのWebサーバーにアクセス
- Pythonで、レジストリを読み込み、Webカメラがオンになっているかを判定した結果を返す
作り方
- python環境にFlaskを入れる
pip install Flask
- こちらのスクリプトを作成
- PC起動時にスクリプト自動実行するための設定
- NFCまたはQRコードを使って、(PCのURL):8080/eKnock/ にアクセス
こぼれ話
- 実際に家で稼働させているものは、Webカメラがオフでも、PC画面に確認プロンプトを出して、入っていいか悪いか選べるようにしたり、LINE notifyを使って、LINEに通知したり、Flaskのテンプレートエンジン使ったりしているが説明が長くなるので、シンプル版を公開
- PC画面に確認プロンプトを出す部分は、Flaskからpyautoguiのconfirmを動かしたら、以下のエラーが出てコケた。
Tcl_AsyncDelete: async handler deleted by the wrong thread
- Threadを利用して回避できるかなと思ったけどうまくいかず、あきらめてSeleniumを起動して、Raspberry Piのnod-redで立てた、http serverにアクセスして... とかなり分かりにくい仕様に。いつか、きれいになったら公開しよう