Reputation: 126
i m using PIR sensor to find out intruder is present or not. if intruder is present it will go to sleep for 1 min now i have to reset sleep time, for this i m using thread but it shows assertion error, help me out, below is my code.
from threading import Thread, Event
import time
import RPi.GPIO as GPIO
class MyThread(Thread):
def __ini(self, timeout=60):
self.intruder_spotted = Event()
self.timeout = timeout
self.daemon = True
def run(self):
while True:
if self.intruder_spotted.wait(self.timeout):
self.intruder_spotted.clear()
print("Intruder")
else:
print("No intruder")
t = MyThread(60)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN)
try:
t.start()
while True:
i=GPIO.input(18)
if i==1:
t.intruder_spotted.set()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
exit(0)
Upvotes: 0
Views: 3089
Reputation: 126
need Update the int of the class my Thread. It's __init__
not __ini. And the call to the parent init with super
class MyThread(Thread):
def__init__(self, timeout=60):
super(MyThread, self).__init__()
self.intruder_spotted = Event()
self.timeout = timeout
self.daemon = True
Upvotes: 2