The core part of the project is actually ready. If all is configured
correctly, the presence of an intruder will be detected automatically,
and the recorded videos will be saved on the local drive (SD card).
However, we may not get the access to our board in order to retrieve
the files or simply, we’d like to know sooner. In order to transfer
the files, I use Part
II from this tutorial as it provides an easy way for future
expansion and excellent explanation, except for scheduling the
activity of Motion using
The general idea of this approach is to “emulate” a mail box using the Raspberry and send an email to oneself using the attachment (recorded videos of the intruder). I will recall the instruction for the sake of completion, but it essentially comes from the link I stated above.
As you remember, the
on_event_end line inside
file provides the “entry point” here (or exit rather… nevermind). By
sudo zip_and_mail.sh there, we are going to
execute the script, which will collect all the content of the
directory, compress it and send it to us by email.
In my implementation, I have modified the script slightly in order to
fit with my needs better. I do not use the
stopmotion.sh scripts as instructed. Instead, I only
Following the link,
I assume that you have installed the
packages as well as configured them just as stated therein.
Now, our task is to complete the code of
Important! Gmail is constantly improving the security, so in order to actually make it work using Gmail, make sure that you lower the security level for the email account. Personally, I advice you to create a separate and dedicated account for this job.
The content of the
zip_and_send.sh script in my
implementation is the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 #!/bin/bash splitsize=500 recipient="EMAIL@GMAIL.COM" message="Thief entered your living room." INBOX="/home/USER/CAMERAPROJECT/INBOX" PROG="/home/USER/CAMERAPROJECT" OUTBOX="/home/USER/CAMPERAPROJECT/OUTBOX" echo "Target file path: $INBOX" echo "Running zip_and_send.sh..." `date` numfiles=$( ls -l $INB0X | egrep -c '^-') numfolders=`expr $numfiles / $splitsize` lastfoldercount=`expr $numfiles % $splitsize` COUNTER=0 while [ $COUNTER -le $numfolders ]; do echo "Creating directory... " `date` DESTINATION="$INBOXCOUNTER" echo "Directory $DESTINATION created." sudo rm -rf $DESTINATION sudo mkdir -p $DESTINATION if [ "$COUNTER" -lt "$numfolders" ]; then for file in $(ls -p $INBOX | grep -v / | tail -$splitsize); do echo "File to be moved: $INBOX/$file to: $DESTINATION" sudo mv $INBOX/$file $DESTINATION done else for file in $(ls -p $INBOX | grep -v / | tail $lastfoldercount); do echo "File to be moved: $INBOX/$file to: $DESTINATION" sudo mv $INBOX/$file $DESTINATION done fi echo "Creating zip file... " `date` pushd $DESTINATION sudo zip -9 -r -q $OUTBOX/motion$COUNTER.zip $DESTINATION/* popd # sending email echo "Sending email to the recipient: $recipient" `date` echo $message | mutt -s "Catch the Thief!" $recipient -a $OUTBOX/motion$COUNTER.zip # cleaning the old files echo "Removing file: $OUTBOX/motion$COUNTER" sudo rm $OUTBOX/motion$COUNTER.zip sudo rm $DESTINATION/* sudo rmdir $DESTINATION echo "Removing $OUTBOX/motion$COUNTER" sudo rmdir $OUTBOX/motion$COUNTER let COUNTER=COUNTER+1 done
Here, remember to create the
directories before executing this script. The
must also be executable (permissions!). If everything is done
correctly, warning emails should start appearing in your mailbox as
soon as some movement is detected.