Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from machine import Pin
- from umqtt.simple import MQTTClient
- client = MQTTClient("alarm", "serverip", port=1883, user="username",
- password="password")
- client.connect()
- class Sensor:
- def __init__(self, pin_num, name):
- self.pin = Pin(pin_num, Pin.IN, Pin.PULL_UP)
- self.last_value = None
- self.name = name
- @property
- def value(self):
- return self.pin.value()
- def update_last(self):
- self.last_value = self.value
- @property
- def has_changed(self):
- if self.last_value != self.value:
- self.update_last()
- return True
- sensors = [Sensor(5, "backdoor"), Sensor(4, "frontdoor"),
- Sensor(0, "kitchen")]
- while True:
- for sensor in sensors:
- if sensor.has_changed:
- if sensor.last_value:
- print("{} on".format(sensor.name))
- client.publish("alarm/{}".format(sensor.name), "on")
- else:
- print("{} off".format(sensor.name))
- client.publish("alarm/{}".format(sensor.name), "off")
- time.sleep(0.1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement