4,693 views
この記事は最終更新から 1816日 が経過しています。
■やりたいこと
・実家の窓際にライブカメラを設置し、窓から見える景色を東京でも眺めたい。
・映像ではなく、1分に1回程度更新される静止画でよい。
・カメラはなるべく安価なものがよい。
■必要なもの
・ホームページ設置サーバー(FTP,Python,PHPが使えること)
・WEBカメラ(Wifi接続可能であること)
■手順
手順1:WEBカメラを購入する。
・今回はI-O DATA社製の TS-WRLCE を使用する。(その後、赤外線カメラ付きのTS-WLC2でも同じ手順でできた。)
手順2:WEBカメラの設定をする。
・画像を転送するFTPサーバーの情報を設定する。
・動作検知の検出範囲を画面全体に設定する。
・動作検知の検出間隔を60秒に設定し、動作検知機能を有効に設定する。
手順3:最新画像ファイル取得プログラムを作成(Python)
このライブカメラは、指定したディレクトリ配下に「snapshot_yyyymmddhhmm」なるディレクトリを複数作成する。さらに、個々のディレクトリ配下に「motion-yyyy-mm-dd-hh-mm-ss.jpg」なるJPEG画像ファイルを複数作成する。
したがって、ホームページ上に最新の1枚を表示したい場合は、最新ディレクトリ配下の最新画像ファイルを1個だけ取得し、表示すればよい。ここではPythonでこの機能を実装する。
get_img.py
import sys import os #--------------------------------- # argv[1] : directory path if __name__ == '__main__': ary_argv = sys.argv img_path = ary_argv[1] + "/" # 指定ディレクトリ配下の最新ディレクトリを取得 ary_entry = os.listdir(img_path) ary_entry = [x for x in ary_entry if os.path.isdir(img_path + x) ] ary_entry = sorted(ary_entry, reverse=True) target_dir = img_path + ary_entry[0] + "/" # 最新ディレクトリ配下の最新画像ファイルを取得 ary_jpeg = os.listdir(target_dir) ary_jpeg = [x for x in ary_jpeg if os.path.isfile(target_dir + x) ] ary_jpeg = sorted(ary_jpeg, reverse=True) target_jpeg = ary_jpeg[0] # 実行者へ答えを提供 print(target_dir + target_jpeg)
手順4:ライブ画像を閲覧するためのホームページを作成(HTML+PHP)
livecam.php
<!DOCTYPE html> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8" /> <TITLE>サンプル</TITLE> </HEAD> </BODY> <?php exec("python3 ./get_img.py '{FTP画像転送先ディレクトリ}'", $resp, $code); echo "<img src='{$resp[0]}'>"; ?> </BODY> </HTML>