DEV Community

How to build your own primitive surveillance system with Raspberry Pi in less than one hour 🔥

Nick Shulhin on April 13, 2019

Recently I got my hands on a Raspberry Pi 3 B+ which I purchased used from classifieds website for around A$30 dollars. And straight away decide...
Collapse
 
siliconhippy profile image
siliconhippy

Good simple project for the home user, and nicely explained.

My questions:

  1. I would like missing details about setting up the reverse SSH persistent access from a remote server/laptop ... A. WAN address= public IP address? B. How do you make RPi private IP "static"? C. Can the first time SSH password be skipped, or accessed from a pre-existing file on RPi? D. Any insights/code into having a few homes with one RPi each streaming to Cloud?

I think this multi home project will look great on GitHub with a detailed Readme as above !😃

Collapse
 
vintozver profile image
Vitaly Greck

I would recommend buying a small server, installing openvpn there and establish persistent vpn tunnels from the pis to that server.

or use ipv6 and "registrar" service (kinda dynamic dns) which will keep the list of currency running hosts.

works well for me, easy to access every pi, no hassle, to manual ip config etc.

Collapse
 
nickitax profile image
Nick Shulhin

Hi siliconhippy!

Thanks for your feedback, appreciate it :)

Yes, I probably had to be more specific in networking part: in my scenario I have a dedicated static IP address, which exposes my router.

Regarding a question of making Raspberry Pi IP static: almost in every router there is a functionality to assign static IP within LAN by MAC address, which means particular device will always have a reserved address for this kind of purpose.

Ahah, streaming to Cloud would be amazing, totally agree. However I specifically made this tutorial using only bare-bone solutions without much of third-party software or development. Sure, everything can be done with some amazing API + AWS on top with streaming and data storage/web interfaces.

I'll do my best to publish this project on GitHub, thanks for idea!

Collapse
 
vintozver profile image
Vitaly Greck
Collapse
 
nickitax profile image
Nick Shulhin

Thanks for sharing of your project, Vitaly! Looks really interesting.

I could see in comments people are requesting features such as video processing:

Recently had an experience with frame capturing and mounting videos from collection of images using a tool called FFMPEG => ffmpeg.org/

Hope it will be useful

Collapse
 
siliconhippy profile image
siliconhippy

Vitaly,

It will be nice to have a Readme with all the steps explained. Especially for reverse SSH tunnel and any special notes.

Cheers,
😃🐵

Collapse
 
vintozver profile image
Vitaly Greck

Readme added, enjoy.
Not sure whether you need reverse ssh tunnels here, service is pretty simple, I this setup on 4 of my cameras, was able to catch many things and notify the violators. Production ready!

I have Microsoft O365 Home subscription which comes with 1TB of OneDrive space, enough to save the 3 months of footage from all cams.

Thread Thread
 
siliconhippy profile image
siliconhippy

Vitaly,

Now it is clear, thanks for the quick response 😁🐵

  1. Sure reverse SSH is not needed here, but since I might need it on another project, could you describe the process and code?

  2. How about going from pics to videos with time limits?

Thread Thread
 
vintozver profile image
Vitaly Greck

Let's describe the project in a different topic. This is off-topic here.

Going from pics to video may require a bit more effort. Since videos are pretty large files, you may want to consider streaming options and processing the stream at the cloud. Depending on your connection limitations you may also want to have the quality adjusted (read, reduced) which is a clear disadvantage compared to the crispy pics. I would not consider steaming as a feasible option for the raspberry pi at this time.

Collapse
 
lithiil profile image
Tudor

Don't want to be a party pooper here but i think that motion is a far better solution

Collapse
 
nickitax profile image
Nick Shulhin

Hi, Tudor!

No worries, thanks for a feedback :)

As I explained above, there is no limit towards development of this project => everything from streaming, cloud storage to machine learning and recognition algorithms.

This part is a very simple introduction based on mostly out-of-the-box tools shipped with OS.

If there is enough interest I may publish another hardcore version of it ;)

Collapse
 
csells profile image
Chris Sells

It would be cool to add motion detection-based recording to this project and perhaps email notification?

Collapse
 
vintozver profile image
Vitaly Greck

see above in my comment, separate project is available. email notifications are an extra menu item depending on the dish you're willing to cook. so far

Collapse
 
davolesh profile image
Dave Olesh • Edited

Nice!

Consider MotionEyeOS. Once installed, any usb camera connected will automatically be detected and connected.

It has streaming and even motion detection.

Collapse
 
nickitax profile image
Nick Shulhin

Hey Dave!

Thanks for reply!

I've never heard of this project before, really interesting.

I could see it is basically another separate Linux Distribution.

If you are planning to use your Raspberry Pi as a camera only - definitely a go 👍

Collapse
 
danielpuglisi profile image
Daniel Puglisi

Is that a Gremlin on your bed? 😂

Collapse
 
nickitax profile image
Nick Shulhin

Considering the fact my room hasn’t been cleaned for a while, there are many possibilities ranging from mutated socks to zombie pillows... 😁