Skip to content

csyvenky/node-red-sec-cam

Repository files navigation

node-red-sec-cam

node-red Security Camera Project for Raspberry Pi Node-Red GUI

Project Goals

  • to have a couple Raspberry Pi constantly taking home security photos.
  • uploading the photos to cloud-based blob storage service; I ended up with AWS but Azure Blob Storage Node worked nicely too.
  • to persist the image only if it has a quality worth keeping (ie. no black images at night).
  • to purge old images; prevent the system from just filling up the drive.
  • to save some operational information; to confirm the system was running correctly.
  • gather statistical reporting numbers; tallying the storage being consumed.

System Components/Requirements

System Flow

  • Python script takes photo every 30 seconds and saves it locally to Pi drive.
  • Node-Red flow watches the pictures folder for changes.
  • Prior to saving the image to AWS S3 cloud storage the ImageMagick "identify" application is called in order to process the image's "blackness" value - if the image is too dark it will not be saved.
  • If the image quality is good the flow saves the photo to AWS S3 blob-storage.
  • S3 policies move older photos to Glacier storage to save on costs; an additional policy will purge/expire the images from AWS.
  • In parallel to the save operation the system saves operational metadata to a local Splunk infrastructure.
  • The Node-Red flow also has a sub-flow that periodically deletes old images from the Pi and saves the details to Splunk.
  • A new flow has recently been added which once every hour takes the most recent image and runs it through a custom computer vision AI algorithm which has been trained to identify "normal situations" at my house.
  • The output from the computer vision AI is saved to Azure Table Storage for future analytical processing.

The Node-Red project is on GitHub

Splunk Dashboard Computer Vision AI

About

node-red Security Camera Projects for Raspberry Pi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages