This is a project that I worked on for my Embedded Linux class. It is currently feature complete as it will recognize motion, send an alert to the user, and allow the user to remotely view and either archive or delete footage from a webserver.
To briefly explain how it works: this project consists of three main components - motion detection, user notification, and user interface. The motion detection part of this project uses the Linux-based motion package to detect, store, and respond to motion events from a webcam. Captured footage is stored temporarily and served on an Nginx webserver. The response to a motion event consists of launching a python script and passing it details about the triggering event. The python script then fetches a link to a remote ngrok tunnel(which allows for remote access without requiring port forwarding) and modifies the link to point to the webserver folder containing the corresponding footage, logs debug info to a google sheet, and then finally triggers an IFTTT notification with that link. Upon receiving the notification, a user can then follow the link, log into the webserver and review the captured footage. The user can then use a basic UI to navigate, save, or delete footage. Saving and deletion are implemented via a shell script.
Comments