Даниил Подрабинек (grohman) wrote in ru_shell,
Даниил Подрабинек
grohman
ru_shell

Домашняя система наблюдения

Через некоторое время я собираюсь уехать из города на несколько дней. Поскольку в моей квартире никого не останется, я решил оставить работающим что-нибудь, что высылало бы мне письма в случае, если в квартиру кто-то зашел. Причем с фотографией того, кто зашел ко мне в дом. Заморачиваться с motion нехотелось, да и освещение у меня тут все в течение дня меняется, так что я написал небольшой bash-скрипт, который решил всю проблему сразу. Итак, нам потребуются: веб-камера, беспроводная мышка и bash.

Беспроводную мышку я привязал нитками к входной двери. Как только дверь откроется, мышка двинется, о чем тут же узнает скрипт и сделает несколько снимков камерой, которые сразу же отправит мне на email.

#!/bin/bash
pwd=`pwd`
cur=$pwd/cur
mailto="mymail@domain.tld"
mouse="/dev/input/mouse1"
camera="/dev/video0"
cd $pwd
if [ -n $cur ]; then
     touch $cur
fi;
echo 0 > $cur

getPhoto(){
     # пишем с $cur что заняты съемкой
     echo 1 > $cur
     moment=`date +%d-%m-%Y-%H.%M`
     mkdir -p $pwd/$moment
     # сделаем 10 кадров
     for i in `seq 10`; do
         mplayer tv:// -tv driver=v4l2:width=640:height=480:device=$camera -frames 1 -vo png -msglevel all=-1 -quiet
        mv $pwd/00000001.png $pwd/$moment/$i.png
        # подождем 10 секунд до следующего кадра
        sleep 10
     done;

    for i in $pwd/$moment/*png; do
         uuencode $i $i >> $pwd/photos.uuc;
     done
     mail -s "VERY DANGER ALERT" $mailto < photos.uuc
     rm photos.uuc
     # съемка закончена, пишем в $cur ноль
     echo 0 > $cur
}

while true;do hexdump -n 1 $mouse >/dev/null 2>&1 && if [ "`cat $cur`" != "1" ];then getPhoto; fi; done

#EOF


Вроде бы работает. Очень надеюсь, что это никогда не пригодится.

P.S.Перед вызовом цикла с запуском mplayer наверное неплохо бы запускать какой-нибудь звук из колонок. Какой-нибудь адский крик. Если у вас есть в mp3 что-нибудь подходящее, поделитесь пожалуйста.
Tags: bash, mplayer, наблюдения
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

  • 10 comments