Script for taking a picture and sending it as an email

The problem

My boat is laying at a mooring, and I live 45min away. I do not go out to check it on a daily basis. I want to get an e-mail from the boat on a fixed time, morning and evening, to see that everythoin is OK.

The solution

A Raspberry Pi, with a web cam attached, connected to the internet with a mobile 4G modem, programmed to take a picture and sending the picture as an e-mail.

The hardware

  • A Raspberry Pi 3 Model B+, with Rasbian installed.
  • A supercheap web cam from eBay.
  • A mobile 4G modem with a SIM card.
  • A powersource, I made a powersupply from scratch, connected to a 12v car battery.

The software

The script for sending the e-mail

You'll find the script in this link

The script for taking the picture

To take the picture, you'll need the program fswebcam. Use:

sudo apt-get install fswebcam

to install it. Then write a bash script to use fswebcam to take a picture, like this:

#/bin/bash
fswebcam -r 640x480 image1.jpg

Save it as takepiture.sh

Then make a script that use both the scripts:

#/bin/bash
echo "Take picture"
./takepicture.sh
echo "Send e-mail"
python sendemail.py

Save it as takepicturesendemail.sh

You must change the attributes on the two *.sh-scripts, to make them executable. I use the command:

chmod +777 *sh

Now this needs to be automated. For that I'm using crontab. To open crontab for editing:

crontab -e

Then insert the intervals you want take the picture and send the e-mail. This is my crontab-file:

#m h  dom mon dow command
*/5 * * * * /home/pi/./takepicsendmail.sh

blogroll

social