This program uses a reed sensor to monitor the status of a door (open/closed) and in case of status change an email is send. A buzzer is also sound everytime the door is opened and every 5 minutes if it remains open.
Developed using the Wiring Pi GPIO interface library.
- Raspberry Pi 3 Model B Rev 1.2
- Reed switch
- 10kΩ (kohm) resistor
- 5V active buzzer
- Jumper wires
Edit door-sendmail.sh and modify the values of TO, FROM,
SUBJECT and CONTENT variables as you wish.
root@rpi3 ~ $ cd wiringpi-projects/door-monitor
root@rpi3 ~ $ make # Compile door-monitor.c to door-monitor.elf
root@rpi3 ~ $ make install # Install the .elf file under /root/bin/
root@rpi3 ~ $ make uninstall # Remove the .elf file from /root/bin/
root@rpi3 ~ $ make clean # Remove the .elf file from current dirThe make and make install targets will respectively compile door-monitor.c
and install door-monitor.elf (compilation product) and door-sendmail.sh under
/root/bin/. In case you want to choose a different directory modify
the content of variable TARGETDIR in Makefile.
First of all install the required packages by running the command below:
apt-get install mailutils ssmtpThen edit file /etc/ssmtp/ssmtp.conf and modify it so that its contents look like this:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.server.xz:port
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=your-pi's-hostname
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
AuthUser=user@server.xz
AuthPass=secret-password
UseSTARTTLS=YESImportant: Make sure to modify lines mailhub, hostname, AuthUser, AuthPass at your discretion. For Gmail set mailhub=smtp.gmail.com:587
Crontab allows you to automatically execute a comand or a shell script at given intervals.
Run crontab -e to edit current crontab file. The very first time you will be prompted to choose the editor of your choice.
Assuming that you didn't modify the installation dir, add the following entry at the end of the file:
@reboot /root/bin/door-monitor.elfin order for door-monitor.elf to be executed every time the raspberry pi boots. Save changes and exit.
