0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ビデオ会議中、家族が部屋に入ってきて映り込んだー!を解消

Posted at

##作ったもの

  • 部屋に入る前にWebカメラがONになっているか確認する仕組み
  • (Windowsでしか動きません。ごめんなさい。)

使い方

  • (部屋のドアにはったNFCにスマホをかざす) OR (部屋のドアに貼ったQRコード[URL]をスマホで読み込む)
  • WebカメラがONになっているか否かがスマホの画面にでる

使ったツール

  1. Python (Flask, winreg)
  2. ショートカット(iOS)
  3. NFC
  4. QRコード

仕組みの大枠

  1. Webカメラを使うPC上で、PythonのWebサーバーを立てる(IPアドレスは固定しておく)
  2. 部屋に貼ってあるNFCもしくはQRコード読み込んで、PCのWebサーバーにアクセス
  3. Pythonで、レジストリを読み込み、Webカメラがオンになっているかを判定した結果を返す

作り方

  • python環境にFlaskを入れる
pip install Flask
  • こちらのスクリプトを作成
  • PC起動時にスクリプト自動実行するための設定
    • 作成したスクリプトを実行するbatファイルを作成 こちら参照
    • 起動時に実行するようスタートアップフォルダにバッチのショートカットを登録 こちら参照
  • 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にアクセスして... とかなり分かりにくい仕様に。いつか、きれいになったら公開しよう
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?