Connect to the MQTT server through the LAN module, subscribe to and publish messages, and poll downstream messages to control the device status (e.g., controlling the relay switch).
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
<img class="blockly_svg" src=" https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/static/assets/img/uiflow/blockly/modules/lan/uiflow_block_module_lan_remote
_ip.svg">
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, '')