Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import RPi.GPIO as GPIO
- import time
- import os
- import sys
- import signal
- from datetime import datetime
- import smtplib
- from email.MIMEMultipart import MIMEMultipart
- from email.MIMEText import MIMEText
- from email.MIMEBase import MIMEBase
- def connect():
- server = smtplib.SMTP()
- server.connect('smtp.gmail.com')
- server.starttls()
- server.login("fedorjaro@gmail.com", "u7fw8DFK")
- return server
- def host_on():
- hostname = "192.168.0.102"
- response = os.system("ping -c 1 " + hostname)
- # and then check the response...
- if response == 0:
- pingstatus = True
- else:
- pingstatus = False
- return pingstatus
- def send_mail(server, msg):
- try:
- server.sendmail("fedorjaro@gmail.com", "fedorjaro@gmail.com", msg.as_string())
- except Exception:
- server = connect()
- server.sendmail("fedorjaro@gmail.com", "fedorjaro@gmail.com", msg.as_string())
- return server
- # Set Broadcom mode so we can address GPIO pins by number.
- GPIO.setmode(GPIO.BCM)
- DOOR_SENSOR_PIN = 23
- # Initially we don't know if the door sensor is open or closed...
- isOpen = None
- oldIsOpen = None
- server = connect()
- GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
- while True:
- oldIsOpen = isOpen
- isOpen = GPIO.input(DOOR_SENSOR_PIN)
- msg = MIMEMultipart()
- addr = "fedorjaro@gmail.com"
- msg['From'] = addr
- msg['To'] = addr
- if (isOpen and (isOpen != oldIsOpen)):
- msg['Subject'] = "HOM3: " + str(datetime.now()) + " Door open!"
- server = send_mail(server, msg)
- os.system("echo \"OPEN\" > /home/pi/door_state.txt")
- elif (isOpen != oldIsOpen):
- msg['Subject'] = "HOM3: "+str(datetime.now()) + " Door closed!"
- server = send_mail(server, msg)
- os.system("e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement