自分の手で「スマートホーム」。 パート2.ビデオ監視

前回の記事( リンク )では、「スマートホーム」を構築する理論的な部分に精通し、使用するテクノロジーを決定しました。 それでは実際的な部分の実装を始めましょう:)



私たちの関心の最初の犠牲者は、ビデオ監視システムになります。





何、なぜ、なぜ





すでに書いたように、私たちのシステムの中核はパソコンです。 すべてのシステムをそれに接続し、すべてを管理するのは彼です。 鉄の要件は必要なタスクに由来しますが、私たちにはあまり強力ではありません。 私の場合、主な要件はシステムユニットのノイズレスと小型化でした。 選択はキャンディーバーに落ちました。 Intel Atom-ノイズを減らすためのSSD上のプロセッサおよびハードドライブとして。 オペレーティングシステムはUbuntu Linuxです。 それは合理的な十分なお金で判明しました。 次のようになります。



画像



羊に戻りましょう。 すでに書いたように、単純なUSB Webカメラに基づいてビデオ監視を構築します。USBカメラの追加オプションにはマイクを使用できます。 たとえば、次のとおりです。



画像



接続するには、アクティブアンプ付きの長いUSBケーブル、またはフェライトリング付き5メートルケーブルと電源付きUSBハブを使用しました。 これらの要素の品質には特に注意を払う必要があります。



画像

画像



これは、ビデオ監視システムを編成するのに十分です。 また、アナログカメラとIPカメラを接続する可能性を検討することもできますが、ソリューションのコストと利用可能な材料から始めました:)



ソフトウェア





カメラがコンピュータに接続されていると想定しています-これは問題を引き起こさないはずです。 最も興味深い部分であるソフトウェア部分に移りましょう。



最新のカメラを購入した場合、OSがそれを見るために追加のジェスチャーは必要ないでしょう。 私の場合、4つのWebカメラがシステムに接続されています。 これを確認してください:



nix@nix-boss:~$ ls /dev/video*

/dev/video0 /dev/video1 /dev/video2 /dev/video3









どうやら、システムはそれらを識別しました。 USBコネクタに接続する以外のアクションは実行しませんでした。 出力にデバイスが表示されない場合、ほとんどの場合、カメラのドライバーをグーグルで検索する必要があります。



私自身は、カメラからビデオストリームを撮影するのではなく、1秒に1回撮影することにしました。 利点は明らかです:





これらすべてのために、 motionというプログラムを使用します。 Ubuntuでは、非常に簡単です。

sudo apt-get install motion







設定ファイルはデフォルトで/ etc / motionにあり、奇妙なことにmotion.confと呼ばれています:)



開いて編集し、次のビューに移動します。



daemon off

process_id_file /var/run/motion/motion.pid

setup_mode off



# ,

videodevice /dev/video0



v4l2_palette 8

input 8

norm 0

frequency 0

rotate 0



#

width 320



#

height 240



framerate 2

minimum_frame_time 0

netcam_tolerant_check off

auto_brightness off

brightness 0

contrast 0

saturation 0

hue 0



roundrobin_frames 1

roundrobin_skip 1

switchfilter off



threshold 1500

threshold_tune off

noise_level 32

noise_tune on

despeckle EedDl

smart_mask_speed 0

lightswitch 0

minimum_motion_frames 1

pre_capture 0

post_capture 0

gap 60

max_mpeg_time 0

output_all off



output_normal off

output_motion off



#

quality 50

ppm off



ffmpeg_cap_new off

ffmpeg_cap_motion off

ffmpeg_timelapse 0

ffmpeg_timelapse_mode daily

ffmpeg_bps 500000

ffmpeg_variable_bitrate 0

ffmpeg_video_codec swf

ffmpeg_deinterlace off



#

snapshot_interval 1



locate off



# . -

text_right %Y-%m-%d\n%T-%q



#

text_left CAMERA %t



text_changes off

text_event %Y%m%d%H%M%S



#

text_double on



#

target_dir /opt/data/current/video0



# camera.jpg ( )

snapshot_filename camera



jpeg_filename camera

movie_filename %v-%Y%m%d%H%M%S

timelapse_filename %Y%m%d-timelapse



# -,

webcam_port 0

webcam_quality 50

webcam_motion off

webcam_maxrate 1

webcam_localhost on

webcam_limit 0



control_port 0

control_localhost on

control_html_output on



track_type 0

track_auto off

track_motorx 0

track_motory 0

track_maxx 0

track_maxy 0

track_iomojo_id 0

track_step_angle_x 10

track_step_angle_y 10

track_move_wait 10

track_speed 255

track_stepsize 40



quiet on



sql_log_image off

sql_log_snapshot on

sql_log_mpeg off

sql_log_timelapse off

sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')



; mysql_db db

; mysql_host localhost

; mysql_user user

; mysql_password password



# 3 ;)

thread /etc/motion/thread1.conf

thread /etc/motion/thread2.conf

thread /etc/motion/thread3.conf











threadX.confの設定では、すべてのパラメーターはベースに似ており、必要な行のみが変更されています



videodevice /dev/video1

text_left CAMERA 2

target_dir /opt/data/current/video1









つまり OSのカメラデバイスのアドレス、画像のテキスト、保存ディレクトリ。



スペースを取りすぎないように、構成ファイルからコメントを削除しました。 オリジナルのモーション設定ファイルでそれらを見ることができます。 詳細に説明されています。 元の構成ファイルからの変更には、コメントがタグ付けされています。



次に、必要なディレクトリを作成し、構成の機能を確認する必要があります。



nix@nix-boss:~$ mkdir /opt/data/current/video0 ( )

nix@nix-boss:~$ sudo motion -c /etc/motion/motion.conf









カメラフォルダーに1つずつ移動し、 camera.jpgファイルを表示します。 すべてが正しく行われると、カメラからさまざまな画像が表示されます。



合計





この記事では、カメラから画像を受け取り、1秒間に1つの画像を別のディレクトリに保存する方法を学びました。



次のパートでは、音声を合成して理解するためにシステムを教える方法について説明します。

ご清聴ありがとうございました;)



UPD: パート3



All Articles