
UiFlow 使用教程
通过 LAN 模块连接到 MQTT 服务器,订阅和发布消息,并轮询下行消息来控制设备的状态(例如控制继电器的开关)
from m5stack import *
from m5ui import *
from uiflow import *
import module
import time
setScreenColor(0x810000)
lan_topic = None
lan_msg = None
lan = module.get(module.LAN_MODULE)
label2 = M5TextBox(53, 219, "ON", lcd.FONT_DejaVu18, 0x810000, rotate=0)
label3 = M5TextBox(230, 219, "OFF", lcd.FONT_DejaVu18, 0x810000, rotate=0)
def module_lan_mqtt_cb(lan_mq_topic, lan_mq_payload):
global lan_topic, lan_msg
lan_topic = lan_mq_topic
lan_msg = lan_mq_payload
print(lan_msg)
pass
lan.lan_init(18, 23, 19, 5, 0, 35)
print('Lan Init')
wait(1.5)
lan.mqtt_config('mqtt.m5stack.com', 1883, 'm5mqttid', '', '', 120)
print('Mqtt Configured')
wait(1.5)
lan.mqtt_connect()
print('Connect Server')
wait(1.5)
lan.mqtt_subscribe('m5stack/relay', module_lan_mqtt_cb, 0)
while True:
lan.mqtt_publish('m5stack/relay', 'ON', 0)
wait(1.5)
lan.mqtt_poll_loop()
if False:
print('ON')
else:
print('OFF')
wait_ms(2)
lan.is_available_packet(1) lan.tcp_udp_config('', 0, 1, 1) lan.get_ezdata(ezdata_get_AlUvNcb, 'GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '') lan.remove_ezdata('GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '') lan.set_ezdata('GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '', '', 0) req.text lan.get_if_config() req.status_code try:
req = lan.http_request(method='GET', url='', headers={})
gc.collect()
req.close()
except:
pass lan.lan_init(18, 23, 19, 5, 0, 35) lan.local_ip() lan.mqtt_is_connect() lan.mqtt_connect() lan.mqtt_disconnect() lan.mqtt_config('mqtt.m5stack.com', 1883, '', '', '', 120) lan.mqtt_poll_loop() lan.mqtt_publish('', '', 0) lan.mqtt_subscribe('', module_lan_mqtt_cb, 0) def module_lan_mqtt_cb(lan_mq_topic, lan_mq_payload):
global ezdata_value1, lan_topic, lan_msg
lan_topic = lan_mq_topic
lan_msg = lan_mq_payload
pass lan.remote_ip() lan.set_if_config('192.168.1.100', '255.255.255.0', '192.168.1.1', '8.8.8.8') lan.socket_close() lan.tcp_receive_packet(0) lan.tcp_send_packet('1234') lan.udp_receive_packet(0) lan.udp_send_packet('', 0, '')