(88) ライブカメラ画像をホームページに貼る。

投稿者: | 2017年8月18日

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>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です