Sida 1 av 1

Dörrövervakning med kamera

Postat: 26 jan 2009, 02:41
av Plutonium
Har en Axis 205 nätverkskamera som är riktad ut från ingången till huset där även kan observera förrådet. Och idén slog mig att logga dörren så jag införskaffade mig några magnet brytare och kopplade enligt schemat nedan.

Men sen nöjde jag mig inte av det utan jag gjorde så att kameran tar en bild så fort dörren öppnas eller stängs.
Med hjälp av ett gammalt bash script som jag använde till annat så var saken biff.
Får även ett sms när dörren öppnas eller stängs.

Här blev resultatet http://plutonium.homelinux.com/index.php?fdorren


Bild
Bilden är kopierad från denna tråd http://www.temperatur.nu/forum/viewtopi ... =1020#1020

Kod: Markera allt

    #!/bin/bash

    # Mysql
    USER="1wire"
    PASSWD="******"
    DB="1wire"
    MYSQL="mysql -u $USER -p$PASSWD -D $DB -e"

    # Första argumentet i funktionen är första ordet i filen (nytt värde)

    function reagera {

            if [ ${1} -eq 0 ]; then

    SMSLARM="Förrådsdörren är nu öppen."

       BILDNAMN=`date +%Y%m%d%H%M%S`

       $MYSQL "INSERT INTO forradet (status, bild) VALUES ('öppen', $BILDNAMN)"

        wget -q http://192.168.9.5/jpg/image.jpg -O /home/plutonium/public_html/bilder/forradet/$BILDNAMN.jpg

       else

    SMSLARM="Förrådsdörren är nu stängd."

       BILDNAMN=`date +%Y%m%d%H%M%S`

       $MYSQL "INSERT INTO forradet (status, bild) VALUES ('stängd', $BILDNAMN)"

        wget -q http://192.168.9.5/jpg/image.jpg -O /home/plutonium/public_html/bilder/forradet/$BILDNAMN.jpg

            fi

    }

    function smslarm {

    if [ $LARM_VALUE -eq 1 ]; then

        echo -e "subject: Status$*\n\n  $(date +%Y:%m:%d:%k:%M:%S)"  $SMSLARM | sendmail -f Vakt@Home.nu 0730******@sms.comviq.se

    fi

    }

    # Inte lämna skräfiler kvar
    function cleanup {
            rm "$TEMPFIL"
            exit 0
    }

    # Första argumentet måste vara en fil
    [ -z "$1" -o ! -f "$1" ] && echo "overvakning.sh <fil>" && exit 1

    FIL=$1
    TEMPFIL=$(tempfile)

    # Hantera ^C och dylikt
    trap cleanup SIGHUP SIGINT SIGTERM

    cp "$FIL" "$TEMPFIL"

     while /bin/true; do

        # Kollar värdet sms alarm
           ROWS=`$MYSQL "SELECT value FROM settings WHERE setting='smsalarm'"`
           LARM_VALUE=$(echo $ROWS | cut -f2 -d' ')
        if [ `cat $FIL` -eq `cat $TEMPFIL` ]; then
    
                #echo "Value är lika med value"
                sleep 1

        
                        if [ `cat $FIL` -eq `cat $TEMPFIL` ]; then
      
                                echo "Avbryt eld upphör!" &>/dev/null
     
                        else
                                #echo "Allt stämde så skriv till databasen!"
    
           diff -qs $FIL $TEMPFIL &>/dev/null
           [ $? -ne 0 ] && reagera $(cat $FIL | cut -d " " -f 1) && smslarm
           cp "$FIL" "$TEMPFIL"

                        fi
    
        else
    
                echo "Allt är åt helskotta nu skiter jag i detta" &>/dev/null

        fi
    
        done

Sql struktur

Kod: Markera allt

-- phpMyAdmin SQL Dump
-- version 2.11.1.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jan 26, 2009 at 01:42 AM
-- Server version: 5.0.37
-- PHP Version: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `1wire`
--

-- --------------------------------------------------------

--
-- Table structure for table `entredoor`
--

CREATE TABLE IF NOT EXISTS `entredoor` (
  `id` int(20) NOT NULL auto_increment,
  `status` varchar(20) NOT NULL,
  `datum` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=709 ;

--
-- Dumping data for table `entredoor`
--

INSERT INTO `entredoor` (`id`, `status`, `datum`) VALUES
(1, 'låst', '2008-07-26 18:55:39'),
(2, 'upplåst', '2008-07-26 18:56:09');


-- --------------------------------------------------------

--
-- Table structure for table `forradet`
--

CREATE TABLE IF NOT EXISTS `forradet` (
  `id` int(11) NOT NULL auto_increment,
  `status` varchar(16) NOT NULL,
  `bild` text NOT NULL,
  `datum` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `forradet`
--

INSERT INTO `forradet` (`id`, `status`, `bild`, `datum`) VALUES
(1, 'öppen', '20090126010305', '2009-01-26 01:03:05'),
(2, 'stängd', '20090126010312', '2009-01-26 01:03:12');

-- --------------------------------------------------------

--
-- Table structure for table `settings`
--

CREATE TABLE IF NOT EXISTS `settings` (
  `id` int(14) NOT NULL auto_increment,
  `setting` varchar(16) NOT NULL,
  `value` tinyint(1) default NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `settings`
--

INSERT INTO `settings` (`id`, `setting`, `value`) VALUES
(1, 'smsalarm', 1);


Re: Dörrövervakning med kamera

Postat: 26 jan 2009, 17:03
av the_tnt
Sju sekunder in och ut? Du borde bli bankrånare. ;)

Kul idé, men frågan är om bilderna skulle duga till identifiering. Något mörkt på natten också, rörelse detektor på strålkastare?


Blir att tänka på en demo jag var på arrangerad av Axis själva, de hade satt kameror på en bensinmack. När någon lyfte pumphandtaget för att tanka togs bilder på personen och på bilens nummerplåt. Om inte en betalning registrerats inom X minuter sparades bilderna, annars kastades de. Det gjorde jobbet att sålla fram smitare mycket enklare, speciellt som den aktuella macken haft VHS-band för övervakningen tidigare.

De har även mjukvara som tar bilder om det sker rörelser inom ett fördefinierat område av det kameran ser. På så vis kunde man t.ex. rikta kameran mot en hel parkeringsplats och markera en viss P-ruta. Bara om det var rörelser på den P-rutan togs det bilder.

Eller om man riktade kameran i ett rum där rörelser utanför ett fönster inte skulle registreras, bara att markera bort fönstret från rörelsedetekteringen.

Re: Dörrövervakning med kamera

Postat: 26 jan 2009, 19:49
av larky
Det är väl 7 sek från det att dörren registreras som öppen tills att den är stängd igen?

Re: Dörrövervakning med kamera

Postat: 26 jan 2009, 21:09
av Plutonium
Precis, 7 sek blev det att öppna ställa in lite sopper och stänga dörren igen..

Har en linux mjukvara till Axis kameran som heter motion, som dekterar en viss yta. Som kameran är riktad nu så dekteras det på gången om rörelsen består mer än 3 sek..

Det skulle nog kunna gå att identifiera nån person, om det är dagsljus ute :). På natten, nja, kan nog se färgen på jackan osv. Syftet till detta är en kul grej bara :) Måste utveckla sig lite ;)