Даниил Подрабинек (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, наблюдения
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments