I am writing a script that sends an email every 10 seconds once the button on the Pibrella is pressed. And I want it to stop when the button is pressed again.
So for example, the first time it is pressed, it sends an email every 10 seconds. Then the second time, it stops the thread.
Here is my current code, can someone please tell me where I am doing wrong?
import pibrella, signal
import threading
import time
import smtplib
server = smtplib.SMTP("smtp.gmail.com",587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("email@gmail.com", "EmailPassword")
isPressed = 0
def pressed(pin):
global isPressed
if isPressed == 0:
isPressed = 1
sendMail()
else:
pibrella.light.off()
t.cancel()
isPressed = 0
def sendMail():
pibrella.light.pulse()
server.sendmail("email@gmail.com", "receiver@gmail.com", "Hello World")
t.start()
t = threading.Timer(10, sendMail).start()
pibrella.button.pressed(pressed)
pibrella.pause()
server.close()
The error that I am getting right now is posted below. Note, that the email is indeed being sent.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pibrella.py", line 262, in handle_callback
callback(self)
File "sendText.py", line 27, in pressed
sendMail()
File "sendText.py", line 36, in sendMail
t.start()
AttributeError: 'NoneType' object has no attribute 'start'
Exception in thread Thread-14:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 760, in run
self.function(*self.args, **self.kwargs)
File "sendText.py", line 36, in sendMail
t.start()
AttributeError: 'NoneType' object has no attribute 'start'