Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import time
  2.  
  3. from machine import Pin
  4. from umqtt.simple import MQTTClient
  5.  
  6. client = MQTTClient("alarm", "serverip", port=1883, user="username",
  7. password="password")
  8.  
  9. client.connect()
  10.  
  11.  
  12. class Sensor:
  13. def __init__(self, pin_num, name):
  14. self.pin = Pin(pin_num, Pin.IN, Pin.PULL_UP)
  15. self.last_value = None
  16. self.name = name
  17.  
  18. @property
  19. def value(self):
  20. return self.pin.value()
  21.  
  22. def update_last(self):
  23. self.last_value = self.value
  24.  
  25. @property
  26. def has_changed(self):
  27. if self.last_value != self.value:
  28. self.update_last()
  29. return True
  30.  
  31. sensors = [Sensor(5, "backdoor"), Sensor(4, "frontdoor"),
  32. Sensor(0, "kitchen")]
  33.  
  34. while True:
  35. for sensor in sensors:
  36. if sensor.has_changed:
  37. if sensor.last_value:
  38. print("{} on".format(sensor.name))
  39. client.publish("alarm/{}".format(sensor.name), "on")
  40. else:
  41. print("{} off".format(sensor.name))
  42. client.publish("alarm/{}".format(sensor.name), "off")
  43. time.sleep(0.1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement