diff --git a/umqtt.simple/example_sub_led.py b/umqtt.simple/example_sub_led.py new file mode 100644 index 00000000..d0f8132e --- /dev/null +++ b/umqtt.simple/example_sub_led.py @@ -0,0 +1,49 @@ +from umqtt.simple import MQTTClient +from machine import Pin +import ubinascii +import machine +import micropython + + +# ESP8266 ESP-12 modules have blue, active-low LED on GPIO2, replace +# with something else if needed. +led = Pin(2, Pin.OUT, value=1) + +# Default MQTT server to connect to +SERVER = "192.168.1.35" +CLIENT_ID = ubinascii.hexlify(machine.unique_id()) +TOPIC = b"led" + + +state = 0 + +def sub_cb(topic, msg): + global state + print((topic, msg)) + if msg == b"on": + led.value(0) + state = 1 + elif msg == b"off": + led.value(1) + state = 0 + elif msg == b"toggle": + # LED is inversed, so setting it to current state + # value will make it toggle + led.value(state) + state = 1 - state + + +def main(server=SERVER): + c = MQTTClient(CLIENT_ID, server) + # Subscribed messages will be delivered to this callback + c.set_callback(sub_cb) + c.connect() + c.subscribe(TOPIC) + print("Connected to %s, subscribed to %s topic" % (server, TOPIC)) + + try: + while 1: + #micropython.mem_info() + c.wait_msg() + finally: + c.disconnect()