Building a Baby Monitor on Raspberry Pi – Part 1
In order for us to build a successful baby monitor, we need our Raspberry Pi to perform the following tasks:
- Capture live video feed of the baby
- Stream live video feed to browser to be viewable by any device (Phone, Tablet, PC etc)
- Capture live video feed and save it onto a hard drive for later viewing (Nanny Cam)
- Capture audio (optional) of the baby and stream it. For me, this is not a high priority.
We need the following hardware tools to build our baby monitor:
- Raspberry Pi + Casing + Power supply (or battery pack)
- Pi Camera + Casing (Some people have converted their USB webcams to do this, but I prefer the Pi Camera for this tutorial
- SD Card preferably 8GB with Raspbian installed on it.
- Wifi USB dongle (incase if you do not want to use the ethernet port for LAN connectivity)
- A micro hard drive or a USB flash drive for video recording (optional)
The above items can be easily purchased from dozens of vendors across the globe and information can be sourced from Raspberry Pi website.
We are assuming all streaming will be done on a local network (LAN) where our Raspberry Pi can stream to a nearby smartphone (or a tablet, PC etc) running a Safari or Firefox compatible browser. The optional hard drive or USB Flash drive will be utilized to store video recordings of the live stream with proper timestamps. If you do not want to store video, then there is no need for the additional storage.
SD Card Setup with Raspbian
Raspberry Pi official website lists the standard instructions for the setup and Installation of the Raspberry Pi hardware with Raspbian which is a popular Debian Linux distro specifically designed for the Raspberry Pi:
Streaming Live Video
There are numerous well documented methods to stream live video from a Pi. While searching for the best method to stream, I came across multiple solutions, each highly attractive. However, I shortlisted two easy to install, manage and run methods. The first method uses MJPEG streaming methodology to stream video and the other uses Motion Program.
It is lightweight and easy to use. It streams a sequence of JPGs images as a movie onto a browser on your network where you can see the live video stream. The MJPEG is an opensource project hosted by SourceForge where it states:
MJPG-streamer takes JPGs from Linux-UVC compatible webcams, filesystem or other input plugins and streams them as M-JPEG via HTTP to web browsers, VLC and other software. It is the successor of uvc-streamer, a Linux-UVC streaming application with Pan/Tilt.
Motion is an opensource software that not only streams video, but can also detect changes (motion) in the video screen (like baby waking up) and can store a complete video recording with timestamps (important when building a NannyCam) for later review on an external storage unit.
Motion is a program that monitors the video signal from one or more cameras and is able to detect if a significant part of the picture has changed; in other words, it can detect motion.
In our installation tutorial (Part 2), we will go into the details of the installations for the two methods.