{"id":15172805,"url":"https://github.com/amboxer21/motiondetection","last_synced_at":"2025-10-26T04:30:29.040Z","repository":{"id":56053067,"uuid":"112238075","full_name":"amboxer21/MotionDetection","owner":"amboxer21","description":"A system that monitors motion with Python's OpenCV from a webcam and allows remote viewing of the webcam from an android app. The system takes pictures when it detects motion then emails those pictures. The android app allows you to remotely view the cam anytime.","archived":false,"fork":false,"pushed_at":"2022-02-25T00:40:35.000Z","size":23785,"stargazers_count":24,"open_issues_count":16,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T14:21:47.152Z","etag":null,"topics":["android","cctv","cctv-cameras","cmake","diy","ffmpeg","gentoo","gentoo-arm","monitors-motion","motion-detection","opencv","opencv-contrib","python","raspberry-pi-3","raspberry-pi-3b-plus","raspberry-pi-4","rpi3","rpi4","security-camera","webcam"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amboxer21.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-27T19:19:44.000Z","updated_at":"2024-11-23T04:19:50.000Z","dependencies_parsed_at":"2022-08-15T12:20:09.877Z","dependency_job_id":null,"html_url":"https://github.com/amboxer21/MotionDetection","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amboxer21%2FMotionDetection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amboxer21%2FMotionDetection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amboxer21%2FMotionDetection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amboxer21%2FMotionDetection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amboxer21","download_url":"https://codeload.github.com/amboxer21/MotionDetection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238258928,"owners_count":19442501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cctv","cctv-cameras","cmake","diy","ffmpeg","gentoo","gentoo-arm","monitors-motion","motion-detection","opencv","opencv-contrib","python","raspberry-pi-3","raspberry-pi-3b-plus","raspberry-pi-4","rpi3","rpi4","security-camera","webcam"],"created_at":"2024-09-27T10:20:17.719Z","updated_at":"2025-10-26T04:30:28.251Z","avatar_url":"https://github.com/amboxer21.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Description]\nThis highly configurable framework monitors motion from a USB webcam on a Raspberry Pi using the OpenCV API. Once motion is detected by the system, it takes a picture of what set off the framework then E-mails the picture(s) to you. It also affords the ability to remotely view that webcam from an android app from anywhere in the world at anytime. So after you’re notified via E-mail, then you have the option of checking the camera’s live feed if you’d like. If you need an image made, I can make an sdcard for you and send it via USPS(mail). If you need an image or have any questions, send an E-mail to amboxer21@gmail.com.\n\n### [Notice]\n\u003e In order for the app to work remotely, you need to forward ports on your router. The default ports for the Android app are port 5000 and port 50050.\n\n### [Todo]\n\u003e (SHOULD BE RESOLVED) As of 2021-01-06 I have found out that the latest data image tarball is broken and needs to be fixed. Using the old tarball will work until the latest is fixed.\n\n\u003e Redesign the Android app's UI. See GitHub issue [#50](https://github.com/amboxer21/MotionDetection/issues/50).\n---\n\n# MotionDetection(CCTV) with Python3 on the Raspberry Pi powered by Gentoo Linux\n\n**Note:** You can send me an E-mail if you have any trouble and I will be happy to help you - `amboxer21@gmail.com`. \n\n### [Videos]\n\n**`Demo from Aug 9, 2020`** - Find a quick demo [HERE](https://youtu.be/_jswANI5GCg)\n\n**`Booting`** - Booting the system after installation [HERE](https://youtu.be/WJWTAXVIbQg)\n\n**`Installing MotionDetection on an sdcard`** - POC of installation [HERE](https://youtu.be/L-uoW5sm6rA)\n\n**`Android App`** - POC of Android app [HERE](https://youtu.be/SWIv4_nvkdo)\n\n---\n\n### [Credentials]\n\u003e For use with the installer script.\n\n`Username`**:** pi\n\n`Password`**:** RASPBERRY pi 3\n\n---\n\n### [Downloads]:\n\n[ LATEST ] Download the Motiondetection system data tarball [HERE](https://drive.google.com/file/d/18IULhCi25xeRIyUjJJg2WMcFOBzX_pJA/view?usp=sharing).\n\n**Notice:** ^^ This tarball is essential to buillding an sdcard! Without it the system won't work.\n\n[ LATEST ] Download the stage3 tarball for the RPI3 and the RPI4 [HERE](http://gentoo.osuosl.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/stage3-armv7a_hardfp-20200509T210605Z.tar.xz).\n\n**Notice:** ^^ This tarball is necessary if you want to roll your own image instead of using mine.\n\n---\n\n### [Installing MotionDetection on your PI]\n\u003e This is an installer script that needs to be run in the same directory as the pi tarball! The script works on both the Raspberry PI 3b and 4b!!\n```javascript\n#!/bin/bash\n\necho \"[ INFO ] Checking for presence of pi.tar.gz tarball.\";\nif [[ -e $(ls pi.tar.gz 2\u003e /dev/null) ]] ; then\n    echo \"[ INFO ] pi.tar.gz found.\";\nelse\n    echo \"[ ERROR ] The pi.tar.gz tarball needs to be in the same directory as this script.\";\n    exit;\nfi\n\necho \"[ INFO ] Checking for presence of sdcard at /dev/mmcblk\";\nif (( var=$(sudo fdisk -l /dev/mmcblk0 1\u003e\u0026 /dev/null) $? == 0 )) ; then\n    echo \"[ INFO ] Found sdcard.\";\nelse\n    echo \"[ ERROR ] Cannot find sdcard.\";\n    exit;\nfi\n\nmountpoint=$(mount | awk '/mmcblk0p2/{print $3}');\n\nif [[ $mountpoint ]] ; then\n    sudo umount -R $mountpoint;\nfi\n\necho \"[ INFO ] Partitioning sdcard.\";\nfor n in {1..4}; do parted -a optimal /dev/mmcblk0 rm $n 2\u003e /dev/null; done\nsudo parted -a optimal /dev/mmcblk0 mkpart primary fat32 0% 513MB\nsudo parted -a optimal /dev/mmcblk0 mkpart primary ext4 513MB 100%\n\necho \"[ INFO ] Creating FAT32 filesystem on /dev/mmcblk0p1.\";\necho 'y' | sudo mkfs.vfat -F32 /dev/mmcblk0p1\n\necho \"[ INFO ] Creating EXT4 filesystem on /dev/mmcblk0p2.\";\necho 'y' | sudo mkfs.ext4 /dev/mmcblk0p2\n\necho \"[ INFO ] Checking if mountpoint /mnt/pi exists.\";\nif [[ -e /mnt/pi ]] ; then\n    echo \"[ INFO ] Mountpoint /dev/pi exists.\";\nelse\n    sudo mkdir -p /mnt/pi;\n    echo '[ WARNING ] /mnt/pi doesnt exist - creating it now.';\nfi\n\necho \"[ INFO ] Mounting /dev/mmcblk0p2 on /mnt/pi\";\nsudo mount /dev/mmcblk0p2 /mnt/pi;\n\necho \"[ INFO ] Checking if mountpoint /mnt/pi/boot exists.\";\nif [[ -e /mnt/pi/boot ]] ; then\n    echo \"[ INFO ] Mountpoint /dev/pi/boot exists.\";\nelse\n    sudo mkdir -p /mnt/pi/boot;\n    echo '[ WARNING ] /mnt/pi/boot doesnt exist - creating it now.';\nfi\n\necho \"[ INFO ] Mounting /dev/mmcblk0p1 on /mnt/pi/boot\";\nsudo mount /dev/mmcblk0p1 /mnt/pi/boot;\n\necho \"[ INFO ] Unpacking tarball onto your sdcard.\";\ntar -xzf pi.tar.gz -C /mnt/pi/ ;\n\necho \"[ INFO ] Unmounting your sdcard now.\";\nsudo umount -R /mnt/pi ;\n```\n\nExample script output:\n```javascript\nroot@ghost ~ $ sudo bash make-sdcard.sh \n[ INFO ] Checking for presence of pi.tar.gz tarball.\n[INFO] pi.tar.gz found.\n[ INFO ] Checking for presence of sdcard at /dev/mmcblk\n[ INFO ] Found sdcard.\n[ INFO ] Partitioning sdcard.\nInformation: You may need to update /etc/fstab.                           \n\nInformation: You may need to update /etc/fstab.                           \n\n[ INFO ] Creating FAT32 filesystem on /dev/mmcblk0p1.                     \nmkfs.fat 4.1 (2017-01-24)\n[ INFO ] Creating EXT4 filesystem on /dev/mmcblk0p2.\nmke2fs 1.45.5 (07-Jan-2020)\nDiscarding device blocks: done                            \nCreating filesystem with 15511296 4k blocks and 3883008 inodes\nFilesystem UUID: fb8a85ff-1c19-4e64-a0e4-80c1e49167f5\nSuperblock backups stored on blocks: \n\t32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, \n\t4096000, 7962624, 11239424\n\nAllocating group tables: done                            \nWriting inode tables: done                            \nCreating journal (65536 blocks): done\nWriting superblocks and filesystem accounting information: done   \n\n[ INFO ] Checking if mountpoint /mnt/pi exists.\n[ INFO ] Mountpoint /dev/pi exists.\n[ INFO ] Mounting /dev/mmcblk0p2 on /mnt/pi\n[ INFO ] Checking if mountpoint /mnt/pi/boot exists.\n[ WARNING ] /mnt/pi/boot doesnt exist - creating it now.\n[ INFO ] Mounting /dev/mmcblk0p1 on /mnt/pi/boot\n[ INFO ] Unpacking tarball onto your sdcard.\n[ INFO ] Unmounting your sdcard now.\nroot@ghost ~ $\n```\n\n---\n\n### [Rolling a Raspberry Pi image]:\n\n* Install base system\n\n* Update your system\n\n* Emerge rust-bin\n\n* Emerge ffmpeg\n\n* Emerge OpenCV\n\n* Emerge mail utils\n\u003e emerge -av acct-group/mail acct-user/mail dev-perl/MailTools net-mail/mailbase\n\n**NOTE:** It is important to emerge rust-bin because compiling the regular rust package takes up a lot of resources and is prone to breaking on the arm arch! You don't want to spend days hacking this install when you can just install the bin version!\n\n### Installing base system\n\n##### Notes:\n\n\u003e 1) You must be root while running these commands! **sudo -i** NOT **sudo command**\n\u003e 2) Run the command below seperately from the rest of the script and wait for it to finish before continuing!\n```javascript\numount -R /mnt/gentoo\nparted /dev/mmcblk0 mklabel msdos\n```\n\n**Continue!**\n```javascript\nfor n in {1..4}; do echo -e 'y' | parted /dev/mmcblk0 rm $n 2\u003e/dev/null; done\nparted /dev/mmcblk0 mkpart primary fat32 0% 513MB\nparted /dev/mmcblk0 mkpart primary linux-swap 513MB 2561MB\nparted /dev/mmcblk0 mkpart primary ext4 2561MB 100%\nparted /dev/mmcblk0 p\n\nmkfs.vfat -F32 /dev/mmcblk0p1\nmkswap /dev/mmcblk0p2\necho 'y' | mkfs.ext4 /dev/mmcblk0p3\n\nmount /dev/mmcblk0p3 /mnt/gentoo\nmkdir /mnt/gentoo/boot\nmount /dev/mmcblk0p1 /mnt/gentoo/boot\n\ntar xzvf rpi4b.tar.gz\ncd rpi4b\ntar xzvf gentoo.tar.gz\n\ntime rsync -ra gentoo/* /mnt/gentoo/\n\nwget http://gentoo.osuosl.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/stage3-armv7a_hardfp-20200509T210605Z.tar.xz\ntar xvf stage3-armv7a_hardfp-20200509T210605Z.tar.xz -C /mnt/gentoo/\n\nwget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2\ntar xjvf portage-latest.tar.bz2 -C /mnt/gentoo/usr\n\ngit clone --depth 1 git://github.com/raspberrypi/firmware/\ncd firmware/boot\ncp -r * /mnt/gentoo/boot/\ncp -r ../modules /mnt/gentoo/lib/\n\necho -e \"/dev/mmcblk0p1 /boot auto noauto,noatime 1 2\\n/dev/mmcblk0p3 / ext4 noatime 0 1\\n/dev/mmcblk0p2 none swap sw 0 0\" \u003e\u003e /mnt/gentoo/etc/fstab\n\necho \"dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait\" \u003e /mnt/gentoo/boot/cmdline.txt\n\ncp /mnt/gentoo/usr/share/zoneinfo/America/New_York /mnt/gentoo/etc/localtime\n\necho \"America/New_York\" \u003e /mnt/gentoo/etc/timezone\n\nsed -i 's/^root:.*/root::::::::/' /mnt/gentoo/etc/shadow\n\ncd\n\numount -R /mnt/gentoo\n```\n\n### Update your system\n\u003e I would suggest installing rust-bin before updating @world!\n```\n(1) emerge --sync\n(2) emerge -av --deep --newuse --update @world\n```\n\n**Note:** Before updating your system, create this file and copy these contents into that file to circumvent the gpg syncing errors\n```\nanthony@anthony ~ $ cat /etc/portage/repos.conf/gentoo.conf \n[DEFAULT]\nmain-repo = gentoo\n\n[gentoo]\nlocation = /usr/portage\nsync-type = rsync\nauto-sync = yes\nsync-uri = rsync://rsync.us.gentoo.org/gentoo-portage\nsync-rsync-verify-metamanifest = no\nanthony@anthony ~ $ \n```\n\n### Emerge rust-bin\n```\nemerge -av rust-bin\n```\n\n### Compiling OpenCV\n\u003e Create these file and set the use flags before emerging OpenCV and ffmpeg!\n\n**Note:** Install ffmpeg before installing OpenCV!\n\n#### [Package USE Flags]\n\u003e /etc/portage/package.use/ffmpeg\n```\nvirtual/ffmpeg encode mp3 threads mp3 threads x264 jack alsa blueray libv4l v4l lzma twolame opengl openssl oss pulseaudio sdl vorbis xvid gsm opus speex vaapi vdpau -theora -truetype -libav\nmedia-video/ffmpeg alsa bzip2 encode gmp gpl hardcoded-tables iconv jack libv4l lzma mp3 network opengl openssl oss postproc pulseaudio sdl threads twolame v4l vorbis x264 x265 xvid zlib bluray cdio chromium cpudetection debug doc fontconfig gcrypt gnutls gsm libass libdrm openh264 opus speex svg vaapi wavpack vdpau -theora -truetype -static-libs -amrenc -amr\n```\n\n\u003e /etc/portage/package.use/alsa-plugins\n```\nmedia-plugins/alsa-plugins pulseaudio\n```\n\n\u003e /etc/portage/package.use/gst-plugins-base\n```\nmedia-libs/gst-plugins-base -opengl\n```\n\n\u003e /etc/portage/package.use/libcrypt\n```\nvirtual/libcrypt static-libs\n```\n\n\u003e /etc/portage/package.use/libglvnd\n```\nmedia-libs/libglvnd X\n```\n\n\u003e /etc/portage/package.use/libv4l\n```\nmedia-libs/libv4l jpeg\n```\n\n\u003e /etc/portage/package.use/mesa\n```\nmedia-libs/mesa X\n```\n\n\u003e /etc/portage/package.use/numpy\n```\ndev-python/numpy lapack\n```\n\n\u003e /etc/portage/package.use/opencv\n```\nmedia-libs/opencv v4l png jpeg gstreamer python ffmpeg contrib lapack -opengl\n```\n\n\u003e /etc/portage/package.use/openssl\n```\ndev-libs/openssl sslv3\n```\n\n\u003e /etc/portage/package.use/zlib\n```\nsys-libs/zlib abi_x86_64 minizip\n```\n\n\u003e /etc/portage/package.use/pulseaudio\n```\nmedia-sound/pulseaudio bluetooth jack dbus sox ofono-headset native-headset libsamplerate CPU_FLAGS_ARM: -neon\n```\n\n**NOTE:** For `pulseaudio`, the neon flags causes the compilation to crash when emerging if this flag is set.\n\n\u003e /etc/portage/package.use/gcc\n```\nsys-devel/gcc objc objc++ objc-gc\n```\n\n**NOTE:** For `GCC`, I ran into issues compiling cmake and the solution was to recompile gcc with these use flags. I had to recompile quite a few times. Compiling gcc with these USE flags in the beginning could save you the same trouble!\n\n**`Error message:`**\n```\n-- Checking if compiler supports needed C++17 constructs - yes\n-- Checking if compiler supports C++ make_unique\n-- Checking if compiler supports C++ make_unique - no\n-- Checking if compiler supports C++ unique_ptr\n-- Checking if compiler supports C++ unique_ptr - no\nCMake Error at CMakeLists.txt:107 (message):\n  The C++ compiler does not support C++11 (e.g.  std::unique_ptr).\n\n\n-- Configuring incomplete, errors occurred!\nSee also \"/var/tmp/portage/dev-util/cmake-3.17.4-r1/work/cmake-3.17.4_build/CMakeFiles/CMakeOutput.log\".\nSee also \"/var/tmp/portage/dev-util/cmake-3.17.4-r1/work/cmake-3.17.4_build/CMakeFiles/CMakeError.log\".\n * ERROR: dev-util/cmake-3.17.4-r1::gentoo failed (configure phase):\n *   cmake failed\n```\n\n#### [Masked packages]\n\n\u003e /etc/portage/package.mask/cmake\n```\n\u003e=dev-util/cmake-3.17.4-r1\n```\n\n#### [Accept keywords]\n\n\u003e /etc/portage/package.accept_keywords/eigen\n```\ndev-cpp/eigen ~arm\n```\n\n\u003e /etc/portage/package.accept_keywords/opencv\n```\nmedia-libs/opencv ~arm\n```\n\n#### [make.conf]\n\n```javascript\n# These settings were set by the catalyst build script that automatically\n# built this stage.\n# Please consult /usr/share/portage/config/make.conf.example for a more\n# detailed example.\nCOMMON_FLAGS=\"-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard\"\nCFLAGS=\"${COMMON_FLAGS}\"\nCXXFLAGS=\"${COMMON_FLAGS}\"\nFCFLAGS=\"${COMMON_FLAGS}\"\nFFLAGS=\"${COMMON_FLAGS}\"\nFEATURES=\"ccache\"\nCCACHE_DIR=\"/var/cache/ccache\nCPU_FLAGS_ARM=\"edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 crc32 v4 v5 v6 v7 thumb2\"\n\n# WARNING: Changing your CHOST is not something that should be done lightly.\n# Please consult https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable before changing.\nCHOST=\"armv7a-unknown-linux-gnueabihf\"\nUSE=\"bluetooth ffmpeg jpeg png gif curl -X -pulseaudio -gtk -qt -qt5 -qt4 -consolekit -static-libs -cups -systemd\"\n\n# NOTE: This stage was built with the bindist Use flag enabled\n\n# This sets the language of build output to English.\n# Please keep this setting intact when reporting bugs.\nLC_MESSAGES=C\n\n```\n\n---\n\n### [Building OpenCV from source on x86_64]\n\u003e OpenCV is built from source so that you can use the opencv_createsamples program which was removed in later versions of OpenCV and is not present in Gentoo's upstream version. The opencv_createsamples command is used to help fascilitate in creating your own custom facial recognition models.\n```javascript\npi@localhost ~ $ sudo -i\nPassword: \nlocalhost ~ # cd /usr/src/\nlocalhost /usr/src # git clone https://github.com/opencv/opencv.git -b 3.4\nlocalhost /usr/src # git clone https://github.com/opencv/opencv_contrib.git -b 3.4\nlocalhost /usr/src # cd /usr/src/opencv/opencv\nlocalhost /usr/src/opencv # mkdir build\nlocalhost /usr/src/opencv # cd build\nlocalhost /usr/src/opencv/build # cmake -DCAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4 -DINSTALL_PYTHON_EXAMPLES=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_OPENCL=OFF -DWITH_VTK=OFF -DWITH_QT=OFF -DOPENCV_EXTRA_MODULES_PATH=/usr/src/opencv_contrib/modules -DBUILD_opencv_apps=ON -DBUILD_EXAMPLES=ON ..\n```\n\n#### CMake command\n```javascript\ncmake -DCAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4 -DINSTALL_PYTHON_EXAMPLES=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_OPENCL=OFF -DWITH_VTK=OFF -DWITH_QT=OFF -DOPENCV_EXTRA_MODULES_PATH=/usr/src/opencv_contrib/modules -DBUILD_opencv_apps=ON -DBUILD_EXAMPLES=ON ..\n\n```\n\n---\n\n### [Changing Motiondetection options using a GUI]:\n\nYou can change the options that the Motiondetection framework runs with by opening your favorite browser, entering your Rapsberry Pi's IP address - i.e., 192.168.1.232. Here you can change options like the E-mail that the pictures are sent to, burst mode count, etc. A short demonstration can be found [HERE](https://youtu.be/YYGSTYESsQk).\n\n---\n\n### [Resources]:\n[stage3-armv7a_hardfp-20200509T210605Z.tar.xz](http://gentoo.osuosl.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/stage3-armv7a_hardfp-20200509T210605Z.tar.xz)\n\n[Raspberry Pi Gentoo wiki](https://wiki.gentoo.org/wiki/Raspberry_Pi/Quick_Install_Guide)\n\n[MotionDetection Framework rsync data](https://drive.google.com/file/d/1bJ7WJQeGAhr-r2pe-ITLRjM1wxJExrOK/view?usp=sharing)\n\n[Android app to view camera's feed](https://github.com/amboxer21/MotionDetection/blob/master/src/SecureView-debug.apk)\n\n---\n\n# [Change Log]\n\u003e[ OLD ][**As of 2020-08-03**] Currently fixing up this repo's code and working on a new Gentoo based ISO image\n\n\u003e[ OLD ][**As of 2020-08-03**] You can now update the application's configuration options in the GUI using your favorite browser. Now all you have to do is power up the RPI/USB camera, open a browser, navigate to a specified URL, reload, then the program will use your updated options. Watch a short demo of the webconfigurator [HERE](https://youtu.be/YYGSTYESsQk).\n\n\u003e[ OLD ][**As of 2020-08-09**] The framework that runs on Raspbian has been deprecated in favor of Gentoo Linux. The Raspbian system will no longer be updated but will be left in tact. \n\n\u003e[ OLD ][**As of 2020-08-09**] Daemon support was removed from the framework. You will either have to set it up yourself or roll an image. The image is plug-and-play, power up the RPI4b and it just works.\n\n\u003e[ OLD ][**As of 2020-08-09**] The gentoo install is complete and the system automaticcaly comes up on boot - The system is plug and play. \n\n\u003e[ OLD ][**As of 2020-08-20**] The system would crash after being triggered. A new symlink feature caused the issue and I have since changed that symlink call to a copy(cp) call in the motiondetection.py file in this [commit](5117801ee95b0cc571626b4d704146f06c0ac3d8). New rsync data with the new changes has been uploaded this morning.\n\n\u003e[ OLD ][**As of 2020-10-28**] I have written an installer script named **make-sdcard.sh** that installs an image that works on my my Raspberry PI 3 and 4. The size of the card does not matter either. The idea of a DD'able system image has been put on the back burner for now. The installer script is super simple to use anyway!\n\n\u003e[ LATEST ][**As of 2020-11-20**] I have fixed the broken ANdroid app functionality. The remote veiwing of the live camera feed via android app is now working!\n\n---\n\n### [SCREEN SHOTS]\n\n![alt text](https://github.com/amboxer21/MotionDetection/blob/master/src/screenshots/Screenshot_20181119-171140_scaled-250x500.png)\n![alt text](https://github.com/amboxer21/MotionDetection/blob/master/src/screenshots/Screenshot_20181119-171159_scaled-250x500.png)\n![alt text](https://github.com/amboxer21/MotionDetection/blob/master/src/screenshots/Screenshot_20181119-171209_scaled-250x500.png)\n![alt_text](https://user-images.githubusercontent.com/2100258/89722342-98db3700-d9b6-11ea-8901-cb8b639b1248.png)\n\n---\n\n---\n\n**Since `Nov 27, 2017`**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famboxer21%2Fmotiondetection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famboxer21%2Fmotiondetection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famboxer21%2Fmotiondetection/lists"}