Advertisement
Guest User

Untitled

a guest
Apr 4th, 2018
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. import RPi.GPIO as GPIO
  2. import time
  3. import os
  4. import sys
  5. import signal
  6. from datetime import datetime
  7. import smtplib
  8.  
  9. from email.MIMEMultipart import MIMEMultipart
  10. from email.MIMEText import MIMEText
  11. from email.MIMEBase import MIMEBase
  12.  
  13.  
  14. def connect():
  15. server = smtplib.SMTP()
  16. server.connect('smtp.gmail.com')
  17. server.starttls()
  18. server.login("fedorjaro@gmail.com", "u7fw8DFK")
  19. return server
  20.  
  21. def host_on():
  22. hostname = "192.168.0.102"
  23. response = os.system("ping -c 1 " + hostname)
  24. # and then check the response...
  25. if response == 0:
  26. pingstatus = True
  27. else:
  28. pingstatus = False
  29. return pingstatus
  30.  
  31. def send_mail(server, msg):
  32. try:
  33. server.sendmail("fedorjaro@gmail.com", "fedorjaro@gmail.com", msg.as_string())
  34. except Exception:
  35. server = connect()
  36. server.sendmail("fedorjaro@gmail.com", "fedorjaro@gmail.com", msg.as_string())
  37. return server
  38.  
  39. # Set Broadcom mode so we can address GPIO pins by number.
  40. GPIO.setmode(GPIO.BCM)
  41.  
  42.  
  43.  
  44. DOOR_SENSOR_PIN = 23
  45.  
  46.  
  47. # Initially we don't know if the door sensor is open or closed...
  48. isOpen = None
  49. oldIsOpen = None
  50. server = connect()
  51.  
  52. GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
  53.  
  54. while True:
  55. oldIsOpen = isOpen
  56. isOpen = GPIO.input(DOOR_SENSOR_PIN)
  57. msg = MIMEMultipart()
  58. addr = "fedorjaro@gmail.com"
  59. msg['From'] = addr
  60. msg['To'] = addr
  61. if (isOpen and (isOpen != oldIsOpen)):
  62. msg['Subject'] = "HOM3: " + str(datetime.now()) + " Door open!"
  63. server = send_mail(server, msg)
  64. os.system("echo \"OPEN\" > /home/pi/door_state.txt")
  65. elif (isOpen != oldIsOpen):
  66. msg['Subject'] = "HOM3: "+str(datetime.now()) + " Door closed!"
  67. server = send_mail(server, msg)
  68. os.system("e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement