kopia lustrzana https://github.com/micropython/micropython-lib
umqtt.simple: Add example to toggle an LED on received subscribed message.
rodzic
64eab7c870
commit
c8a08bce4a
|
@ -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()
|
Ładowanie…
Reference in New Issue