Creating a home security camera system, part 2 January 31, 2006Posted by cnchapman in Technology.
To monitor my home, I had several requirements:
- Premises to be monitored both inside and outside
- Detect motion on the cameras, and also to record continuously (as a backup in case motion detection failed)
- Images to be high resolution, better than standard webcam resolution
- Images to be archived both onsite and offsite
- To be alerted automatically when motion detection occurred, and to archive those images specially
- To do this at a relatively low cost, using as many standard, reusable, and modular components as possible
- To have high reliability and uptime of the system
- To be secure
- To learn something while doing this
Probably the easy way to put all of this together would be to buy a commercial IP camera monitoring suite. However, there were several prohibitions there, primarily the cost (just the recording software alone is usually $200 and up) and questions about the reusability of the components should I rework the system in the future.
Ultimately, this is what I came up with:
- Premises to be monitored both inside and outside: selected the Toshiba IK-WB11A, which works both indoors and outdoors. http://www.toshiba.com/taisisd/security/products/prod_camera_detail_ikwb11a.jsp
- Detect motion on the cameras, and also to record continuously (as a backup in case motion detection failed): I configured the Linux “motion” software, which performs motion detection (see a future post for details on the complex software setup) http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
- Images to be high resolution, better than standard webcam resolution: the Toshiba camera has resolution up to 1280×960, which produces a very high quality image.
- Images to be archived both onsite and offsite: see my future post on archive and software setup. I save images to multiple local locations and have live email of images offsite whenever motion is detected. I wrote my own monitoring program (details and maybe even the EXE to be posted in the future).
- To be alerted automatically when motion detection occurred, and to archive those images specially: same as above.
- To do this at a relatively low cost, using as many standard, reusable, and modular components as possible: I used standard IP network cameras (Toshiba); wrote my own Windows application to record images; store images on Windows and Linux boxes, and a NAS device; email images to a gmail account; and use free motion detection software. Any of those pieces could be easily replaced with little need to reconfigure the others.
- To have high reliability and uptime of the system: using network cameras (instead of PC attached) ensures higher reliability of the units and no downtime from the PC. Battery backup keeps systems up. I wrote a Linux script to monitor and restart the motion detection as necessary (see upcoming posts on software)
- To be secure: my network is configured with double NAT and two firewalls, with stateful packet inspection and no open incoming ports. External storage is configured with strong passwords and is only known to me.
- To learn something while doing this — I definitely exceeded this goal!
What I did NOT do. I did not use standard, PC-attached web cameras. Their resolution is low, and I was concerned about their uptime reliability (because of USB drivers and the like). I did not use 802.11 wireless networking, because I found it to be too slow to serve high-resolution images at a moderate framerate (1-2 FPS). Instead, I used 100mbps CAT-5 (already wired through most of my house).