When Your Smart Doorbell or Camera Isn’t Enough, Try a Raspberry Pi

A digital camera on top of a raspberry pie

CamKnows™ 1.0 for the Raspberry Pi is now available on GitHub.

I have owned a smart doorbell for several years now, and I can’t imagine life without it. The benefits of smart cameras and doorbells are numerous. I can instantly know who is at my front door or when a package is delivered. There are, however, some drawbacks to any camera-equipped smart device.

The author generated this image using OpenAI's DALL·E 2, using the text prompt "a digital camera on top of a raspberry pie, digital art".

The ability to customize settings is significantly limited. Most devices require a connection to the cloud via the public internet. With the IoT world we are building, more connectivity leads to more risk. You also might have concerns about the privacy and security of your data. And when a vendor decides to force you to upgrade or lose features you depend on, you have few options. Forced obsolescence is becoming more and more part of the business model, to the detriment of our environment and wallets.

I created CamKnows™ as a complement to my smart doorbell when I noticed that it did not detect motion in certain situations. I became interested in a simple setup I could customize to my specific needs. I also wanted something limited to my local home network, with complete control over all stored data, including images, device settings, and even log files.

CamKnows runs on a Raspberry Pi equipped with a Camera Module. These inexpensive devices provide a wealth of possibilities for anyone interested in DIY tech, including electronics, robotics, and even AI. Simon Monk’s Raspberry Pi Cookbook is an essential learning resource that I highly recommend.

CamKnows provides a significant number of customization options, including:

  • Image resolution, dimensions (i.e., zoom, cropping), rotation, and timestamp
  • Motion detection sensitivity
  • Image file storage – location, naming
  • Manual camera settings – ISO, frame rate, etc.
  • Time-lapse capture – for example, capture an image at least every hour.

This open-source project for Python 3 has a permissive MIT license. You have full access to the source code to see how it works and what it is doing. It uses the following libraries:

  • PiCamera – image capture
  • OpenCV – Computer Vision capabilities, including image difference calculation and image manipulation
  • Numpy – mathematical functions and data arrays
  • imutils – provides helpful functions such as image resizing

CamKnows does not replace your smart cameras and doorbells, although some may choose this route. It is a supplement where you can customize your hardware and software configuration for your environmental needs. Industrial and commercial applications are possible depending on your implementation requirements.

You are in control of your entire setup and upgrades. No forced obsolescence here.

You can learn more at https://github.com/dreoporto/camknows.

This project has reached a milestone now that it is a 1.0 release, several months after its initial availability on GitHub. It has been evaluated and enhanced for real-world situations. There are still many possibilities for new features. Please feel free to contact me if you have any comments or feedback. I would love to hear what you think.