motionEyeOS is a Linux distribution that turns a single-board computer into a video surveillance system. It supports multiple versions of Raspberry Pi boards starting from first version. I have tried to use it with Raspberry Pi Zero W. Information about motionEyeOS can be found here.

Required parts for this project:

  • Raspberry Pi Zero W. This board is small, uses less power. It will be possible to power it even using power bank. I have tested that camera can work about one day using Xiaomi power bank with 10000 mAh capacity. This Raspberry Pi version already has built in WiFi, so it can be placed everywhere where it can be connected to wireless network.
  • Raspberry Pi Camera 5MP with 16cm FFC Cable. It can be purchased on Aliexpress and it costs about 4$. Of course you will not get very good picture quality for this price, but I think for surveillance camera this will be ok.
  • Raspberry Pi Zero Case. It also can be purchased on Aliexpress for less than 2$. This case has several front panel, one of them has hole for camera lens. Raspberry Pi board and camera is hidden inside this case.
  • Micro SD card. I recommend to use Samsung Evo Plus cards. They have good speed and does  not cost too much. 32 Gb will more than enough.
  • Power supply or power bank that can deliver 1A at 5V. Also you will need micro USB to USB cable. I recommend to use shorter cable to decrease voltage loss due cable electrical resistance.

Now need to prepare micro SD card - write OS image. Image can be downloaded from Github. Also there can be found instructions how to install it. After several minutes image will be written to card. There is one thing to do before placing it to Raspberry. Need to configure Wifi settings otherwise you will not be able to connect to camera. Place card to card reader and connect it with your computer. You will see one small disk with configuration files. Create file named wpa_supplicant.conf and place there these configurations:

    country=US
    update_config=1
    ctrl_interface=/var/run/wpa_supplicant
    
    network={
        scan_ssid=1
        ssid="MyWiFiSSID"
        psk="S3cr3tp@$$w0rc|"
    }

You should only change country, your Wifi name and password. More details about Wifi configuration can be found here.

Then can start to assemble camera. It is rather simple. First of all need to connect camera module to Raspberry Pi camera port. Place microSD with operating system installed into card port. Then place Raspberry Pi board with connected camera in case. As result you will get something like this

Then connect assembled camera to power source

motionEyeOS will listen connections on 80 port. Input IP address into browser and administration panel will be opened. There you can configure camera. You can set device name and use it instead of IP address. Also can make camera accessible outside home network. This can be done configuring Let's encrypt proxy and redirecting some domain name to this device inside local network.

Administration panel has lots of feature to configuring, including ftp, ssh, storing video locally or to some network drive.

Using Raspberry Pi Zero can set picture resolution not more than 640x480. In this case you can not get more than 5 fps. I think using more powerful single board computer can get more fps with higher resolution.

This is simple but interesting project. Camera can be used for different purposes: security camera, watching child or wildlife. Only restriction is that you need wifi connection to camera. Of course it is possible to use it without Internet, but it will not be possible to watch video remotely.