Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import RPi.GPIO as GPIO
- import time
- import smtplib
- from email.MIMEMultipart import MIMEMultipart
- from email.MIMEText import MIMEText
- import datetime
- body = "Email message"
- sender = "Room 202 Help"
- subject = "Room 202 Help Button"
- to = ""
- stmpAddress = "smtp.gmail.com"
- username = ""
- password = ""
- normalBody = "Help needed in room 202"
- importantBody = "Request Canceled Room 202"
- ledPin = 23
- buttonPin = 18
- importantPress = 2 #seconds
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) #makes the pin stay high another words it is set to about 3 volts
- GPIO.setup(ledPin, GPIO.OUT) #makes the pin be an output
- msg = MIMEMultipart()
- msg['From'] = sender
- msg['To'] = to
- msg['Subject'] = subject
- GPIO.output(ledPin,GPIO.LOW)
- while True:
- buttonPress = GPIO.input(buttonPin)
- if buttonPress == False: #is the pin low?
- GPIO.output(ledPin,GPIO.HIGH)#turn on the led
- print('Button Pressed')#Yes it is low meaning it was shorted to ground
- buttonPressStart = datetime.datetime.now() #Time the button got pressed
- while GPIO.input(buttonPin) == False: # while it is still low
- time.sleep(0.1)#stay here till they let go of the button
- buttonPressEnd = datetime.datetime.now() # time the button was let go
- diff = buttonPressEnd - buttonPressStart#the differnce of when the button got pressed and let go, duration on button press
- if diff > datetime.timedelta(seconds = importantPress):
- msg.attach(MIMEText(importantBody, 'plain'))
- GPIO.output(ledPin,GPIO.LOW)#turn off the led if it's on
- print("Canceling")
- else:
- msg.attach(MIMEText(normalBody, 'plain'))
- server = smtplib.SMTP(stmpAddress, 587)
- server.starttls()
- server.login(username, password)
- server.sendmail(username, to, msg.as_string())
- server.quit()#email sent
- time.sleep(0.01)#sleep a short time so to not eat all resources
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement